并行运行ansible剧本。
项目描述
ansible-parallel
TL;DR
pip install ansible-parallel
ansible-parallel *.yml
并行执行多个ansible剧本。
就我的使用情况而言,顺序执行(使用包含多个 import_playbook
的 site.yml
)需要30分钟,而并行执行只需要10分钟。
用法
ansible-parallel
的运行方式类似于 ansible-playbook
,但接受多个剧本。所有剩余的选项都传递给 ansible-playbook
,因此您可以为例如运行 ansible-parallel --check *.yml
。
示例
启动非常简单
$ ansible-parallel *.yml
运行时,它会显示正在进行的实时更新,每个剧本一行
web.yml: TASK [common : Configure Debian repositories] *****************************
gitlab.yml: TASK [common : Configure IP failover] *************************************
staging.yml: TASK [common : Configure Debian repositories] *****************************
dev.yml: Done.
完成时,它会打印出完整的报告,例如
# Playbook playbook-webs.yml, ran in 123s
web1.meltygroup.com : ok=51 changed=0 unreachable=0 failed=0 skipped=12 rescued=0 ignored=0
web2.meltygroup.com : ok=51 changed=0 unreachable=0 failed=0 skipped=12 rescued=0 ignored=0
web3.meltygroup.com : ok=51 changed=0 unreachable=0 failed=0 skipped=12 rescued=0 ignored=0
# Playbook playbook-staging.yml, ran in 138s
staging1.meltygroup.com : ok=64 changed=6 unreachable=0 failed=0 skipped=18 rescued=0 ignored=0
# Playbook playbook-gitlab.yml, ran in 179s
gitlab-runner1.meltygroup.com : ok=47 changed=0 unreachable=0 failed=0 skipped=13 rescued=0 ignored=0
gitlab-runner2.meltygroup.com : ok=47 changed=0 unreachable=0 failed=0 skipped=13 rescued=0 ignored=0
gitlab-runner3.meltygroup.com : ok=47 changed=0 unreachable=0 failed=0 skipped=13 rescued=0 ignored=0
gitlab.meltygroup.com : ok=51 changed=0 unreachable=0 failed=0 skipped=12 rescued=0 ignored=0
# Playbook playbook-devs.yml, ran in 213s
dev1.meltygroup.com : ok=121 changed=0 unreachable=0 failed=0 skipped=22 rescued=0 ignored=0
dev2.meltygroup.com : ok=121 changed=0 unreachable=0 failed=0 skipped=22 rescued=0 ignored=0
已知替代方案
ansible-pull
如果只想保留Ansible的推行为,那么ansible-parallel是一个不错的选择,但如果您有很多剧本,并且正在寻找ansible-pull与适当的报告系统(如ARA)
xargs
一种使用3行bash快速完成的方法
ls -1 *.yml | xargs -n1 -P16 sh -c 'ansible-playbook "$$0" > "$$0.log"' ||:
grep -B1 "^\(changed\|fatal\|failed\):" *.log
echo *.yml.log | xargs -n1 sed -n -e '/^PLAY RECAP/,$$p'
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分发
ansible-parallel-2023.7.26.tar.gz (5.1 kB 查看哈希值)
构建版本
关闭
哈希值 for ansible_parallel-2023.7.26-py3-none-any.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 17c11398285d0711880d0ac8584ee16b25d2e80a5274b6aafa7facf99ae5853b |
|
MD5 | 8bed6b3e8f6691df40641dc489789d23 |
|
BLAKE2b-256 | b57d9fee73985c343b60bc89c0af2f75f7aa8890e330a85c0295abb2f588fe7c |