В каком файле хранятся переменные с самым высоким приоритетом в Ansible?

«В каком файле хранятся переменные с самым высоким приоритетом в Ansible?» — вопрос из категории Ansible, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Ansible переменные с самым высоким приоритетом — это переменные, переданные через командную строку с флагом --extra-vars (или -e). Они переопределяют все другие источники.

Пример использования:

ansible-playbook deploy.yml -e "app_version=2.1.0 deployment_env=prod"

Если рассматривать только файловые источники (без CLI), то наивысший приоритет имеют:

  1. host_vars/<имя_хоста> — переменные для конкретного хоста.
  2. group_vars/<имя_группы> — переменные для группы хостов.

Важно: Переменные, определенные в инвентаре (inventory), имеют более низкий приоритет, чем переменные в group_vars или host_vars. Порядок приоритетов детально описан в документации Ansible.