ansible playbook
注意: 以下内容在ubuntu16.04系统经过测试,ansible系列都是以普通用户执行ansible命令和ansible-playbook脚本.
编写剧本需要遵循YAML语法。
YAML语法:
进行缩进时,必须使用空格进行缩进。
第一行使用三个横杠作为开始。 "---" 表示文档开始。
第二行使用"-"作为开头(横杠后面有空格), 表示一个块序列的节点。
在YAML语法中使用冒号映射键值对时,冒号后面要有空格。
可同时写多个主机,每台主机用逗号隔开。编写playbook剧本:
$ cat ping.yaml
---
- hosts: test
remote_user: yuan
tasks:
- name: ping host
ping:
- name: mkdir test directory
file:
path: /testdir/test
state: directory检查和调试剧本:
语法检查: ansible-playbook --syntax-check ping.yaml
调试剧本: ansible-playbook -S -R root --check ping.yaml
调试剧本不会在被控机真正执行。只是模拟是否能正常执行剧本。运行剧本:
ansible-playbook -S -R root ping.yaml一个playbook是由一个或多个play组成的。
每个play在执行时都先执行一个默认任务(Gathering Facts)会收集当前play对应的目标主机的相关信息。收集完信息,才执行指定的任务。
编写一个安装nginx的playbook剧本:
cat nginx.yaml
---
- hosts: test
remote_user: yuan
tasks:
- name: add nginx keys
apt_key:
url: http://nginx.org/keys/nginx_signing.key
state: present
- name: nginx add source.list deb url
lineinfile:
path: /etc/apt/sources.list
line: "deb http://nginx.org/packages/ubuntu/ xenial nginx"
- name: add deb-src url
lineinfile:
path: /etc/apt/sources.list
line: "deb-src http://nginx.org/packages/ubuntu/ xenial nginx"
- name: nginx
apt:
name: nginx
state: latest
update_cache: yes
- name: start nginx
systemd:
name: nginx
state: started
文章转载自运维开发圈,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




