You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Ansible脚本中实现主机间30秒时间延迟?

在Ansible的DR主机组任务间添加30秒延迟的方法

嘿,要给DR主机组里的每台主机之间插入30秒的处理延迟是吧?这里有个简单靠谱的实现方案,直接修改你的Playbook就能搞定:

核心思路是让Ansible逐个处理主机(而非默认的并行处理),在每台主机的所有任务执行完成后,暂停30秒再处理下一台。修改后的完整Playbook如下:

- hosts: dr
  become: true
  become_user: root
  serial: 1  # 关键配置:一次只处理一台主机

  tasks:
    - name: 执行yum命令并记录信息
      shell: "hostname >> /tmp/ycu.txt; yum history | head -5 >> /tmp/ycu.txt"

    - name: 将目标文件抓取到控制节点
      fetch:
        src: /tmp/ycu.txt
        dest: /tmp/{{ inventory_hostname }}/
        flat: yes

    - name: 主机间添加30秒延迟
      pause:
        seconds: 30

关键配置说明:

  • serial: 1:这个参数强制Ansible串行处理主机组内的机器,每次只对一台主机执行所有tasks,完成后再切换到下一台。
  • pause模块:在每台主机的任务全部执行完毕后,触发30秒的暂停,刚好满足你“各主机之间延迟30秒”的需求。

如果你不想完全串行(比如允许同时处理N台,每N台处理完后延迟),可以把serial: 1改成你想要的数字,比如serial: 2,这样每次处理2台主机,处理完后暂停30秒再继续下一批。

内容的提问来源于stack exchange,提问作者LinServFaulter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 18:55:16