我正在运行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版本。
答案 0 :(得分:1)
您可以在screen内运行ansible脚本,以使会话即使在断开连接后也能保持活动状态。
基本上,您要执行的操作是ssh进入生产服务器,运行屏幕,然后在新创建的会话中执行剧本。
如果断开连接,则可以连接回服务器,然后运行screen -r返回到保存的会话。