Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ansible 如何在长时间运行playbook的同时保持会话活动?_Ansible_Ansible 2.x - Fatal编程技术网

Ansible 如何在长时间运行playbook的同时保持会话活动?

Ansible 如何在长时间运行playbook的同时保持会话活动?,ansible,ansible-2.x,Ansible,Ansible 2.x,我正在运行ansible playbook来重新启动我们的一些服务器,但在每次服务器重新启动之间,我们需要睡眠40分钟,所以如果我在playbook中睡眠40分钟,它会睡眠一段时间,但随后我的会话在prod的Ubuntu box上终止,整个脚本也会停止。我可以在ansible playbook中添加任何内容,以便在整个playbook运行期间保持会话的活跃性吗 # This will restart servers --- - hosts: tester serial: "{{ num_se

我正在运行ansible playbook来重新启动我们的一些服务器,但在每次服务器重新启动之间,我们需要睡眠40分钟,所以如果我在playbook中睡眠40分钟,它会睡眠一段时间,但随后我的会话在prod的Ubuntu box上终止,整个脚本也会停止。我可以在ansible playbook中添加任何内容,以便在整个playbook运行期间保持会话的活跃性吗

# 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
我想在不终止linux会话的情况下睡眠40分钟,然后转到下一组服务器重新启动


我正在运行ansible 2.6.3版本。

您可以在内部运行ansible脚本,以便即使在断开连接后仍保持会话的活动状态

基本上,您要做的是将ssh连接到生产服务器,运行screen,然后在新创建的会话中执行playbook


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

因此,如果在screen会话中运行ansible脚本,它将不会被终止?您可能会断开与服务器的连接。但是你可以重新连接到服务器,运行screen-r,你的会话就会回来。所以,如果我断开连接,但我的ansible playbook仍会继续运行,对吗?我可以通过执行
screen-r
检查是否正确?当你说我的会话将返回时,我的playbook将在该会话中运行,对吗?是的,你连接回服务器,然后执行screen-rIf,如果我有一段时间没有连接回服务器,那么我的playbook仍将在该会话中运行?只是确定一下。