2016-06-02 2 views
3

У меня есть сине-зеленый разворачиваемый 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 

Кто-нибудь сделал это успешно? Если да - как я могу это сделать?

+1

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

ответ

1

Будет ли это работать на ваш случай?

- 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

Как я могу сделать это с более новой версией такой как 2,4? – Yaron

Смежные вопросы