У меня есть сине-зеленый разворачиваемый playbook. Он полагается на определенные переменные, чтобы определить, какие хосты применяют основные роли. Вот одна из ролей для примера:Ansible - playbook вызывает другую игру с переменными, тегами и лимитами
- name: Remove current server from load balancer
hosts: 'tag_Name_{{server_name}}_production'
remote_user: ec2-user
sudo: true
roles:
- remove-load-balancer
я могу назвать этот сборник пьес с заданными пределами и тегами, и это замечательно работает - но только для одного типа сервера. Например, эта команда будет синий зеленый развернуть наши серверы служб:
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
Я хотел бы написать мастер-синий зеленый Playbook, который по существу проходит несколько playbooks - первый для серверов API, а затем для серверов служб. Я попытался с помощью включает в себя, но не могу получить правильный синтаксис - анзибль либо жалуется, что моя задача не делать ничего или жалуется на то, что синтаксис неверен:
- 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
В идеале я бы смог назовите это так:
ansible-playbook blue.green.yml -i ec2.py -e core_repo=~/core
Кто-нибудь сделал это успешно? Если да - как я могу это сделать?
http://docs.ansible.com/ansible/playbooks_roles.html – Wtower