ansible-playbook条件判断与循环的组合

条件判断与循环的组合

情景:我们在执行tasks的时候,我们就需要检测这个任务的结果是否达到了理想的状态,如果没有达到我们预想的状态时,就需要退出整个playbook执行,这个时候我们需要对某个task结果一直循环检测了。
在这里插入图片描述
那么我们会写这样的一个脚本,
startswith在我们python里面就是查看文件里面是不是以什么开头的。(查看一个文本的开头)
retries是几秒执行一次
delay是执行几次
我们在在root根目录下写一个ansibel的文件。并且写上相应的字符,如下图:
在这里插入图片描述
一定注意是远程主机上面写
我们执行一下来看
在这里插入图片描述
25秒以后我们可以看到
出错了
在这里插入图片描述
这个时候我们再来验证一下,将ansible文件里面的的master放在前面。如下图:
在这里插入图片描述
更改ansible这个文件后在来执行。
在这里插入图片描述
这里我们就看到成功了

获取主机名与用户名并用循环输出

我们先写这样的一个脚本:
在这里插入图片描述
解释:这里我们先看一下这个脚本,里面有一个循环。这个循环是使用我们的标准模板格式,item,我们这里使用一个循环执行两个shell命令,并且把这个结果赋值给ret,那么我们这里可以理解一休register这个模块用于接收上面的执行循环后的值,赋值给ret。
我们在这个tasks下面再建一个任务这个任务的名字,我们取名为展示用户名和主机名。
再使用debug模块的msg参数输出以下的信息。
这里用到的是jinjia2语法。同学们可以去查一下jinjia2语法的使用规范:
控制结构 {% %}
变量取值 {{ }}
jinja2模板中使用 {{ }} 语法表示一个变量,它是一种特殊的占位符。当利用jinja2进行渲染的时候,它会把这些特殊的占位符进行填充/替换,jinja2支持python中所有的Python数据类型比如列表、字段、对象等。
注释 {# #}
所以这里我使用了msg="{%for i in ret.results%}{{i.stdout}}{%forend%}"
这里用了一个循环输出我们主机名和用户名。

执行脚本后会得到这样的一个结果,将uname与hostname一并进行输出。
在这里插入图片描述
有发现错误的同学及朋友们将改正后写在评论区。
祝同学们学习愉快,
感谢CSDN平台

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李茂茂茂茂茂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值