Создание и активация сервиса и таймера 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, }]