gpt4 book ai didi

Ansible:在一项任务中并行执行 delegate_to 循环

转载 作者:行者123 更新时间:2023-12-03 21:04:32 30 4
gpt4 key购买 nike

我使用带有嵌套循环的 delegate_to 在一组主机之间分发文件。

但在某些情况下存在性能问题,因为任务必须在一台主机上完成才能在下一台主机上执行,依此类推。

为了减少完成任务所需的时间,有没有办法用循环并行执行delegate_to?

- name: Create backup
archive:
path: xxxxx
dest: xxxxx
format: gz
delegate_to: "{{hosts[ ( ((item[0] -1) + (item[1] | int)) - 1) % (hosts|length|int) ] }}"
run_once: yes
with_nested:
- "{{loop_1}}"
- "{{loop_2}}"

我已经尝试过异步模块,但我意识到它不适合我的用例。

最佳答案

我会使用 add_host将您的主机添加到内存组中并在剧本中创建新游戏的任务。
一个例子:

- hosts: all
tasks:
- name: Add hosts to in-memory group
add_host:
name: '{{hosts[ ( ((item.0 -1) + (item.1 | int)) - 1) % (hosts|length|int)
] }}'
group: _backup_hosts
loop: '{{ loop1 | product(loop2) | list }}'
- hosts: _backup_hosts
tasks:
- name: Create backup
archive:
path: xxxxx
dest: xxxxx
format: gz
run_once: true

关于Ansible:在一项任务中并行执行 delegate_to 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55223118/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com