Playbook的核心元素
Hosts 主机
Tasks 任务
Variables:包含了模板语言的文本文件
Handlers:由特定条件触发的任务
某任务的状态在运行后为changed时,可通过notify通知给相应的handlers
Playbook的基础组件
Hosts:运行指定任务的目标主机
remote_user:在远程主机上执行任务的用户
tasks:任务列表
简单的Playbook脚本
playbook脚本的后缀为.yaml
--ckeck 仅仅只是试运行,并没有在远程主机上执行,不过这个命令只要不报错就算成功了。
查看脚本会在哪些主机上运行
再写一个脚本
1、安装telnet脚本
2、停止httpd服务
另一个例子:
在playbook脚本中运行shell语句
handlers的使用
notify调用了handler中定义的"echo a line"模块。在所在任务的状态为changed的时候执行notify指定的指令
tags的使用
正常情况下,ansible-playbook会执行两个任务
但是这次通过指定tags,可以执行指定的任务
这里只执行了install telnet的任务
variables使用
有些变量时ansible软件内置的,facts。这些参数可以通过ansible -m setup获取
还有一些变量是在/etc/ansible/hosts中设置的。
首先演示/etc/hosts中的变量
远端主机结果
通过变量写一个安装软件的通用脚本
测试脚本
通过这个脚本,安装任何软件都可以安装
命令试运行
template 模板文件
这个功能用处就打了,本地ansible只提供一个模板文件,ansible在执行命令过程中会根据不同主机在远端主机上生成不同的文件。
ansible开头的一本上都是内建的变量名
运行命令
远端主机测试
Playbook的条件判断
意思是如何远端主机版本是6,就执行任务,如果不是就不用执行了。
由于远端主机的主版本都是7,所以跳过了
把判断语句改成7
这次就没有跳过了
playbook的循环
循环的固定变量是item,然后要在tasks中使用with_item给定要循环元素的列表
命令执行
远端执行结果
再写一个双因子的例子
user11属于group11 user12属于group12
运行
远端主机查看
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。