例如,deploy.yml是一个安全的剧本。 deploy.yml,play1和play2中有两个播放。
$ cat deploy.yml
- hosts: nodes
remote_user: cloud
become: yes
tasks:
- name: play1
copy: src=test1 dest=/root
- hosts: nodes
remote_user: cloud
become: yes
tasks:
- name: play2
copy: src=test2 dest=/root
$ cat hosts
[nodes]
192.168.1.12
192.168.1.13
运行
ansible-playbook -i hosts deploy.yml
当play1在192.168.1.12上失败但在192.168.1.13上成功时,deploy.retry仅列出192.168.1.12但没有192.168.1.13。
$ cat deploy.retry
192.168.1.12
然后我跑
ansible-playbook -i hosts deploy.yml --limit @deploy.retry
我得到了错误的结果,因为我没有在192.168.1.13上运行游戏!有人知道如何解决这个问题吗?
答案 0 :(得分:0)
问题在于playbok文件,事实上,你在一个文件中有两个独立的playbook。我使用ansible 2.2.1.0测试了你的设置,并且第二次播放在play1中没有错误地正确运行,但是配置可能会有所不同。
正确的预期行为的剧本格式是
- hosts: nodes
remote_user: cloud
become: yes
tasks:
- name: play1
copy: src=test1 dest=/root
- name: play2
copy: src=test2 dest=/root