Cronicle с Visiology Platform

Тип статьи

Инструкция

Компетенции

Администратор, аналитик

Версия платформы

2.28

Статус

бета

Сложность

относительно несложно

Полезные ссылки

https://github.com/jhuckaby/Cronicle

Дополнительные сведения

 

Введение


Часто функционала встроенного планировщика в платформе недостаточно: нужно более гибкое время, цепочки, перезапуск по ошибкам и тд. К тому же настройки разнесены по разным компонентам платформы, а правильнее иметь централизованный интерфейс управления запланированными задачами.

В качестве решения здесь предлагается сторонний open-source инструмент Cronicle, входящий также в сборку Vixtract. Cronicle запускается вместе с платформой и позволяет централизованно управлять всеми задачами в своем веб интерфейсе.

Механизм авторизации в Cronicle не связан с платформой, поэтому логиниться и управлять пользователями в нем нужно отдельно. При желании можно сделать интеграцию openid, включить LDAP, но это все отсутствует в коробке и требует компетенцией в Nodejs и времени на разработку (+ Google в помощь, могут появляться форки с уже реализованным доп функционалом).

Доступы по умолчанию: admin/admin

Инструкция по запуску.


  1. Добавляем новый сервис в external.yml. Пример выше в файлах.

  2. Редактируем /docker-volume/proxy/nginx.conf. Добавляем туда строки 251-310 из приложенного файла примера.

  3. Перезапускаем платформы run.sh --restart.

  4. Проверяем доступность cronicle. адрес_платформы/cronicle. admin/admin


Пример с планами загрузки.


  1. Узнаем id своих планов загрузки в Postman:

    curl --location --request GET 'http://192.168.44.217/vqadmin/api/databases/ViQube/loadplans/all/status' --header 'x-api-version: 1.0' --header 'accept: application/json' --header 'Authorization: Bearer eyJh...длинный токен'
  2. Редактируем приложенный питон скрипт LoadPlanInvoke. Заменяем там логин, пароль, адрес и схему платформы и id плана загрузки.
    Копируем этот скрипт в /var/lib/docker/volumes/visiology_vixtract-cronicle-data/_data/python/

  3. В Cronicle создавать Event с типом Shell скрипт.

    #!/bin/bash cd /opt/cronicle/data/python python3 LoaderPlanInvoke.py

     

  4. Запустить и проверить работу.

  5. Аналогично можно создать еще один Event для снятия снапшота викуба и запускать его по цепочке после успешной отработки предыдущего Event на запуск планов. Он также выше в файлах.