Playbook剧本
一、剧本三要素
剧本 playbook
1、场地 1、主机组hosts
2、演员 2、执行用户
3、故事情节 3、执行的任务(调用ansible模块)
二、剧本组成
playbook
- tasks:任务,即要使用ansible模块完成的操作
- variables:自定义变量
- templates:模板(对修改配置文件非常友好)
- handlers:处理器,当条件满足时,触发操作(触发器)
- roles:角色
三、playbook常用命令
ansible-playbook first.yml --syntax-check #检查yaml文件的语法是否正确
ansible-playbook first.yml --list-task #检查tasks任务
ansible-playbook first.yml --list-hosts #检查生效的主机
ansible-playbook first.yml --start-at-task='Copy Nginx.conf' #指定从某个task开始运行
ansible-playbook first.yml -k #用来交互输入ssh密码
ansible-playbook first.yml -K #用来交互输入sudo密码
ansible-playbook first.yml -u #指定用户
四、YAML概述
1.1 什么是YAML
- 非标记语言。主要用于编写配置文件,非常简洁强大
- 与其他语言类似,可以表达散列表,标量等数据结构
- 扩展名为yaml
1.2 基本语法规则
- 大小写敏感
- 缩进表示层级关系,需要严格对齐(与python相同)
- 缩进不允许使用tab,只可以使用空格
- 缩进空格数目不重要,只需要同层级元素左侧对其即可
- #表示注释
五、实例操作
[root@osp ~]# vim demo.yaml
- hosts: all #定义主机组
remote_user: root #定义用户
tasks: #任务
- name: test connection #任务名称
ping:
remote_user: root
检测yaml文件是否编写正确
[root@osp ~]# ansible-playbook demo.yaml --syntax-check
playbook: demo.yaml
测试该yaml文件可以使用ansible进行操作
剧本操作
关闭防火墙,安装httpd
- hosts: all
remote_user: root
tasks:
- name: stop firewalld #关闭防火墙
service: name=firewalld state=stopped
#- name: disable selinux #关闭核心防护
# command: '/sbin/setenforce 0'
- name: install httpd #安装httpd
yum: name=httpd
- name: start httpd #开启httpd
service: name=httpd state=started
| 绿色代表执行成功,系统保持原样
| 黄色代表系统代表系统状态发生改变
| 红色代表执行失败,显示错误输出