Определение и использование vars в плейбуке
Объявляйте значения и обращайтесь к ним.
«Определение и использование vars в плейбуке» — бесплатный урок Ansible Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Ansible Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Ansible Academy содержит 4 уроков всего.
Зачем нужны переменные
Повторное жёсткое задание таких значений, как порт или имя пакета, усложняет изменения. Переменная задаёт значение один раз, чтобы его можно было использовать повторно. 🌟
Раздел переменных
Внутри плей добавьте ключ переменных, содержащий соответствия имён и значений. Всё, что находится под ним, становится доступным задачам этого плей.
- hosts: web
vars:
http_port: 80
app_name: shop
tasks: []Именование переменных
Используйте строчные буквы, цифры и символы подчёркивания в именах переменных. Понятное имя вроде http_port всегда лучше загадочного p1.
Переменные могут хранить любой тип
Значением может быть строка, число, логическое значение, список или словарь. YAML определяет тип по способу записи.
vars:
max_clients: 200
debug: true
packages:
- nginx
- gitСсылка на переменную
Чтобы использовать значение, заключите его имя в двойные фигурные скобки. Запись {{ http_port }} сообщает Ansible, что нужно подставить сохранённое значение.
tasks:
- debug:
msg: "Port is {{ http_port }}"Переменные внутри аргументов модуля
Переменную можно вставить в любой аргумент модуля, а не только в сообщения. Здесь аргумент имя получает значение из переменной.
tasks:
- apt:
name: "{{ app_name }}"
state: presentМодуль отладки
Модуль debug выводит значение во время запуска. Он помогает проверить, что именно хранится в переменной.
- debug:
var: http_portvar и msg в debug
Используйте var, чтобы вывести исходное значение переменной, или msg, чтобы вывести предложение с фигурными скобками. Это два разных стиля.
- debug:
msg: "Serving {{ app_name }} on {{ http_port }}"vars_files для длинных списков
Если значений много, перенесите их в отдельный файл и укажите его с помощью vars_files. Так плей остаётся аккуратным.
- hosts: web
vars_files:
- vars/main.yml
tasks: []vars_prompt для ввода
Нужно получить значение во время выполнения? vars_prompt задаёт оператору вопрос и сохраняет его ответ как переменную.
vars_prompt:
- name: username
prompt: "Enter a username"Область действия: переменные уровня плей
Переменные, определённые в разделе переменных плей, применяются ко всем задачам этого плей, но не к другим плей в том же файле.
Быстрая проверка
Как сослаться на значение переменной внутри задачи?
Итоги
Вы научились объявлять значения в разделе переменных, давать им понятные имена и получать их с помощью двойных фигурных скобок. Переменные делают плей повторно используемыми. ✨
Часто задаваемые вопросы
Урок «Определение и использование vars в плейбуке» бесплатный?
Да — полный текст урока «Определение и использование vars в плейбуке» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Ansible Academy, подпишись на CoddyKit PRO. Курс Ansible Academy содержит 4 уроков всего.
Чему я научусь в уроке «Определение и использование vars в плейбуке»?
Объявляйте значения и обращайтесь к ним. Ты практикуешь Ansible Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Ansible Academy?
Предыдущий опыт не требуется. Ansible Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «Определение и использование vars в плейбуке»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Ansible Academy?
Да. Каждый урок Ansible Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Определение и использование vars в плейбуке
- Синтаксис подстановки {{ }}
- Дополнительные переменные в командной строке
- Источники переменных и их приоритет