2016-06-02 6 views
3

Ich habe ein blaugrünes Deploy-Playbook. Es hängt von bestimmten Variablen ab, um zu bestimmen, auf welche Hosts die zugrunde liegenden Rollen angewendet werden sollen. Hier ist eine der Rollen für ein Beispiel:Ansible - Playbook ruft ein anderes Playbook mit Variablen, Tags und Limits auf

- name: Remove current server from load balancer 
    hosts: 'tag_Name_{{server_name}}_production' 
    remote_user: ec2-user 
    sudo: true 
    roles: 
    - remove-load-balancer 

ich dieses Textbuch anrufen kann mit festgelegten Grenzen und Tags und es funktioniert wunderbar - aber nur für eine Art von Server. Zum Beispiel wird dieser Befehl blau grün ist unsere Dienste-Server bereitstellen:

ansible-playbook blue.green.yml -i ec2.py -l tag_Name_services_production,tag_Name_services_production_old --skip-tags=restart,stop -e server_name=services -e core_repo=~/core 

Ich mag einen Master blau grün Textbuch schreiben, die im Wesentlichen mehr Playbooks laufen - zuerst für den api-Server und dann für den Dienste-Server. Ich habe versucht, enthält verwenden, aber kann nicht scheinen, um die Syntax richtig zu machen - ansible entweder beschwert sich, dass meine Aufgabe nichts tut oder beklagt, dass die Syntax ist falsch:


- name: Blue green deploy to all production boxes. 
    hosts: localhost 
    tasks: 
    - include: blue.green.single.yml 
    hosts: 
    - tag_Name_api_production 
    - tag_Name_api_production_old 
    vars: 
    - server_name: api 
    skip-tags: 
    - restart 
    - stop 

    - include: blue.green.single.yml 
    hosts: 
    - tag_Name_services_production 
    - tag_Name_services_production_old 
    vars: 
    - server_name: services 
    skip-tags: 
    - restart 
    - stop 

Im Idealfall würde ich in der Lage sein, Rufen Sie das so auf:

ansible-playbook blue.green.yml -i ec2.py -e core_repo=~/core 

Hat jemand dies erfolgreich getan? Wenn ja - wie kann ich das erreichen?

+1

http://docs.ansible.com/ansible/playbooks_roles.html – Wtower

Antwort

1

Würde dies für Ihren Fall funktionieren?

- name: Blue green deploy to all production boxes. 
    hosts: [tag_Name_api_production, tag_Name_api_production_old] 
    tasks: 
    - include: blue.green.single.yml 
     vars: 
     - server_name: api 
     skip-tags: 
     - restart 
     - stop 

- name: Blue green deploy to all production boxes. 
    hosts: [tag_Name_services_production, tag_Name_services_production_old] 
    tasks: 
    - include: blue.green.single.yml 
     vars: 
     - server_name: services 
     skip-tags: 
     - restart 
     - stop 
+0

Wie kann ich mit einer neueren Version zu tun, dass wie 2.4? – Yaron