ansible.cfg

- 2 mins read
📝 ansible.cfg - основной файл конфигурации системы управления конфигурациями Ansible. Задает глобальное и локальное поведение утилит Ansible, определяя параметры подключения к удаленным серверам, пути к файлам инвентаризации, модули по умолчанию и другие системные настройки. Параметры указанные в ниже приведенном конфиге закроюб 95% задач в проекте и сделает деплой быстрым и предсказуемым
ℹ️ [default] Путь к файлу со списком серверов (инвентарю)
inventory = ./inventory.ini
ℹ️ Путь к файлу который указывает Ansible, где автоматически взять пароль для расшифровки Vault
vault_password_file = ./.ansible_vault_pass
ℹ️ Путь к локальной папке с кастомными модулями
library = ./library
ℹ️ Путь, куда скачиваются сторонние коллекции из Ansible Galaxy
collections_path = ./collections
ℹ️ Путь к кастомным ролям проекта
roles_path = ./roles
ℹ️ Под каким пользователем подключаться к серверам по SSH
remote_user = root
ℹ️ Отключение проверки SSH-ключей (удобно, чтобы не жать “yes” при первом подключении)
host_key_checking = False
ℹ️ Сколько серверов настраивать одновременно (по дефолту 5, увеличиваем для скорости)
forks = 10
ℹ️ Отключает создание раздражающих файлов .retry при падении плейбука
retry_files_enabled = False
ℹ️ Выводит плейбук в красивом и читаемом JSON/YAML формате (вместо одной строки)
stdout_callback = yaml
ℹ️ [privilege_escalation] Автоматически повышать права до root на целевых серверах
become = True
ℹ️ Способ повышения прав (обычно sudo)
become_method = sudo
ℹ️ Пользователь, в которого превращаемся (root)
become_user = root
ℹ️ Запрашивать ли пароль для sudo (False, если настроен sudoers без пароля)
become_ask_pass = False
ℹ️ [ssh_connection] Включение пайплайнинга (задачи выполняются внутри одной SSH-сессии, это ускоряет работу в 2-3 раза)
pipelining = True
ℹ️ Настройки SSH-клиента: переиспользование соединений, чтобы не тратить время на хендшейк
ssh_args = -o ControlMaster=auto -o ControlPersist=60s
⚠️ Секреты, пароли в ansible.cfg никогда не хранятся. Для шифрования секретов используется инструмент Ansible Vault, но сами зашифрованные данные лежат в других местах, которые подключаются к плейбуку. Сам файл .ansible_vault_pass, обязательно добавляется в .gitignore