我想使用角色中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
Run Code Online (Sandbox Code Playgroud)
其中第二个游戏是运行 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
Run Code Online (Sandbox Code Playgroud)