Передача переменных в Ansible плейбуки
Теперь, когда у вас есть базовое понимание переменных Ansible (Ансибл), давайте рассмотрим, как передавать переменные в ваши Ansible плейбуки. Существует несколько способов сделать это:
Аргументы командной строки
Вы можете передавать переменные в ваш плейбук, используя опцию -e
или --extra-vars
при запуске команды ansible-playbook
.
ansible-playbook site.yml -e "app_version=2.2 db_host=10.0.0.60"
Файлы переменных
Вы можете определить переменные в отдельных файлах YAML и передать их в ваш плейбук, используя опцию --extra-vars
.
ansible-playbook site.yml --extra-vars "@vars.yml"
## vars.yml
app_name: MyApp
app_version: 2.2
db_host: 10.0.0.60
Переменные инвентаря
Как упоминалось в предыдущем разделе, вы можете определить переменные в файле инвентаря, и они будут доступны в вашем плейбуке.
## inventory.yml
all:
hosts:
webserver1:
ansible_host: 192.168.1.100
app_version: 2.0
webserver2:
ansible_host: 192.168.1.101
app_version: 2.1
Переменные плейбука
Вы также можете определить переменные в рамках вашего плейбука, используя ключевое слово vars
.
- hosts: webservers
vars:
app_name: MyApp
app_version: 2.2
db_host: 10.0.0.60
tasks:
- name: Print variables
debug:
msg: "App name: {{ app_name }}, App version: {{ app_version }}, DB host: {{ db_host }}"
Понимая эти различные способы передачи переменных в ваши Ansible плейбуки, вы можете сделать свою автоматизацию более гибкой и адаптивной к разным средам и требованиям.