gpt4 book ai didi

ansible - 多次创建相同的角色,但具有不同的项目

转载 作者:行者123 更新时间:2023-12-04 18:35:49 25 4
gpt4 key购买 nike

我有一个剧本,在我的机器中准备了 3 个不同的 Vagrant,所以我创建了一个角色来创建这个 Vagrant。我没有找到正确的语法。它看起来像 roles is not a module ,所以我没有所有选择,只有教程。

剧本文件:

- hosts: localhost
connection: local

roles :
- role: vagrant
with_items:
- {index: 1, ip: 192.168.222.1, name: mongo1, user: nicorama }
- {index: 2, ip: 192.168.222.2, name: mongo2, user: nicorama }
- {index: 3, ip: 192.168.222.3, name: mongo3, user: nicorama }

以及流浪者角色中的任务
- file: path=/linux/{{item.name}} state=directory  owner={{item.user}} group={{item.user}} mode="u=rwx,g=rwx,o=rx"
- file: src=playbook.yml dest=/linux/{{item.name}}
- template: src=Vagrantfile dest=/linux/{{item.name}}/Vagrantfile

错误是“item.name”未定义。它确实使用 with_items 工作在角色里面,但它甚至会伤害我祖母的眼睛
- file: path=/linux/{{item.name}} state=directory  owner={{item.user}} group={{item.user}} mode="u=rwx,g=rwx,o=rx"
with_items:
- {index: 1, ip: 192.168.222.1, name: mongo1, user: nicorama }
- {index: 2, ip: 192.168.222.2, name: mongo2, user: nicorama }
- {index: 3, ip: 192.168.222.3, name: mongo3, user: nicorama }
- copy: src=playbook.yml dest=/linux/{{item.name}}/playbook.yml
with_items:
- {index: 1, ip: 192.168.222.1, name: mongo1, user: nicorama }
- {index: 2, ip: 192.168.222.2, name: mongo2, user: nicorama }
- {index: 3, ip: 192.168.222.3, name: mongo3, user: nicorama }
...

最佳答案

再次阅读您的问题,我注意到您实际上没有提到它必须是某种循环。也许应用 3 次具有不同参数的相同角色适合您的需求:

- hosts: localhost
connection: local

roles :

- role: vagrant
index: 1
ip: 192.168.222.1
name: mongo1
user: nicorama

- role: vagrant
index: 2,
ip: 192.168.222.2
name: mongo2
user: nicorama

- role: vagrant
index: 3
ip: 192.168.222.3
name: mongo3
user: nicorama

然后在你的角色中你可以使用 vars index , ip等等。

关于ansible - 多次创建相同的角色,但具有不同的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35154601/

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