Механизм внешних плагинов¶
Пользовательские Ansible роли¶
Для добавления настраиваемых Ansible ролей выполните следующие действия:
Перейдите в репозиторий региона и создайте директорию
client_configсо следующей структурой:group_vars/ # Директория общих переменных для ролей roles/ # Директория для хранения ролей some-role/ # Директория соответствующая названию роли tasks/ # Директория файлов с задачами main.yml # Основной файл задач роли handlers/ # Директория обработчиков событий, которые выполняются при вызове из задач через ``notify`` main.yml # Основной файл обработчиков templates/ # Директория jinja2-шаблонов, которые можно использовать для динамического создания конфигурационных файлов ntp.conf.j2 # Jinja2-шаблон files/ # Директория статических файлов роли, которые могут быть скопированы на целевые хосты без изменений bar.txt # Статический файл vars/ # Директория переменных роли с высоким приоритетом. Используются для ключевых параметров, которые редко изменяются main.yml # Файл с переменными defaults/ # Директория переменных по умолчанию, которые могут быть переопределены. Имеют самый низкий приоритет main.yml # Файл с переменными meta/ # Директория с метаданными роли, такие как зависимости и информация о поддержке main.yml # Файл зависимостей library/ # Директория для хранения пользовательских модулей Ansible module_utils/ # Директория для хранения вспомогательных утилит и библиотек, которые могут использоваться в пользовательских модулях lookup_plugins/ # Директория для хранения пользовательских плагинов для функций lookup, которые используются для получения данных из внешних источников client-config.yml # Конфигурационный файл для использования ролей (ansible плейбук)
Более детальную информацию о подготовке пользовательских Ansible ролей можно прочесть в официальной документации Ansible.
В созданной директории создайте Ansible плейбук
client-config.yml. Вариант содержимогоclient-config.yml:--- - hosts: all roles: - some_role
Запустите пайплайн New Pipeline. После завершения шага setup запустите задачу client-config.
Важно
Перед запуском задачи client-config необходимо убедиться, что в директории
<region_name>/client_config/rolesприсутствует директорияsome_role.
Также вы можете настроить регулярное выполнение задачи client-config с помощью функции Pipeline Schedules. Для этого выполните следующие действия:
Перейдите в репозиторий региона project_k / deployments / <имя региона>.
Перейдите в раздел .
Создайте новое расписание, нажав на кнопку New schedule.
В поле Description введите название расписания, например, «Client config».
Задайте часовой пояс в поле Cron timezone.
В поле Interval Pattern выберите необходимую периодичность выполнения задачи
client-config, например,Every day. Чтобы задать собственный интервал запуска, выберите вариантCustomи введите cron-выражение. Например:0 4 * * *— ежедневный запуск в 04:00;0 4 * * 1— еженедельный запуск по понедельникам в 04:00;0 4 1 * *— ежемесячный запуск первого числа в 04:00.
В поле Variables добавьте переменную
SCHEDULE_TASKсо значениемclient-config.Убедитесь, что чек-бокс Activated включен, чтобы планировщик был сразу запущен согласно заданному расписанию.
Нажмите кнопку Create pipeline schedule.
Создание расписания для применения клиентской конфигурации¶