自定义模块
一、setup模块采集系统信息
facts组件是用来收集被管理节点信息的,使用setup模块可以获取这些信息,facts收集的信息是json格式的,其内任一项都可以当作变量被直接引用(如在playbook、jinja2模版中)引用
1.格式
ansible IP -m setup
过滤
[root@ansinble_center tmp]#ansible 192.168.100.64 -m setup -a "filter=changed"
filter过滤指定数据项
2.过滤内存
[root@ansinble_center roles]#ansible 192.168.217.131 -m setup -a "filter=ansible_*_mb"
3.过滤环扣
[root@ansinble_center roles]#ansible 192.168.217.131 -m setup -a "filter=ansible_interfaces"
二、变量引用json数据方式
1.将命令结果注册成变量,并用debug输出或直接在template或者playbook中引用
vim debug.yaml
---
- hosts: 192.168.217.131
tasks:
- shell: echo hello world
register: say_hi
- debug: var=say_hi
结果输出
2.引用json字典数据
通过key[‘dict’]或者key.dict
---
- hosts: 192.168.217.131
tasks:
- shell: echo hello world
register: say_hi
- debug: var=say_hi.stdout
- debug: var=say_hi['stdout']
输出结果
"key.dict"或"key[‘dict’]“的方式都能引用,但在dict字符串本身就包含”."的时候,应该使用中括号的方式引用。例如:anykey[‘192.168.217.131’]
3.引用json数组数据
通过key[N],N从0开始
---
- hosts: 192.168.217.131
tasks:
- shell: echo hello world
register: say_hi
- debug: var=say_hi.stdout_l