2016-05-04 5 views
5

Я пишу мастер-версию Ansible Playbook, в которую входят проигрыватели. Теперь я хочу установить переменные, которые используют все используемые в нем плейеры. Как указать переменные в этой пьесе? Я знаю, что один из вариантов состоит в том, чтобы включить vars_files и использовать его с каждой из playbook. Пример: - include: abc.yml vars_files: vars.ymlЗадание переменных в master Ansible playbook

Я использую Ansible 1.9.3.

ответ

3

Сначала я бы порекомендовал вам update ваш Ansible до последней версии. Это очень легко сделать, нет причин оставаться позади.

Сказав это, существует множество способов определения переменных в вашей мастер-плейбуке. Все они более или менее одинаковы с любой другой книжкой. Вкратце упоминание:

a. Define их в вашем самом плейере

- hosts: webservers 
    vars: 
    http_port: 80 

b. Separating в переменный файл, как вы уже сказали:

- hosts: all 
    remote_user: root 
    vars: 
    favcolor: blue 
    vars_files: 
    - /vars/external_vars.yml 

варов/external_vars.yml

somevar: somevalue 
password: magic 

Другие возможности включают в себя:

гр. Using facts

d. Registering output into variables

Кроме того, что может быть важно для вашего случая:

д. Вы можете pass variables into includes:

tasks: 
    - include: wordpress.yml wp_user=timmy 
    - include: wordpress.yml wp_user=alice 
    - include: wordpress.yml wp_user=bob 

e. Передача variables in command line:

ansible-playbook release.yml -k "version=1.23.45 other_variable=foo" 

-k представляет собой сокращенную --exra-vars.

Могут быть и другие способы, которыми я могу отсутствовать в данный момент.

+1

Отличное резюме! Должен иметь больше upvotes :) –

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