民间, 我希望在每台主机上单独重新启动服务,并等待用户输入,然后继续进入清单中的下一个主机。
目前,如果您有以下内容:
- name: Restart something
command: service foo restart
tags:
- foo
- name: wait
pause: prompt="Make sure org.foo.FooOverload exception is not present"
tags:
- foo
它只会提示一次,而不是真正有效果。
在每台主机上运行重启任务之前,等待用户输入的正确ansible语法是什么?
答案 0 :(得分:4)
使用剧本的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
答案 1 :(得分:1)
我继续这样做:
- 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