标签为 Facts 的文章

编写Ansible模块并自定义Facts

背景介绍:
Ansible自带的Facts有很多,但很多时候并不够用。 比如,Ansible就没有ansible_private_ipv4_address这样一个Facts,用来保存私网IP地址。 而我们恰恰就需要这样的一个Facts,因为我们有很多服务器的默认网卡并非是eth0,有的是bond0,eth1,em0,em1等,而公网IP地址与私网IP地址也并没有固定的绑定在某个网卡上,很多时候还是虚拟网卡。 还好,我们可以通过编写Ansible模块并自定义Facts来实现。

具体步骤:
[root@idc-server2 ~]# ifconfig

[root@idc-server1 ansible]# vim myfacts.yml

[root@idc-server1 ansible]# mkdir -p roles/myfacts/{tasks,templates}
[root@idc-server1 ansible]# vim roles/myfacts/tasks/main.yml

[root@idc-server1 ansible]# vim roles/myfacts/templates/myfacts.txt.j2

[root@idc-server1 ansible]# mkdir -p library/heylinux
[root@idc-server1 ansible]# vim library/heylinux/myfacts

[root@idc-server1 ansible]# ansible-playbook -u root myfacts.yml -i hosts

[root@idc-server1 ansible]# ssh idc1-server2 'cat /tmp/myfacts.txt'

,

1 Comment