如何在长时间运行剧本的同时保持会话状态?

时间:2019-04-15 19:05:38

标签: ansible ansible-2.x

我正在运行ansible剧本来重新启动我们的某些服务器,但是在每台服务器重新启动之间我们需要睡眠40分钟,因此,如果我在剧本中睡眠40分钟,则它会睡眠一段时间,但随后我的会话在Ubuntu上终止产品框中,整个脚本也将停止。我可以在ansible剧本中添加任何内容,以便在整个剧本运行期间保持会话状态吗?

# This will restart servers
---
- hosts: tester
  serial: "{{ num_serial }}"
  tasks:
      - name: copy files
        copy: src=conf.prod dest=/opt/process/config/conf.prod owner=goldy group=goldy

      - name: stop server
        command: sudo systemctl stop server_one.service

      - name: start server
        command: sudo systemctl start server_one.service

      - name: sleep for 40 minutes
        pause: minutes=40

我想睡40分钟而不终止我的linux会话,然后重新启动下一组服务器。

我正在运行ansible 2.6.3版本。

1 个答案:

答案 0 :(得分:1)

您可以在screen内运行ansible脚本,以使会话即使在断开连接后也能保持活动状态。

基本上,您要执行的操作是ssh进入生产服务器,运行屏幕,然后在新创建的会话中执行剧本。

如果断开连接,则可以连接回服务器,然后运行screen -r返回到保存的会话。