2016-05-04 6 views
2

Ich möchte das Modul mongodb_replication in greendayonfire.mongodb Rolle definiert verwenden.Kann ich eine Rolle laden, ohne ihre Aufgaben auszuführen (um nur die Module zu erhalten)?

Ich weiß, ich kann das Modul in meinen Aufgaben nach dem Anwenden der Rolle im gleichen Spiel verwenden. Aber ich möchte die Rolle nicht anwenden (und alle ihre Aufgaben ausführen). Gibt es eine Möglichkeit, die Rolle "aufzunehmen", ohne die Aufgaben auszuführen?

mag ich es wie diese

--- 
- 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 

haben, wo das zweite Stück der ist, der das Modul mongodb_replication läuft (nur in dem Knoten mongodb-0). Momentan kann das Modul nicht gefunden werden.

Ich denke, kann ich kopieren Sie das Modul aus der Rolle in meinem Textbuch, aber ich werde sauberer sein, wenn ich nur das Modul von der Rolle importieren konnte (was ich will nicht bearbeiten)

Antwort

3

Ich fand, dass Es ist möglich, die Rolle ohne Ausführen der Aufgabe zu laden, indem Sie die when: false-Klausel verwenden, wenn Sie auf die Rolle verweisen. Dies lädt die Variablen, Standardwerte, Module usw.

- 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 
Verwandte Themen