setup 模块用于收集远程主机的一些基本信息。
filter参数:用于进行条件过滤。如果设置,仅返回匹配过滤条件的信息。
1.获取 ansible-demo3 主机的信息。
[root@ansible-manager ~]# ansible ansible-demo3 -m setup
ansible-demo3 | SUCCESS => {
"ansible_facts": {
"ansible_all_ipv4_addresses": [
"192.168.128.83"
],
"ansible_all_ipv6_addresses": [
"fe80::250:56ff:fe35:785f"
],
"ansible_apparmor": {
"status": "disabled"
},
"ansible_architecture": "x86_64",
"ansible_bios_date": "07/02/2015",
......
"ansible_userspace_architecture": "x86_64",
"ansible_userspace_bits": "64",
"ansible_virtualization_role": "guest",
"ansible_virtualization_type": "VMware",
"gather_subset": [
"all"
],
"module_setup": true
},
"changed": false
}
返回的信息非常多,很多情况我们并不需要全部的信息,可以通过过滤获得指定的信息。
2.获取 ansible-demo3 主机的 IPV4 地址。
[root@ansible-manager ~]# ansible ansible-demo3 -m setup -a "filter=ansible_all_ipv4_addresses"
ansible-demo3 | SUCCESS => {
"ansible_facts": {
"ansible_all_ipv4_addresses": [
"192.168.128.83"
]
},
"changed": false
}
3.获取 ansible-demo3 主机的内存信息。
[root@ansible-manager ~]# ansible ansible-demo3 -m setup -a "filter=ansible_memory_mb"
ansible-demo3 | SUCCESS => {
"ansible_facts": {
"ansible_memory_mb": {
"nocache": {
"free": 1645,
"used": 177
},
"real": {
"free": 1350,
"total": 1822,
"used": 472
},
"swap": {
"cached": 0,
"free": 2047,
"total": 2047,
"used": 0
}
}
},
"changed": false
}
4.通过通配符实现模糊匹配,比如以”mb”关键字结尾的信息。
[root@ansible-manager ~]# ansible ansible-demo3 -m setup -a "filter=*mb"
ansible-demo3 | SUCCESS => {
"ansible_facts": {
"ansible_memfree_mb": 1542,
"ansible_memory_mb": {
"nocache": {
"free": 1654,
"used": 168
},
"real": {
"free": 1542,
"total": 1822,
"used": 280
},
"swap": {
"cached": 0,
"free": 2047,
"total": 2047,
"used": 0
}
},
"ansible_memtotal_mb": 1822,
"ansible_swapfree_mb": 2047,
"ansible_swaptotal_mb": 2047
},
"changed": false
}
其他常用信息列出如下:
ansible_all_ipv4_addresses:仅显示ipv4的信息。
ansible_devices:仅显示磁盘设备信息。
ansible_distribution:显示是什么系统,例:centos,suse等。
ansible_distribution_major_version:显示是系统主版本。
ansible_distribution_version:仅显示系统版本。
ansible_machine:显示系统类型,例:32位,还是64位。
ansible_eth0:仅显示eth0的信息。
ansible_hostname:仅显示主机名。
ansible_kernel:仅显示内核版本。
ansible_lvm:显示lvm相关信息。
ansible_memtotal_mb:显示系统总内存。
ansible_memfree_mb:显示可用系统内存。
ansible_memory_mb:详细显示内存情况。
ansible_swaptotal_mb:显示总的swap内存。
ansible_swapfree_mb:显示swap内存的可用内存。
ansible_mounts:显示系统磁盘挂载情况。
ansible_processor:显示cpu个数(具体显示每个cpu的型号)。
ansible_processor_vcpus:显示cpu个数(只显示总的个数)。
本节介绍了 Ansible 常用模块之 setup 模块,并举例说明如何使用。从下节开始,我们重点介绍 Playbook ,首先是 Playbook 概述。
参考文档:
http://www.mamicode.com/info-detail-1312216.html
http://www.linuxyw.com/755.html
https://www.ipcpu.com/2016/01/ansible-setup-when/
http://www.zsythink.net/archives/2671