Ign*_*ona 3 ansible ansible-facts
我正在尝试使用Ansible设置我的sshd_config文件.出于设计原因(我们有虚拟机和物理机,有不同的NIC)管理界面没有修复,所以在我的模板中我不能放
{{ ansible_eth0.ipv4.address }}
Run Code Online (Sandbox Code Playgroud)
因为我事先不知道哪个接口是管理接口所以我需要发现它.我知道IP总是在一个范围内(例如192.168.1.0/24).
如何发现哪个接口具有该IP,然后在模板中使用它?
Ansible提供了一个名为ansible_all_ipv4_addressesall ip address的列表.
要查找管理IP,请参阅此工作示例:
test.yml:
- hosts: all
gather_facts: yes
tasks:
- debug: var=ansible_all_ipv4_addresses
- set_fact:
man_ip: "{{ item }}"
with_items: "{{ ansible_all_ipv4_addresses }}"
when: "item.startswith('192.168.1')"
- debug: var=man_ip
Run Code Online (Sandbox Code Playgroud)
在本地运行测试游戏:
ansible-playbook -c local -i localhost, test.yml
Run Code Online (Sandbox Code Playgroud)
该变量{{ man_ip }}将具有管理IP地址的IP地址.
| 归档时间: |
|
| 查看次数: |
5769 次 |
| 最近记录: |