在Ansible中,要仅注册IP地址,可以使用Ansible的ipaddr过滤器来提取IP地址。以下是一个包含代码示例的解决方法:
- name: 获取IP地址
hosts: your_host_group
tasks:
- name: 执行命令获取IP地址
shell: hostname -I
register: ip_address_output
- name: 提取IP地址
set_fact:
ip_address: "{{ ip_address_output.stdout | ipaddr('ipv4') }}"
- name: 打印IP地址
debug:
var: ip_address
在上述示例中,shell模块用于执行命令hostname -I来获取IP地址。然后,使用register关键字将命令输出存储在变量ip_address_output中。
接下来,使用set_fact模块和ipaddr过滤器来提取IPv4地址并将其存储在名为ip_address的变量中。
最后,使用debug模块打印出提取的IP地址。
请注意,上述示例假设你的主机为Linux系统,并且hostname -I命令返回的是以空格分隔的多个IP地址。如果你的环境不同,请相应地更改命令和过滤器。