我想使用greendayonfire.mongodb role中定义的模块mongodb_replication。
我知道在同一个游戏中应用角色后,我可以在我的任务中使用该模块。但是我不想应用这个角色(并执行它的所有任务)。有没有办法在不执行任务的情况下“包含”角色?
我想要这样的。
---
- 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其中第二个play是运行mongodb_replication模块的play(仅在节点mongodb-0中)。现在它找不到模块。
我想我可以将模块从角色复制到我的剧本中,但是如果我可以从角色导入模块(我不想编辑),我会更干净。
发布于 2016-05-04 19:25:44
我发现在引用角色时使用when: false子句可以在不执行任务的情况下加载角色。这将加载var、default、module等。
- 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-2https://stackoverflow.com/questions/37026460
复制相似问题