Создание и активация сервиса и таймера ansible-pull¶
Общее описание¶
Роль настраивает сервис и таймер systemd для локального запуска ansible сценария из git репозитория. Ansible pull используется для извлечения удаленной копии ansible на каждом управляемом узле, каждый из которых запускается через cron/timer и обновляет источник playbook через исходный репозиторий. Это инвертирует стандартную push- архитектуру ansible в pull- архитектуру, которая имеет почти безграничный потенциал масштабирования.
Параметры¶
Общее параметры¶
| Название переменной | Тип переменной | Значения по умолчанию | Описание |
|---|---|---|---|
| git_user | string | undef | Пользователь для доступа к git репозиторию. |
| git_password | string | undef | Токен для авторизации. |
| sudoers_pull_runner | string | undef | Дополнительные правила sudoers для пользователя pull-runner. |
Внимание
По умолчанию все сценарии запускаются из под пользователя pull-runner. Если дополнительные правила sudoers не заданы, то пользователю разрешено запускать любые команды с повышением привилегий.
Параметры для создания сервиса и таймера¶
| Название переменной | Тип переменной | Значения по умолчанию | Описание |
|---|---|---|---|
| ansible_pull_repo | array | undef | Список элементов описания исходных сценариев и сервисов. Параметры описаны ниже. |
| name | string | undef | Имя для идентификации сервиса и таймера. |
| repo_url | string | undef | Адрес исходного git репозитория со сценарием. |
| host_invent | string | undef | Файл инвентаризации. |
| tempdir | string | undef | Временная папка куда помещается исходный сценарий. |
| purge | boolean | undef | Задает необходимо ли очищать папка после выполнения сценария. |
| id_vault | string | undef | Идентификатор ключа от файлов с секретами. |
| timeout | string | undef | Задает максимальное время выполнения сценария. |
| pulling_root | string | undef | Задает пользователя от которого выполняется запуск сценария. |
| description | string | undef | Задает описание сервиса. |
| docs | string | undef | Задает ссылку на документацию в сервисе. |
| timer_boot | string | undef | Задает параметр OnBootSec в таймере. |
| timer_active | string | undef | Задает параметр OnUnitActiveSec в таймере. |
| timer_calendar | string | undef | Задает параметр OnCalendar в таймере. |
Внимание
Обязательным параметром является repo_url. Если ни один из параметров timer_boot, timer_active, timer_calendar не задан, то время выполнения устанавливается на 00:00:00 каждого понедельника.
Парамерты для использования секретов¶
| Название переменной | Тип переменной | Значения по умолчанию | Описание |
|---|---|---|---|
| ansible_pull_secret | array | undef | Список элементов для создания ключей к секретам. Параметры описаны ниже. |
| id_vault | string | undef | Идентификатор ключа от файлов с секретами. |
| pass_vault | string | undef | Ключа от файлов с секретами. |
Внимание
id_vault необходим дял сопоставления ключа с исходным сценарием и должны совпадать.
Примеры¶
inventory/hosts
[example-servers]
<host_name> ansible_ssh_host=<host_ip> ansible_ssh_user=<user_name_for_connect>
[example-servers:vars]
ansible_pull_repo=[{'name':'test1_ini', 'repo_url':'https://github.com/yours-org/yours-repo-1.git', 'timer_active':'15min'}, {'name':'test2_ini', 'repo_url':'https://github.com/yours-org/yours-repo-2.git', 'timer_active':'15min', 'purge':True, }]