Ansible:在一个任务中并行执行delegate_to循环
创始人
2024-11-07 01:30:36
0

在Ansible中,可以使用with_items来循环执行任务,并且可以通过delegate_to参数将任务委派给特定的主机。要在循环中并行执行这些委派任务,可以使用asyncpoll参数。

下面是一个示例代码:

---
- name: Parallel execution with delegate_to loop
  hosts: localhost
  gather_facts: false

  tasks:
    - name: Create temporary directory
      tempfile:
        state: directory
      register: temp_dir

    - name: Generate list of hosts
      set_fact:
        hosts_list: "{{ groups['webservers'] }}"

    - name: Parallel task with delegate_to loop
      command: echo "Hello from {{ inventory_hostname }}"
      async: 60
      poll: 0
      delegate_to: "{{ item }}"
      with_items: "{{ hosts_list }}"
      register: async_result

    - name: Wait for async tasks to complete
      async_status:
        jid: "{{ item.ansible_job_id }}"
      loop: "{{ async_result.results }}"
      register: async_status_result
      until: async_status_result.finished
      retries: 30
      delay: 5

    - name: Print async task results
      debug:
        var: item.stdout
      loop: "{{ async_status_result.results }}"

在上面的示例中,我们首先创建一个临时目录,并将其注册到temp_dir变量中。然后,我们使用set_fact模块生成一个主机列表,这里假设我们有一个名为webservers的主机组。

接下来,我们使用command模块在循环中执行委派任务。通过将async参数设置为60和poll参数设置为0,我们将任务设置为异步执行且无需等待结果。delegate_to参数用于指定将任务委派给哪个主机。在这个例子中,我们使用item来引用主机列表中的每个主机。

然后,我们使用async_status模块来等待异步任务完成。async_status模块的jid参数用于指定任务的ID,我们可以从async_result变量中的ansible_job_id字段获取该值。通过将retries参数设置为30和delay参数设置为5,我们将重试等待异步任务完成的操作。

最后,我们使用debug模块打印异步任务的结果。在这个例子中,我们打印每个异步任务的stdout字段。

请注意,上面的示例中delegate_to参数使用的是静态主机列表。如果要动态确定要委派任务的主机,可以根据需求使用动态变量或条件判断来设置delegate_to参数。

相关内容

热门资讯

七分钟辅助!丽水茶苑苹果手机辅... 七分钟辅助!丽水茶苑苹果手机辅助,本来是真的有辅助教程(有挂方式)1、实时丽水茶苑苹果手机辅助透视辅...
第一分钟辅助!闲来辅助神器下载... 第一分钟辅助!闲来辅助神器下载2022,好像真的有辅助方法(有挂教程)1、不需要AI权限,帮助你快速...
九分钟辅助!丽水都莱辅助工具试... 九分钟辅助!丽水都莱辅助工具试用,确实存在有辅助神器(有挂方法)九分钟辅助!丽水都莱辅助工具试用,确...
第一分钟辅助!蛮王辅助器,好像... 第一分钟辅助!蛮王辅助器,好像是有辅助方法(有挂教学)1、首先打开蛮王辅助器辅助器下载最新版本,在蛮...
第六分钟辅助!潮汕汇挂,一贯真... 第六分钟辅助!潮汕汇挂,一贯真的是有辅助插件(有挂辅助)1、这是跨平台的潮汕汇挂轻量版有透视,在线的...
六分钟辅助!微信开心泉州辅助器... 六分钟辅助!微信开心泉州辅助器,一直有辅助器(有挂教学)1、下载好微信开心泉州辅助器透视辅助下载之后...
第3分钟辅助!佛手十三道破解版... 第3分钟辅助!佛手十三道破解版安卓,竟然真的有辅助攻略(有挂存在)1、让任何用户在无需佛手十三道破解...
2分钟辅助!sohoo竞技联盟... 2分钟辅助!sohoo竞技联盟辅助,切实真的有辅助脚本(有挂技术)1.sohoo竞技联盟辅助 选牌创...
第8分钟辅助!心悦手游辅助器,... 第8分钟辅助!心悦手游辅助器,原来真的是有辅助技巧(确实有挂);1、每一步都需要思考,不同水平的挑战...
第十分钟辅助!广东雀神祈福真的... 第十分钟辅助!广东雀神祈福真的有用吗,都是是有辅助技巧(有挂方略)1、下载好广东雀神祈福真的有用吗透...