我正在编写Ansible剧本,其中有3个tomcat节点。现在我的脚本做了很多事情,例如将发行版从nexus复制到应用程序节点,部署它,启动tomcats等。
我想实现的是按顺序执行此操作。例如,剧本应在一个主机上运行,完成后应在另一台主机上运行。我的清单如下所示,由于使用了prod,preprod等多个环境,因此我正在使用group_vars。
有人可以帮忙。
[网络服务器]雄猫1雄猫2tomcat3
Q:“剧本应在一个主机上运行,完成后应在另一台主机上运行。”
A:使用serial。例如
shell> cat playbook.yml
- hosts: webserver
gather_facts: false
serial: 1
tasks:
- debug:
var: inventory_hostname
shell> ansible-playbook playbook.yml
PLAY [webserver] ***
TASK [debug] ***
ok: [tomcat1] => {
"inventory_hostname": "tomcat1"
}
PLAY [webserver] ***
TASK [debug] ***
ok: [tomcat2] => {
"inventory_hostname": "tomcat2"
}
PLAY [webserver] ***
TASK [debug] ***
ok: [tomcat3] => {
"inventory_hostname": "tomcat3"
}
PLAY RECAP ***
tomcat1: ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
tomcat2: ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
tomcat3: ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0