Fork me on GitHub

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 触发器
posted on 2019-12-08 16:44  anyux  阅读(156)  评论(0编辑  收藏  举报