ansible剧本-playbook核心元素
ansible剧本-playbook核心元素
教程每周二、四、六更新
- hosts执行的远程主机列表
- tasks任务集
- Variables 内置变量或自定义变量在playbook中调用
- Templates 模板,可替换模板文件中的变量并实现一些简单逻辑的文件
- Handlers 和 notify 结合使用,由特定条件触发的操作,满足条件方才执行,否则不执行
- tags 标签 指定某条任务执行,用于选择运行playbook中的部分代码。ansible具有幂等性,因此会自动跳过没有变化的部分,即便如此,有些代码为测试其确实没有发生变化的时间依然会非常地长。此时,如果确信其没有变化,就可以通过tags跳过此些代码片断。
[root@m01 ansible]# cat integration.yml
---
- hosts: com
tasks:
- name: touch a new file
file: path=/data/newfile state=touch
- name: copy a file to remote host
copy: src=/root/ansible/first-playbook.yml dest=/data/
- name: install httpd
yum: name=httpd state=installed
- name: start httpd service
systemd: state=started name=httpd
- name: stop httpd service
systemd: state=stopped name=httpd
- name: uninstall httpd
yum: name=httpd state=absent
# 检查一下是否有语法错误
[root@m01 ansible]# ansible-playbook integration.yml --syntax-check
playbook: integration.yml
检查没有错误就可以执行了。当然也可以写成下面的形式:---
- hosts: com
tasks:
......
- name: uninstall httpd
yum:
name: httpd
state: absent
练习:请自行修改integration.yml 中所有的task为上面这种形式,验证是否可以执行。错误处理:在执行ansible的时候,如果中间某一步骤发生错误,那么ansible脚本会终止执行,如果我们希望发生错误以后继续执行剧本,那么需要使用ignore_errors来忽略错误信息。[root@m01 ansible]# vim integration.yml
---
- hosts: com
tasks:
- name: touch a new file
file: path=/data/newfile state=touch
- name: copy a file to remote host
copy: src=/data/first-playbook.yml dest=/data/ # 这里故意修改为一个不存在的文件,正常情况下会报错,然后终止剧本执行,但是下面我们加了ignore_errors,剧本会继续执行。
ignore_errors: true
- name: install httpd
.....
把剧本按照上面的修改保存,执行以后会发现输出信息中有红色的提示,但是最后都...ignoring,然后继续执行后续任务。对playbook有了认识了,我们下一次来看看刚才用到的ansible-playbook命令的用法。
雷哥开通了抖音(云计算雷哥)和微信视频号,求关注!!!和大家一起学习 技术!
推荐阅读
《一站式教程之集群架构》:
看完本文有收获?请分享给更多人
推荐关注「Cloud研习社」,带你从零开始掌握云计算技术!
Cloud研习社
为Linux云计算零基础同学服务,致力于打造一套完整的linux云计算教程。包括新手学习路线、linux、存储、集群架构以及Docker,K8S,DevOps等
公众号
收录于合集 #一站式教程
220个上一篇ansible剧本-YAML语法下一篇ansible-playbook命令