ansible剧本-变量-常用参数
ansible剧本-变量-常用参数
教程每周二、四、六更新
[root@m01 ansible]# ansible com -m setup
172.16.1.15 | SUCCESS => {
"ansible_facts": {
"ansible_all_ipv4_addresses": [
"10.0.0.15",
"172.16.1.15"
],
"ansible_all_ipv6_addresses": [
"fe80::dd90:5b75:89f7:f24e",
"fe80::dab3:7d35:f064:7071",
"fe80::3447:ce6e:eaf8:7cf9",
"fe80::95d4:89f5:d2c:68e5",
"fe80::5762:95f3:78e2:1810"
],
"ansible_apparmor": {
"status": "disabled"
},
"ansible_architecture": "x86_64",
"ansible_bios_date": "07/29/2019",
"ansible_bios_version": "6.00",
"ansible_cmdline": {
"BOOT_IMAGE": "/vmlinuz-3.10.0-1160.el7.x86_64",
"LANG": "en_US.UTF-8",
"crashkernel": "auto",
"quiet": true,
"rd.lvm.lv": "centos/swap",
"rhgb": true,
"ro": true,
"root": "/dev/mapper/centos-root"
},
"ansible_date_time": {
......
返回的信息非常多,很多情况我们并不需要全部的信息,可以通过过滤获得指定的信息。
获取com主机的主机名:
[root@m01 ansible]# ansible com -m setup -a "filter=ansible_hostname"
172.16.1.15 | SUCCESS => {
"ansible_facts": {
"ansible_hostname": "web02",
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false
}
172.16.1.14 | SUCCESS => {
"ansible_facts": {
"ansible_hostname": "web01",
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false
}
[root@m01 ansible]# ansible com -m setup -a "filter=ansible_fqdn"
172.16.1.15 | SUCCESS => {
"ansible_facts": {
"ansible_fqdn": "web02",
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false
}
172.16.1.14 | SUCCESS => {
"ansible_facts": {
"ansible_fqdn": "web01.studyclub",
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false
}
获取com主机的内存信息(支持模糊匹配):
[root@m01 ansible]# ansible com -m setup -a "filter=*mb"
172.16.1.15 | SUCCESS => {
"ansible_facts": {
"ansible_memfree_mb": 440,
"ansible_memory_mb": {
"nocache": {
"free": 779,
"used": 193
},
"real": {
"free": 440,
"total": 972,
"used": 532
},
"swap": {
...... # 篇幅受限,这里就不一一展示了
好了,上面我们过滤出来了想要看的内容,其实都是变量。ansible有许多变量,上面查到的ansible_facts中的所有变量都是可以直接调用的。
facts是ansible定义的被管理主机的变量,通过这些变量,可以拿到被管理主机的相关信息。在ansible运行playbook之前会先获取被管理主机的相关信息,这个获取过程比较慢,如果不需要这些变量,那么可以不用收集这些信息:
- hosts: ctl
gather_facts: no # 通过这个方式就可以关闭对被管理主机的信息收集
......
下一节我们来看如何引用和定义变量。
雷哥开通了抖音(云计算雷哥)和微信视频号,求关注!!!和大家一起学习 技术!
推荐阅读
《一站式教程之集群架构》:
看完本文有收获?请分享给更多人
推荐关注「Cloud研习社」,带你从零开始掌握云计算技术!
Cloud研习社
为Linux云计算零基础同学服务,致力于打造一套完整的linux云计算教程。包括新手学习路线、linux、存储、集群架构以及Docker,K8S,DevOps等
公众号
![图片](https://img2023.cnblogs.com/blog/2948384/202304/2948384-20230418153328995-935736519.png)
收录于合集 #ansible
25个上一篇playbook核心元素之tags