繁体   English   中英

ansible滚动重新启动playboook

[英]ansible rolling restart 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

它只会提示一次,而实际上并没有达到预期的效果。

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

结合使用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]

有关更多信息: 开始和步骤

我继续这样做:

- 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM