ansible之自定义模块

这篇博客详细介绍了如何在Ansible中自定义模块,包括setup模块在系统信息采集中的应用,变量引用JSON数据的方法,注册和定义变量的各种方式,以及两种自定义数据采集方法。还讲解了如何编写自定义模块并进行测试。
摘要由CSDN通过智能技术生成

自定义模块

一、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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值