Сначала я бы порекомендовал вам 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
.
Могут быть и другие способы, которыми я могу отсутствовать в данный момент.
Отличное резюме! Должен иметь больше upvotes :) –