playbook(剧本)是ansible管理配置、部署应用和编排的文件,可用来描述你想在被控主机上执行的策略或者一组任务等。
playbook是用YAML语言编写的。所有的yaml文件都以"---"开头表示开始一个document,所有的列表元素以"-"开头,键值对用":",后面的空格是必须的。
举一个示例进行说明:
---
- name: deploy docker run
hosts: demo-autodeploy
remote_user: root
become: yes
become_user: root
become_method: sudo
tasks:
- name: test shell
shell: yum install nginx -y
- hosts: demo-autodeploy #hosts用于指定要执行指定任务的主机,其可以是一个或多个由逗号分隔主机组;在/etc/ansible/hosts中定义
- remote_user: root #在远程主机上以哪个用户身份执行
- become: yes #是否允许身份切换
- become_method: sudo #切换用户身份的方式,有sudo、su、pbrun等方式,默认为sudo
- become_user: root #切换成什么用户身份,默认为root
以上remote_user、become、become_method、become_use选项不仅可用于全局,也可用于各task中
remote_user、become、become_method、become_user分别对应inventory文件中的ansible_user、ansible_become、ansible_become_method、ansible_become_user
如果需要指定切换用户身份时的密码,可在执行ansible-playbook时使用选项 --ask-become-pass指定
更多参考博客:http://blog.51cto.com/9124573/1769887
更多ansible-playbook学习 http://blog.51cto.com/msiyuetian/1752326
