学习linux的第七十四天

playbook的条件判断

查看到setup收集到的所有的facter信息:
ansible testhost -m setup
编辑条件:
[root@KXLZQ ~]# vim /etc/ansible/when.yml
hosts: testhost
user: root
gather_facts: True
tasks:
- name: use when
shell: touch /tmp/when.txt
when: ansible_ens33.ipv4.address == “192.168.70.129”
注:
when: ansible_ens33是一个数组存储着网卡相关信息,ipv4属于该数组的子元素,但是ipv4也是一个数组,而address则是ipv4数组的子元素。我们需要使用address 来作为判断条件。所以要访问address就需要使用这样的格式:
when: ansible_ens33.ipv4.address,address表示的是键,而"192.168.70.129"则是值,when为判断语句相当于if,所以其判断条件为:该键的值为"192.168.70.129"时就执行shell模块里定义的语句。
执行:
[root@KXLZQ ~]# ansible-playbook /etc/ansible/when.yml
PLAY [testhost]


TASK [Gathering Facts]


ok: [192.168.70.129]
TASK [use when]


[WARNING]: Consider using file module with state=touch rather than running touch
changed: [192.168.70.129]
PLAY RECAP



192.168.70.129 : ok=2 changed=1 unreachable=0 failed=0
查看:
[root@XXQ ~]# ll /tmp/when.txt
-rw-r–r--. 1 root root 0 12月 30 11:21 /tmp/when.txt

playbook中的handlers

使用环境:当执行了tasks里面的内容之后,服务器发生了变化,这时可能需要执行一些相关的操作;相当于编程中的回调函数;例如:修改了某个服务的配置文件后,则需要重启一下服务,当任务执行成功,handlers执行完成重启;否则不执行;类似于shell脚本中的&&符号;
创建:
[root@KXLZQ ~]# vim /etc/ansible/handlers.yml
name: handlers test
hosts: testhost
user: root
tasks:
- name: copy file
copy: src=/etc/passwd dest=/tmp/test_passwd.txt
notify: test handlers
handlers:
- name: test handlers
shell: echo “1234567890” >> /tmp/test_passwd.txt
注:
只有copy模块执行成功后,才会去调用下面的handlers里定义的内容。也就是说如果/etc/passw和/tmp/test_passwd.txt内容是一样的话,就不会去执行handlers里面的shell相关命令,因为copy没有被执行。 这种比较适合配置文件发生更改后,重启服务的操作。
notify用于指定handlers的name参数的值,因为handlers可以定义多个,所以需要使用notify来进行指定调用哪一个
执行:
[root@KXLZQ ~]# ansible-playbook /etc/ansible/handlers.yml
PLAY [handlers test]


TASK [Gathering Facts]


ok: [192.168.70.129]
TASK [copy file]


changed: [192.168.70.129]
RUNNING HANDLER [test handlers]


changed: [192.168.70.129]
PLAY RECAP



192.168.70.129 : ok=3 changed=2 unreachable=0 failed=0
查看:
[root@XXQ ~]# tail -n1 /tmp/t

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值