Playbook 简介
Playbook 由一个或多个 Play 组成。Play 的内容被称为任务(tasks)。在基本层次的应用中,一个任务(tasks)对应的是一个 Ansible 模块的调用。
Playbook 遵循 YAML 语法。
·
Play 常用属性
name:每个 play 的名字。
hosts:每个 play 涉及的被管理节点。同 Ad-Hoc中 的 pattern 一样。
remote_user:连接用户。若不指定,默认使用当前执行 playbook 的用户。
become:是否开启提权 yes/no。
become_user:提权至哪个用户。
become_method:提权工具。支持 sudo,su 等,默认是 sudo。
tasks:每个 play 中具体要完成的任务。
·
Playbook 基础
tasks 中的多种写法
第一种:
systemd:
name: nginx
state: started
enabled: yes
第二种:
systemd: name=nginx
state=started
enabled=yes
第三种:
systemd: name=nginx state=started enabled=yes
一个简单的 Playbook
---
- name: A simple paly example
hosts: all
remote_user: root
tasks:
- name: copy nginx.repo
copy:
src: /etc/yum.repos.d/nginx.repo
dest: /etc/yum.repos.d/nginx.repo
backup: yes
- name: install nginx
yum:
name: nginx
state: installed
- name: start nginx
systemd:
name: nginx
state: started
enabled: yes
·
Playbook 语法校验
ansible-playbook playbook.yml --syntax-check
·
测试运行 Playbook
ansible-playbook playbook.yml -C
模拟执行完整的 Playbook 步骤,不会在远程节点上执行。
·
单步跟踪调试 Playbook
ansible-playbook playbook.yml --step
# yes:执行
# no:跳过
# c:继续执行剩余所有的步骤,不再询问。
·
指定自定义资产文件执行 Playbook
ansible-playbook -i test_inventory.ini playbook.yml