Facts变量
Facts变量不包含在前文中介绍的全局变量、剧本变量及资产变量之内。
Facts变量不需要我们人为去声明变量名及赋值。
它的声明和赋值完全有Ansible 中的 setup 模块帮我们完成。
它收集了有关被管理服务器的操作系统版本、服务器IP地址、主机名,磁盘的使用情况、CPU个数、内存大小等等有关被管理服务器的私有信息。
在每次PlayBook运行的时候都会发现在PlayBook执行前都会有一个Gathering Facts的过程。这个过程就是收集被管理服务器的Facts信息过程。
实验
[root@bogon ~]# ansible all -i localhost, -c local -m setup
localhost | SUCCESS => {
"ansible_facts": {
"ansible_all_ipv4_addresses": [
"192.168.216.133"
],
"ansible_all_ipv6_addresses": [
"fe80::486e:8249:b0e8:8cab"
],
"ansible_apparmor": {
"status": "disabled"
},
"ansible_architecture": "x86_64",
"ansible_bios_date": "04/13/2018",
"ansible_bios_version": "6.00",
"ansible_cmdline": {
"BOOT_IMAGE": "/vmlinuz-3.10.0-514.el7.x86_64",
"LANG": "zh_CN.UTF-8",
"crashkernel": "auto",
"quiet": true,
"rd.lvm.lv": "cl/swap",
"rhgb": true,
"ro": true,
"root": "/dev/mapper/cl-root"
},
"ansible_date_time": {
"date": "2022-05-17",
"day": "17",
。。。
。。。
出一大串
如何针对性的获取facts模块中的信息
模糊匹配
获取服务器的内存情况信息
[root@bogon ~]# ansible all -i localhost, -c local -m setup -a "filter=*memory*"
localhost | SUCCESS => {
"ansible_facts": {
"ansible_memory_mb": {
"nocache": {
"free": 645,
"used": 331
},
"real": {
"free": 507,
"total": 976,
"used": 469
},
"swap": {
"cached": 0,
"free": 2047,
"total": 2047,
"used": 0
}
},
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false
}
获取服务器的磁盘挂载情况信息
[root@bogon ~]# ansible all -i localhost, -c local -m setup -a "filter=*mount*"
localhost | SUCCESS => {
"ansible_facts": {
"ansible_mounts": [
{
"block_available": 223549,
"block_size": 4096,
"block_total": 259584,
"block_used": 36035,
"device": "/dev/sda1",
"fstype": "xfs",
"inode_available": 523958,
"inode_total": 524288,
"inode_used": 330,
"mount": "/boot",
"options": "rw,seclabel,relatime,attr2,inode64,noquota",
"size_available": 915656704,
"size_total": 1063256064,
"uuid": "1154f6ac-3c7e-4be3-a9d9-3ad34dce68bc"
},
{
"block_available": 4045287,
"block_size": 4096,
"block_total": 4452864,
"block_used": 407577,
"device": "/dev/mapper/cl-root",
"fstype": "xfs",
"inode_available": 8853899,
"inode_total": 8910848,
"inode_used": 56949,
"mount": "/",
"options": "rw,seclabel,relatime,attr2,inode64,noquota",
"size_available": 16569495552,
"size_total": 18238930944,
"uuid": "0562565e-3c89-40cd-8492-a82bce391441"
}
],
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false
}
在playbook中使用facts变量