Playbook基础

Playbook(剧本)

Playbook的功能比Ad-hoc更加强大,可以反复执行。Playbook类似于shell脚本,将多个模块组合起来实现一组的操作。Playbook还是会用到ad-hoc模式中的模块及参数,只不过Playbook与ad-hoc的写法不一样。

Playbook的组成

由多个Play组成

#每一个play都由一个短横杠"-"开始,基本是yaml中字典的格式
play:
    name:	#play的名称
	hosts:	#资产选择器,例如前几篇文章中自己定义的localhost
	tasks:	#具体的任务
	become:	#提权
	become_user:	#提权的用户
	remote_user:	#连接用户,默认以执行ansible playbook的用户作为连接用户

1.yaml语法风格(以"—“开始,”…"结束)

字符串
---
this is a str	#双引号,单引号,或者不加都正确

#有长字符串时可以拆行写
loong_line: |
    str1
    str2
    str3
...
列表
---
- red
- blue
- yellow
...
字典(key:value)
---
name: myname
password: 666
...

2.yaml语法检测

安装Python中的yaml检测工具

安装pip3工具包

yum install -y python3-pip

安装pyyaml语法语法检测库(模块)

pip3 install -y pyyaml
检测方式
vim myyaml.yaml
---
color:
  - red
  - blue
  - yellow
...

python -c 'import yaml,sys; print yaml.safe_load (sys.stdin)' < myyaml.yaml

#如果yaml输入正确则会返回yaml文件内容
{'color': ['red', 'blue', 'yellow']}

3.写一个playbook

vim myplaybook.yaml
#写法不唯一
---
- name: playbook-test
  hosts: localhost
  remote_user: root
  tasks:
    - name: 安装nginx
      yum:
        name: nginx
        state: present
...

#例如:你还可以这样写,选择你喜欢的风格即可
---
- name: playbook-test
  hosts: localhost
  remote_user: root
  tasks:
    - name: 安装nginx
      yum: name=nginx state=present
...

#例如:你还可以这样写,选择你喜欢的风格即可
---
- name: playbook-test
  hosts: localhost
  remote_user: root
  tasks:
    - name: 安装nginx
      yum: name=nginx
           state=present
...
playbook格式检测

注意:只校验playbook是否正确,不包含语法的正确性检查,仍然可以采用python中的语法检测模块来验证语法的正确性

[root@docker ~]# ansible-playbook-2.7 myplaybook.yaml --syntax-check 

playbook: myplaybook.yaml
yaml语法检测
python -c 'import yaml,sys; print yaml.safe_load (sys.stdin)' < myplaybook.yaml

#输出结果
[{'tasks': [{'yum': {'state': 'present', 'name': 'nginx'}, 'name': u'\u5b89\u88c5nginx'}], 'hosts': 'localhost', 'remote_user': 'root', 'name': 'playbook-test'}]
运行playbook
ansible-playbook -i /etc/ansible/hosts myplaybook.yaml

单步执行,调试
ansible-playbook -i /etc/ansible/hosts myplaybook.yaml --step
运行测试(不会实际执行相应操作)
ansible-playbook -i /etc/ansible/hosts myplaybook.yaml -C
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值