无法滚动重新启动playboook

问题描述:

Folks, 我希望在每台主机上单独重新启动一项服务,并等待用户输入,然后继续访问清单中的下一个主机。无法滚动重新启动playboook

目前,如果你具备以下条件:

- name: Restart something 
    command: service foo restart 
    tags: 
    - foo 
- name: wait 
    pause: prompt="Make sure org.foo.FooOverload exception is not present" 
    tags: 
    - foo 

它只会提示一次,并没有真正具有所期望的效果。

在每台主机上运行重新启动任务之前,等待用户输入的正确语法是什么?

使用剧本的serial属性和step选项的组合。

playbook.yml

- name: Do it 
    hosts: myhosts 
    serial: 1 

    tasks: 
    - shell: hostname 

呼叫与--step选项

ansible-playbook playbook.yml --step 

系统将提示您为每个主机的剧本。

Perform task: shell hostname (y/n/c): y 

    Perform task: shell hostname (y/n/c): **************************************** 
    changed: [y.y.y.y] 
    Perform task: shell hostname (y/n/c): y 

    Perform task: shell hostname (y/n/c): **************************************** 
    changed: [z.z.z.z] 

欲了解更多信息:Start and Step

+0

优秀的,谢谢! – Cmag

+0

以供参考:[剧本代表团](http://docs.ansible.com/ansible/playbooks_delegation.html)和[startnstep](http://docs.ansible.com/ansible/playbooks_startnstep.html#step) – Cmag

我这个径自:

- name: Restart Datastax Agent 
    tags: 
    - agent 
    hosts: cassandra 
    sudo: yes 
    serial: 1 
    gather_facts: yes 
    tasks: 
    - name: Pause 
     pause: prompt="Hit RETURN to restart datastax agent on {{ inventory_hostname }}" 
    - name: Restarting Datastax Agent on {{ inventory_hostname }} 
     service: name=datastax-agent state=restarted 
+1

如果您稍后决定不在主持人之间暂停,则必须编辑您的操作手册。在我的解决方案中,不要指定'--step'选项。 – helloV