ansible提供了更强大的管理Managed nodes的工具,ansible-playbook,找一个类比的例子:如果ansible操作管理远程主机类比于使用ls/ping/ps等命令管理主机,ansible-play就可以类比成shell脚本,将ansible命令组合起来,形成一个playbook,来完成一次整体的配置部署工作。playbook可以理解成剧本,或者blueprint蓝图。
ansible playbook通常是个yaml格式的文本文件,包含三大组件:
- Play:是task列表,task按照顺序排列,安装顺序执行
- Tasks:是Module的集合,包含一个或多个module,用来定义一组操作
- Module:功能模块,比如用到的ping模块,debug模块
一个playbook示例:playbook.yaml
- name: My first play
hosts: virtualmachines
tasks:
- name: Ping my hosts
ansible.builtin.ping:
- name: Print message
ansible.builtin.debug:
msg: Hello world
执行:
$ ansible-playbook -i inventory_file playbook.yaml
输出:
PLAY [My first playbook] *****************************************************************************************************************************************
TASK [Gathering Facts] *******************************************************************************************************************************************
ok: [10.100.0.90]
TASK [ping my hosts] *********************************************************************************************************************************************
ok: [10.100.0.90]
TASK [pring message] *********************************************************************************************************************************************
ok: [10.100.0.90] => {
"msg": "Hello world"
}
PLAY RECAP *******************************************************************************************************************************************************
10.100.0.90 : ok=3 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
从执行输出来看,playbook会隐式的执行一个TASK [Gathering Facts] 。PLAY RECAP是概括; 扼要重述; 简要回顾的意思。