gpt4 book ai didi

ansible - 我可以加载角色而不执行其任务(仅获取模块)吗?

转载 作者:行者123 更新时间:2023-12-02 14:56:08 28 4
gpt4 key购买 nike

我想使用模块mongodb_replication定义于 greendayonfire.mongodb角色。

我知道在同一个游戏中应用角色后,我可以在我的任务中使用该模块。但我不想应用该角色(并执行其所有任务)。有没有办法在不执行任务的情况下“包含”角色?

我想要这样

---
- hosts: mongodb-nodes
become: true
roles:
- base
- greendayonfire.mongodb
vars:
mongodb_package: mongodb-org
mongodb_version: "3.2"
mongodb_force_wait_for_port: true
mongodb_net_bindip: 0.0.0.0
mongodb_net_http_enabled: true
mongodb_replication_replset: "rs1"
mongodb_storage_prealloc: false
- hosts: mongodb-0
tasks:
- mongodb_replication: replica_set=rs1 host_name=item state=present
with_items:
- mongodb-0
- mongodb-1
- mongodb-2

其中第二个播放是运行 mongodb_replication 模块的播放(仅在节点 mongodb-0 中)。现在它找不到该模块。

我想我可以将角色中的模块复制到我的剧本中,但如果我可以从角色中导入模块(我不想编辑),我会更干净

最佳答案

我发现在引用角色时使用 when: false 子句可以在不执行任务的情况下加载角色。这会加载变量、默认值、模块等。

- hosts: mongodb-0
roles:
- role: greendayonfire.mongodb
when: false
tasks:
- mongodb_replication: replica_set=rs1 host_name=item state=present
with_items:
- mongodb-0
- mongodb-1
- mongodb-2

关于ansible - 我可以加载角色而不执行其任务(仅获取模块)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37026460/

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