ansible(十)playbook

那么现在,我们来想象一个工作场景,看看怎样把之前的知识点应用到这个工作场景中。
假设,我们想要在testB主机上安装httpd并启动,我们可以在ansible主机中执行如下3条命令

ansible testB -m yum_ repository -a 'name=rhel7.5 description="ansible rhel7.5" 
baseurl=http://172.25.254.2/rhel7.5 gpgcheck= no enabled=yes'
ansible testB -m yum -a "name= httpd"
ansible testB -m service -a "name=httpd state= started" 

由此可以看出每安装一个服务,都要执行这样的命令,有点麻烦,接下来讲解playbook去安装

(1)编写剧本(以.yml结尾)并测试
注意:剧本hosts可以写组,ip,别名(看清单写的什么)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以在远程主机上查看到创建的目录
在这里插入图片描述
当再次执行时会发现变绿,因为已经存在了(幂等性)
在这里插入图片描述
(2)编写剧本创建多个任务

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
说明:当不确定自己写的剧本对不对时,可以先语法检测
在这里插入图片描述
也可以模拟执行剧本
在这里插入图片描述

(3)编写剧本的多种形式
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

以上三种方式均可

handlers的使用

(1)编写剧本修改远程主机的服务端口并重启服务
在远程主机查看httpd端口
在这里插入图片描述
在这里插入图片描述

ansible修改端口
在这里插入图片描述
在这里插入图片描述
再次执行命令会发现内容已经不再变,但还是会重启服务
在这里插入图片描述
现在我们想让配置文件改变时在重启服务,不改变不重启(handlers)
在这里插入图片描述
在这里插入图片描述
(2)在远程主机建立文件和目录
在这里插入图片描述

在这里插入图片描述
查看
在这里插入图片描述
此时我删除ht1和ht2文件
在这里插入图片描述
再次执行命令会发现不会改变(因为tasks没有真正的执行,所以不会调用)
在这里插入图片描述
(3)在(2)的基础上更改顺序
先在远程主机删除上面的文件
在这里插入图片描述
用ansible建立
在这里插入图片描述
在这里插入图片描述
以上可以看出顺序和tasks无关,和hanlers定义顺序相同,但是都会先执行完tasks里面的任务

现在我们如果想执行完tasks立即执行handler怎么 办? meta

meta的使用

建立多个任务
在这里插入图片描述
在这里插入图片描述
查看
在这里插入图片描述
现在我们想一次性调用多个handlers

listen的使用

在这里插入图片描述
在这里插入图片描述
查看
在这里插入图片描述
现在想在多个任务中只执行一个怎么办 tags

tags的使用

在这里插入图片描述
在这里插入图片描述
查看
在这里插入图片描述

tags的多种写法
在这里插入图片描述

在这里插入图片描述

多个tasks使用相同的标签
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

当执行前想知道都有哪些标签
在这里插入图片描述
tags和always

在这里插入图片描述
在这里插入图片描述
跳过always
在这里插入图片描述
当有多个always
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
tags和never
在这里插入图片描述
在这里插入图片描述

剩余的三个特殊标签分别为tagged、untagged、 all这三个特殊标签并非像always-样, always作为标签值存在,而这三个特殊标签则是在调用标签时使用,示例如下
ansible-playbook --tags tagged testtag.yml
.上述命令表示只执行有标签的任务,没有任何标签的任务不会被执行
ansible-playbook --skip-tags tagged testtag.yml
.上述命令表示跳过包含标签的任务,即使对应的任务包含always标签,也会被跳过
ansible-playbook --tags untagged testtag.yml
.上述命令表示只执行没有标签的任务,但是如果某些任务包含always标签,那么这些任务也会被执行
ansible-playbook --skip-tags untagged testtag.yml
上述命令表示跳过没有标签的任务特殊标签all表示所有任务会被执行,不用指定,状认情况下就是使用这个标签

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值