playbook
简称剧本,可通过剧本做很多任务
与ad-hoc的区别
任务复杂,操作多时使用playbook
任务简单,临时性工作使用ad-hoc
语法
注意:是空格,不是tab键
ymal格式要求
1,第一行以3个'-'开始,可以不写
2,#表示注释
3,表达元素内容 ': ',有空格(重要)
4,列表缩进表示相同元素,否则格式错误
sh.sh文件点击链接 https://www.cnblogs.com/anyux/p/12004099.html#示例-7
---
#开头,可以不写---
- hosts: test
#指定主机
remote_user: root
#指定用户
tasks:
#指定任务
#name 注释
#shell,yum为剧本使用的模块
- name: print info
shell: echo $HOSTNAME ${date} + "%Y-%m-%d %T"
- name: ruuning script
script: /home/centos/sh.sh
- name: install httpd
yum: name=httpd state=present
- name: start httpd
service: name=httpd state=started
- name: check httpd
shell: ps -ef | grep httpd
- name: print a.txt
shell: cat /home/centos/a.txt
剧本名playbook.yml
格式说明:
---
-(空格)hosts:(空格)test
(空格)(空格)remote_user:(空格)centos
(空格)(空格)tasks:
(4空格)=(空格)(空格)(空格)(空格)
(6空格)=(空格)(空格)(空格)(空格)(空格)(空格)
#指定任务
(4空格)-(空格)name:(空格)print info
(6空格)shell:(空格)echo $HOSTNAME ${date} + "%Y-%m-%d %T"
(4空格)-(空格)name:(空格)ruuning script
(6空格)script:(空格)/home/centos/sh.sh
(4空格)-(空格)name:(空格)install httpd
(6空格)yum: name=httpd state=present
(4空格)-(空格)name:(空格)start httpd
(6空格)service:(空格)name=httpd state=started
(4空格)-(空格)name:(空格)check httpd
(6空格)shell:(空格)ps -ef | grep httpd
(4空格)-(空格)name:(空格)print a.txt
(6空格)shell:(空格)cat /home/centos/a.txt
语法检查
#语法检查
ansible-playbook --syntax-check playbook.yml
#预执行
ansible-playbook -C playbook.yml
执行剧本
ansible-playbook playbook.yml
核心元素
元素 | 说明 |
---|---|
hosts | 主机组 |
tasks | 任务 |
variables | 变量 |
templates | 模板文件 |
handlers | 触发器 |