如何在 运行 剧本的情况下让会话保持更长的时间?

How to keep session alive while running the playbook for longer period of time?

我是 运行 ansible playbook 来重启我们的一些服务器,但我们需要在每次服务器重启之间休眠 40 分钟,所以如果我在我的 playbook 中休眠 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版本

您可以 运行 在 screen 中使用您的 ansible 脚本,以便即使在断开连接后也能保持会话活动。

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

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