用户登录

有些任务你可能需要判断一些条件再决定是不是要执行 ... 我们先去运行一条命令 ... 使用一下 setup 这个模块 ..

ansible all -m setup -u vagrant

这个模块会收集一些远程主机相关的信息,你可以使用这些属性的名字得到对应的值 ... 比如我打算用一下操作系统的类型 ... 搜索一下 family ... ansible_os_family 的值就是远程主机的操作系统的类型 ...

我用的是 CentOS,它是 RedHat 家族的一员 ... 回到我们的 playbook,添加一个新的任务 .. 名字是 红帽家族 .. 用一下 debug .. 调试模块 .. msg 是输出的信息 ... 要输出的就是红帽家族这几个字 ..

这个任务我们再用一个 when ... 它可以设置一个条件 ... 看一下 ansible_os_family 的值是不是等于 RedHat ..

再给这个任务添加一下 test 标签 ... 然后去执行一下它 ...

ansible-playbook app.yml -t test

你会发现,红帽家族这个任务在目标主机上都运行了,因为它们的操作系统都是红帽家族的成员 ...

回过来,我们再去修改一下要判断的条件,看看 ansible_os_family 的值是不是等于 Debian ...

再运行一下 .. 这次,红帽家族这个任务,目标主机都 Skipping ,跳过去了,没有执行 ... 因为执行任务之前要判断的条件都不能通过 ...

条件 - Conditionals《 Ansible:自动化配置 》

统计

15260
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点