ansible facts组件采取设备信息

ansible facts

facts组件是ansible用于采集被管理机器设备信息的一个功能,我们可以用setup模块查看机器的所有fasct信息,可以使用filter来查看指定信息。整个 facts信息被包装在一个JSON格式的数据结构中。

简单了解fscts结构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
$ ansible centos -m setup //输出内容过多,自行尝试
$ ansible centos -m setup -a 'filter=ansible_all_ipv4_addresses' //查看指定信息
192.168.56.102 | SUCCESS => {
"ansible_facts": {
"ansible_all_ipv4_addresses": [
"192.168.56.102",
"10.0.2.15",
"192.168.31.14"
]
},
"changed": false
}
192.168.56.101 | SUCCESS => {
"ansible_facts": {
"ansible_all_ipv4_addresses": [
"192.168.56.101",
"10.0.2.15",
"192.168.31.95"
]
},
"changed": false
}

使用facter扩展facts信息

ansiblefacts组件会判断被控制主机上是否安装有facterruby-json|rubygem-json包,如果存在,会自动采集信息。
centos7 facter 下载地址
facter官网下载

1
2
3
4
5
6
7
8
9
$ ansible centos -m shell -a 'rpm -aq rubygem-json facter'
192.168.56.102 | SUCCESS | rc=0 >>
rubygem-json-1.7.7-29.el7.x86_64
facter-2.4.1-1.el7.x86_64
192.168.56.101 | SUCCESS | rc=0 >>
rubygem-json-1.7.7-29.el7.x86_64
facter-2.4.1-1.el7.x86_64

运行facter模块查看facter信息

1
$ ansible 192.168.56.102 -m facter //显示内容过多,自行尝试

使用ohai扩展facts信息

ohaichef配置管理工具中检测节点属性的工具,ansiblefacts也支持ohai信息的采集,需要在被管理主机上安装ohai包。

安装ohai

国内服务器需要更换地址RubyGems镜像-Ruby-China

更换gem sources地址为国内

1
2
3
4
5
6
7
8
$ ansible centos -m shell -a 'gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org/'
192.168.56.101 | SUCCESS | rc=0 >>
https://gems.ruby-china.org/ added to sources
https://rubygems.org/ removed from sources
192.168.56.102 | SUCCESS | rc=0 >>
https://gems.ruby-china.org/ added to sources
https://rubygems.org/ removed from sources

查看gem sources地址

1
2
3
4
5
6
7
8
9
10
$ ansible centos -m shell -a 'gem sources -l'
192.168.56.102 | SUCCESS | rc=0 >>
*** CURRENT SOURCES ***
https://gems.ruby-china.org/
192.168.56.101 | SUCCESS | rc=0 >>
*** CURRENT SOURCES ***
https://gems.ruby-china.org/

安装ohai

1
ansible centos -m shell -a 'gem install ohai'

使用ohai

1
ansible centos -m ohai

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器