Настройка конфигурации Ansible Core#
Настройка конфигурации Ansible Core осуществляется через файлы:
глобальный файл конфигурации - обычно находится в
/etc/ansible/ansible.cfg;пользовательский файл конфигурации - находится в домашнем каталоге пользователя -
~/.ansible.cfg;локальный файл конфигурации - может находиться в каталоге проекта, в котором запускается Ansible Core, в файле
ansible.cfg.
Изменения в файлы конфигурации ansible.cfg можно внести:
напрямую с помощью текстового редактора, например,
nano(подробнее - в разделе «Утилита nano» Базы знаний);через переопределение переменных окружения (
ANSIBLE_CONFIG,ANSIBLE_INVENTORY,ANSIBLE_REMOTE_USERи проч.), например, для указания другого файла конфигурации используйте команду:export ANSIBLE_CONFIG=<path_to_custom_file>.cfgс помощью команд Ansible Core, например, для переопределения значения поля
remote_user, заданного вansible.cfg, используйте команду:ansible-playbook <playbook>.yml -i inventory --user=<username>
Порядок обработки источников конфигурации:
ANSIBLE_CONFIG- переменная окружения, если она установлена;ansible.cfgв текущем каталоге;~/.ansible.cfgв домашнем каталоге;/etc/ansible/ansible.cfgпо умолчанию.
Создание ansible.cfg#
Создайте конфигурационный файл Ansible Core с настройками по умолчанию:
ansible-config init --disabled > ansible.cfgВключите доступные плагины для создания более полной конфигурации Ansible Core:
ansible-config init --disabled -t all > ansible.cfg
Основные параметры конфигурации#
В файле ansible.cfg можно настроить различные параметры, в том числе:
[defaults] - основные настройки по умолчанию:
inventory- указывает путь к файлу inventory;remote_user- указывает пользователя, под которым будут выполняться задачи на удаленных хостах;host_key_checking- включает или отключает проверку ключей хостов (по умолчанию включена).
[privilege_escalation] - настройки для повышения привилегий:
become- указывает, нужно ли использовать повышение привилегий (например, с помощьюsudo);become_method- задает метод повышения привилегий (например,sudo,su).
[ssh_connection] - настройки для SSH-соединений:
ssh_args- задает дополнительные аргументы для SSH;pipelining- включает или отключает использование pipelining (техники, позволяющей ускорить выполнение playbooks посредством уменьшения количества SSH-соединений, необходимых для выполнения задач на удаленных хостах) для ускорения выполнения задач.
Подробнее про параметры файла ansible.cfg - в разделе «Конфигурационные файлы ansible.cfg».
Пример ansible.cfg#
Пример содержимого файла ansible.cfg:
[defaults]
inventory = ./inventory
remote_user = ansible_user
host_key_checking = False
[privilege_escalation]
become = True
become_method = sudo
[ssh_connection]
ssh_args = -o ControlMaster=auto -o ControlPersist=60s
pipelining = True
Где -o ControlMaster=auto -o ControlPersist=60s в поле ssh_args включает режим управления соединениями, позволяющий использовать одно SSH-соединение для нескольких команд, и указывает, что после завершения последней команды SSH-соединение должно оставаться открытым в течение 60 секунд.
Проверка конфигурации#
Убедитесь, что Ansible Core использует необходимые параметры конфигурации:
ansible-config view
Команда выведет текущие настройки конфигурации Ansible Core. Подробнее о ansible-config - в разделе «Команда ansible-config».