ansible playbook lookups组件

1.lookups file
支持从外部数据拉取信息,例如从数据库里拉取信息,然后定义给一个变量的形式

  • hosts: all
    gather_facts: true
    vars:
    contents: "{{ lookup('file', '/etc/sysconfig/network') }}"
    tasks:
    • name: debug lookups
      debug: msg="The contents is {% for i in contents.split("\n") %} {{ i }} {% endfor %}"
      结果:
      PLAY [all] ****

TASK [Gathering Facts] ****
ok: [192.168.1.1]

TASK [debug lookups] **
**ok: [192.168.1.1] => {
"msg": "The contents is # Created by anaconda NETWORKING_IPV6=no PEERNTP=no "
}

PLAY RECAP *
192.168.1.1 : ok=2 changed=0 unreachable=0 failed=0 **

2.lookups password对传入的内容进行加密处理

  • hosts: all
    gather_facts: False
    vars:
    contents: "{{ lookup('password', 'ansible_book') }}"
    tasks:
    • name: debug lookups
      debug: msg="The contents is {{ contents }}"

3.lookups pipe
pipe lookups控制机上调用subprocess.Popen执行命令,然后将命令的结果传递给变量

  • hosts: all
    gather_facts: False
    vars:
    contents: "{{ lookup('pipe', 'date +%Y-%m-%d') }}"
    tasks:
    • name: debug lookups
      debug: msg="The contents is {% for i in contents.split("\n") %} {{ i }} {% endfor %}"
      结果:
      TASK [debug lookups]
      ok: [47.100.16.187] => {
      "msg": "The contents is 2018-02-03 "
      }

4.lookups redis_kv
redis_kv就是从redis数据库中get数据,需要安装redis python库:yum install python-redis
ansible playbook lookups组件
ansible playbook lookups组件

5.lookups template
读取文件template.j2,里面定义的变量是每台主机的fatcs信息
worker_processes {{ ansible_processor_cores }};
IPaddress {{ ansible_eth0.ipv4.address }}
ansible playbook lookups组件
ansible playbook lookups组件

转载于:https://blog.51cto.com/yangxiongchun/2068446

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值