ansbile-playbook是一系统ansible命令的集合,其利用yaml 语言编写,运行过程,ansbile-playbook命令根据自上而下的顺序依次执行。同时,playbook开创了很多特性,它可以允许你传输某个命令的状态到后面的指令,如你可以从一台机器的文件中抓取内容并附为变量,然后在另一台机器中使用,这使得你可以实现一些复杂的部署机制,这是ansible命令无法实现的。
ansible-playbook的简单使用方法: #ansible-playbook example-play.yml [参数]
常用参数:
-u REMOTE_USER :手工指定远程执行playbook的系统用户
--syntax-check :检查playbook的语法
-T TIMEOUT :定义playbook执行超时时间
--step:以单任务分步骤运行,方便做每一步的确认工作
一个简单的例子
[root@www ansible]# ls
test.yml
[root@www ansible]# vim test.yml
- name: create user
hosts: all
user: root
gather_facts: false
vars:- user: "test"
tasks: - name: create fuchao
user: name="{{ fuchao }}"
- user: "test"
测试:
[root@www ansible]# ansible-playbook test.yml
PLAY [create user] ************************************************************
TASK: [create user] **********************************************************
changed: [192.168.1.144]
changed: [192.168.1.145]
fatal: [10.25.1.56] => {'msg': 'FAILED: timed out', 'failed': True}
fatal: [db01.intranet.mydomain.net] => {'msg': 'FAILED: timed out', 'failed': True}
fatal: [db02.intranet.mydomain.net] => {'msg': 'FAILED: timed out', 'failed': True}
fatal: [10.25.1.57] => {'msg': 'FAILED: timed out', 'failed': True}
PLAY RECAP ********************************************************************
to retry, use: --limit @/root/test.retry
10.25.1.56 : ok=0 changed=0 unreachable=1 failed=0
10.25.1.57 : ok=0 changed=0 unreachable=1 failed=0
192.168.1.144 : ok=1 changed=1 unreachable=0 failed=0
192.168.1.145 : ok=1 changed=1 unreachable=0 failed=0
db01.intranet.mydomain.net : ok=0 changed=0 unreachable=1 failed=0
db02.intranet.mydomain.net : ok=0 changed=0 unreachable=1 failed=0