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?
http://docs.ansible.com/ansible/playbooks_roles.html – Wtower