Механизм внешних плагинов

Пользовательские Ansible роли

Для добавления настраиваемых Ansible ролей выполните следующие действия:

  1. Перейдите в репозиторий региона и создайте директорию 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.

  2. В созданной директории создайте Ansible плейбук client-config.yml. Вариант содержимого client-config.yml:

    ---
    - hosts: all
      roles:
        - some_role
    
  3. Запустите пайплайн New Pipeline. После завершения шага setup запустите задачу client-config.

    Важно

    Перед запуском задачи client-config необходимо убедиться, что в директории <region_name>/client_config/roles присутствует директория some_role.

Также вы можете настроить регулярное выполнение задачи client-config с помощью функции Pipeline Schedules. Для этого выполните следующие действия:

  1. Перейдите в репозиторий региона project_k / deployments / <имя региона>.

  2. Перейдите в раздел Build > Pipeline Schedules.

  3. Создайте новое расписание, нажав на кнопку New schedule.

  4. В поле Description введите название расписания, например, «Client config».

  5. Задайте часовой пояс в поле Cron timezone.

  6. В поле Interval Pattern выберите необходимую периодичность выполнения задачи client-config, например, Every day. Чтобы задать собственный интервал запуска, выберите вариант Custom и введите cron-выражение. Например:

    • 0 4 * * * — ежедневный запуск в 04:00;

    • 0 4 * * 1 — еженедельный запуск по понедельникам в 04:00;

    • 0 4 1 * * — ежемесячный запуск первого числа в 04:00.

  7. В поле Variables добавьте переменную SCHEDULE_TASK со значением client-config.

  8. Убедитесь, что чек-бокс Activated включен, чтобы планировщик был сразу запущен согласно заданному расписанию.

  9. Нажмите кнопку Create pipeline schedule.

Создание расписания для применения клиентской конфигурации

Создание расписания для применения клиентской конфигурации