С недавних пор этот сайт генерится из markdown-шаблонов в полностью статическое содержимое (html-файлы). Делается это при помощи tcl-ssg https://github.com/tclssg/tclssg. И вот решил я на примере моего сайта показать механизм непрерывной интеграции и доставки (да, то самое CI/CD).
Настроить процесс непрерывной сборки и доставки на сайт пакетов программ из Git-репозитария с исходниками.
Так как buildbot - это распределённая система, то будет логичным под каждую архитектуру и операционку сделать отдельный сборочный хост. В нашем случае это будут LXC-контейнеры (в случае linux) и qemu (в случае windows):
vm-srv-build1 - centos 7, тут будет buildbot мастер (master) и один из работников (worker)
vm-srv-build2 - debian 10, для сборки DEB пакетов
vm-srv-build3 - windows 10, для сборки, сами понимаете, под что
Собирать будем Rac GUI - графическая морда к 1С rac для управления кластером серверов. Под линукса будут использоваться штатные средства под кажду ОС, для сборки exe-файла под windows из tcl-скрипта используется freewrap.
Код сайта статический, генериться из markdown-шаблонов при помоши tcl-ssg. Т.е. при сборке нового пакета buildbot будет запускать генерацию сайта.
(дальше)
Для полноценного запуска Mattermost в работу, туда требуется добавить определённое количество пользователей, конечно логичным было-бы подключиться к нашему AD, но модуль интеграции с LDAP продаётся за деньги, а руками вколачивать несколько десятков юзеров утомительно да и не правильно. Потому будем городить костыли.
Продолжим разбираться с mattermost в части интеграции с внешними сервисами.
Часть вторая. Интеграция с Zabbix
Во второй части повествования о интеграции mattermost, речь пойдет про отправку сообщений об авариях из zabbix в mattermost. В результате поисков в сети был взят за основу вот
этот скрипт. Код написан на Perl, поэтому может потребоваться доустановка перловых-пакетов. Прежде чем приступить к описанию кода (он несколько изменён по сравнению с исходным) сперва, как водится, произведём некоторые настройки.
(дальше)
Выбирая замену, используемой у нас, системы обмена сообщениями, наткнулся на описание Mattermost, и решил попробовать. Одним из плюсов, описываемой системы, является простая интеграция со сторонними сервисами, так называемые "хуки" (outgoing и incoming hooks). Вот про настройку взаимодействия через хуки с внешними системами и будет данная статья (в нашем конкретном случае это zabbix и glpi).
Так как постоянно заглядывать в консоль Bareos-a или на вэб-интерфейс не всегда удается, а контролировать выполнение заданий резервного копирования надо, то решено было всё это дело возложить на могучие плечи Zabbixa.
Решил я возродить свой старый проект Tcl/Tk Project Manager (IDE для tcl/tk) и для удобства разработки исходники были помещены в git-репозиторий bitbucket.org. Но тут встал вопрос публикации новостей о новых выпусках программы, ссылок на архивы или пакеты для загрузки. И вот возникла идея этот процесс автоматизировать, благо для этого все механизмы и инструменты есть. Первым делом будем автоматизировать упаковку исходников в архив и загрузку его на сайт для скачивания. Паковать исходники будем tar-ом а загружать на сайт по ftp при помощи curl.
FlowViewer — это вэб интерфейс к пакету пограмм для сборки netflow статистики flow-tools. Написано, данное программное обеспечение, на perl-е и в качестве httpd сервера использует Apache. Домашняя страница проекта https://ensight.eos.nasa.gov/FlowViewer/
Понадобилось собирать netflow статистику, и для этого выбран был пакет flow-tools и вэб морда к нему FlowViewer. Про вэб морду поговорим позже а вот по flow-tools есть некоторые соображения.