Введение
Групповые переменные в Ansible позволяют задавать параметры, актуальные для целых групп хостов. Это удобный механизм для адаптации логики Ansible под нужды конкретных сегментов инфраструктуры и централизованной настройки общих параметров. В ходе этого испытания вы научитесь создавать и применять групповые переменные в вашем инвентарном файле (inventory).
Определение групповых переменных
Начнем с изучения того, как прописывать групповые переменные непосредственно в инвентарном файле Ansible. Это базовый навык, который позволит вам эффективно управлять конфигурациями различных групп серверов.
Задачи
Определите групповые переменные для конкретных групп хостов:
- Создайте файл с именем
inventoryв директории/home/labex/projectсо следующим содержимым:- Определите группы с именами
webиdb. - Добавьте переменную
http_port=80для группыweb. - Добавьте переменную
db_port=3306для группыdb. - Для простоты используйте
localhostв качестве хоста, добавив его в обе группы (webиdb).
- Определите группы с именами
Требования
- Ansible предварительно установлен.
- Настроено SSH-соединение с управляемыми хостами.
Примеры
После выполнения этого шага вы сможете использовать модуль ping в Ansible для проверки статуса хостов в группе web:
ansible web -i inventory -m ping
Пример вывода:
localhost | SUCCESS => {
"changed": false,
"ping": "pong"
}
Использование групповых переменных в плейбуках
Теперь, когда переменные определены, перейдем к следующему важному этапу: обращению к этим переменным внутри плейбуков Ansible. Этот навык позволит вам создавать динамичные и гибкие сценарии автоматизации, адаптирующиеся под разные группы хостов.
Задачи
Создайте новый файл плейбука с именем
my-playbook.yamlв директории/home/labex/projectсо следующим содержимым:- Укажите в качестве целевых хостов (
hosts) группуweb. - Используйте модуль
debugдля обращения к групповой переменнойhttp_portи её вывода на экран.
- Укажите в качестве целевых хостов (
Запустите плейбук с помощью команды
ansible-playbook, указав созданный ранее инвентарный файл.
Требования
- Ansible предварительно установлен.
- Настроено SSH-соединение с управляемыми хостами.
- Инвентарный файл создан и настроен.
Примеры
После выполнения этого шага запуск плейбука должен вывести результат, похожий на этот:
PLAY [Print group variables] **************************************************
TASK [Gathering Facts] ********************************************************
ok: [localhost]
TASK [Print http_port variable] ************************************************
ok: [localhost] => {
"http_port": 80
}
PLAY RECAP *********************************************************************
localhost : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
Резюме
Поздравляем! Вы успешно справились с испытанием по работе с групповыми переменными в Ansible. Вы научились определять их в инвентарном файле и использовать в плейбуках. Эти навыки являются фундаментом эффективной работы с Ansible, позволяя гибко управлять конфигурациями различных групп серверов в вашей инфраструктуре.
Грамотное использование групповых переменных помогает создавать масштабируемые и модульные процессы автоматизации. Продолжая изучение Ansible, пробуйте экспериментировать с различными типами переменных и исследуйте, как они могут упростить ваши задачи. Помните: практика — лучший способ закрепить эти концепции!


