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