Ansible在运行playbook的时候,第一件事就是gathering facts,从他连接到的服务器上收集各种信息。这些信息包括:操作系统、主机名、所有网络接口的IP地址和Mac地址等。你就可以在之后的playbook中使用这些信息。
1.playbook的YAML格式:
文件的起始:
--- 以三个减号开头,也可以不用,不会影响Ansible的运行
注释:
# 像Python一样用一个#进行注释
字符串:
可以使用引号或者不使用,即使字符串中含有空格,也不完全使用引号
布尔值:
True | False
列表:
列表使用-作为分隔符:
- zhangsan
- lisi
- wangwu
也可以使用内联格式:
[zhangsan,lisi,wangwu]
字典:
YAML中的字典类似于JSON中的对象,Python中的字典:
address: beijing
city: beijing
state: North
也可以使用内联格式:
{address: beijing, city: beijing, state: North}
折行:
YAML中使用大于号(>)来标记折行,YAML解释器会把换行符替换为空格:
address: >
Deadfasdfadf,
sdfdsfdsfsd
模块:
apt:使用apt包管理工具安装或删除软件包
copy:将一个文件从本地复制到主机上
file:设置文件、符号链接或者目录的属性
service:启动、停止或者重启一个服务
template:从模板生成一个文件并复制到主机上
handler:
handler是Ansible提供的条件机制之一。handler和task很类似,但是它只是在被task通知的时候才会执行。
notify: restart nginx
handler只会在所有任务执行完后执行。而且即使被通知了多次,它也只会执行一次。handler按照play中定义的顺序 执行,而不是被通知的顺序。
2.inventory:描述你的服务器
Ansible可管理的主机集合叫作inventory。
add_host
group_by