ServerAdmin.ru
27.1K subscribers
189 photos
27 videos
8 files
2.49K links
Авторская информация о системном администрировании.

Информация о рекламе: @srv_admin_reklama_bot
Автор: @zeroxzed

Второй канал: @srv_admin_live
Сайт: serveradmin.ru
Download Telegram
​​В условиях, когда соблюсти лицензионную чистоту программного обеспечения стало невозможно, приходится прибегать к альтернативным способам активации продуктов Microsoft. Один из вариантов - установка KMS сервера на Debian.

Идею и реализацию подсмотрел в заметке на канале IT-KB, который уже не раз рекомендовал к ознакомлению. Там представлена ссылка на подробную статью с пошаговым руководством. Я проверил её, способ рабочий. Достаточно скопипастить и выполнить все предложенные команды.

Идея простая. Разворачиваете у себя в сети KMS сервер на основе исходного кода проекта vlmcsd. Удивительно, но он спокойно живёт на github. Для установки в систему собирается deb пакет и разворачивается в виде работающей службы. Далее на целевой системе необходимо установить GVLK ключ и указать адрес установленного KMS сервера.

Весь процесс подробно описан в статье, так что особых сложностей возникнуть не должно даже у тех, кто не очень силён в линуксах. Когда исследовал тему, узнал, что оказывается пакеты с KMS сервером есть под множество систем и даже для роутеров. Можете дома у себя развернуть на прошивке OpenWRT.

❗️Отдельно отмечу, что я не сторонник подобных решений, тем более на работе. Вы сами себя подставляете. Так что используйте на свой страх и риск. Ко многим нежелательным решениям нас сознательно подталкивают события последних месяцев. А у кого-то и выбора нет.

#windows
​​Ещё одна заметка на тему адаптации РФ под новые условия стремительно изменяющегося мира. Некоторое время назад через сайт госуслуги была рассылка на тему отечественного магазина приложений RuStore для Android, который разрабатывается при поддержке Минцифры России.

Я его тогда сразу установил и пользуюсь по сей день. У меня нет так много приложений на Android, только самые необходимые. Почти все они есть в RuStore. Сам магазин очень простой - обычный каталог приложений и больше ничего. Никакой рекламы, подписок и чего-то прочего. Лично мне им нравится пользоваться больше, чем Google Play, где до обновления приложений ещё надо постараться добраться. Так что все приложения, что есть в RuStore, обновляю через него.

Я недавно рассказывал про приложение Cams, которое предложил установить через apk или F-Droid. Оказалось, что в RuStore оно присутствует, что меня удивило и порадовало. Теперь успешно обновляется через этот магазин.

Второй момент, на который хочу обратить внимания тех, кто ещё не слышал о новости. Те же gosuslugi запустили бесплатный сервис для выпуска TLS сертификата для сайта. Работает только для юр. лиц, оформляется через личный кабинет юр. лица. Сертификат ничем не отличается от других, только подписан Russian Trusted root CA, которого нет в иностранных браузерах и системах. Из тех браузеров, что известны мне, поддерживает его только Яндекс.Браузер. Он, кстати, у меня уже давно основной. Мне нравится.

#разное
​​В блоге Zabbix некоторое время назад вышла заметка про мониторинг видеопотоков. Я её невнимательно посмотрел и не понял основную идею. Увидел, что предлагают запускать mplayer и мониторить его работу. Подумал, что не очень удобно, а решение показалось каким-то сильно костыльным, требующим ставить иксы и запускать просмотр потока.

На днях внимательнее посмотрел статью и понял, что ошибся. Там на самом деле описан нормальный способ, который не требует ни иксов, ни проигрывания потока. Идея там следующая.

Допустим, у нас есть несколько камер и мы хотим мониторить наличие видеопотоков, которые с них идут. Для этого на сервер ставим mplayer:
# apt install mplayer

И запускаем его без вывода видеопотока. Это можно сделать в обычной консоли, без графического окружения:
# mplayer -vo null http://158.58.130.148/mjpg/video.mjpg
Это рабочая ссылка, привожу её для примера. На ней можно тестить. Если у вас свои камеры и вы хотите мониторить rtsp поток, то запускаем так:
# mplayer -vo null 'rtsp://user:pass@192.168.88.23/rtsp'

Если поток живой, то процесс с mplayer будет запущен. Как только поток отваливается, mplayer завершает работу. На основе этих данных создаётся айтем и триггер в Zabbix. Если камера одна, то можно использовать функцию айтема proc.num, как в примере в статье. Если камер много, то надо будет придумать какую-то другую проверку. В любом случае это не трудно, дело техники. Главное идея.

Я давно размышлял на тему того, как мониторить не просто работу камеры по пингу или ответу по http, а именно проверять наличие видеопотока. Вот хороший и простой в настройке способ. И главное, ровно то, что нужно.

В статье дополнительно даётся совет, как получить скриншот с камеры во время движения. Mplayer умеет принимать внешние команды. Если есть датчик движения, необходимо с него каким-то образом отправлять сигнал на Zabbix Server. Реализация будет зависеть от возможностей датчика. После этого Zabbix Server будет выполнять удалённую команду, посылая mplayer информацию о том, что надо сделать скриншот потока и положить его в какую-то директорию. Если её подключить к веб серверу, то картинку можно добавить на дашборд Zabbix через URL виджет. Схема сложная, но в целом рабочая. Не вижу каких-то серьёзных затруднений с реализацией.

Если вам приходилось настраивать мониторинг видеопотоков в Zabbix, расскажите, как реализовывали это.

#zabbix
Небольшая информация из практической деятельности. Мне давно знакома проблема, когда не устанавливается SIP соединение для регистрации пира или транка с регистрацией. Возникает она в моём случае либо после проблем с интернетом или переключения каналов, либо при работе через VPN вместе с указанными выше проблемами. В общем, когда возникают какие-то неполадки со связью, есть небольшая вероятность, что внешне транки и пиры отвалятся.

При этом какие-либо действия со стороны Asterisk не помогают. Есть можно перезапускать, перезагружать сервер, но регистрации как не работали, так и не будут работать. Когда я первый раз столкнулся с подобной ситуацией, очень сильно напрягся. Потратил примерно день, прежде чем нашёл решение. С тех пор его запомнил и проверяю в первую очередь.

Если у вас по неведомым причинам не регистрируются транки и пиры, проверьте активные соединения на шлюзе, связанные с SIP и удалите их. Отфильтруйте либо по адресу voip сервера, либо по адресу внешнего сервера, либо просто по портам, к примеру, 5060, если используется стандартный.

В роутерах Mikrotik это делается на вкладке:
IP ⇨ Firewall ⇨ Connections

Если у вас шлюз на Linux, то соединения можно посмотреть в /proc/net/nf_conntrack:
# cat /proc/net/nf_conntrack
Либо с помощью утилиты conntrack (ставится из реп, либо как conntrack, либо как conntrack-tools). Смотрим:
# conntrack -L -p udp --src 10.1.4.23 --dport 5060
и удаляем:
# conntrack -D -p udp --src 10.1.4.23 --dport 5060
После этого регистрации успешно состоятся.

В чём причина подобных проблем, я не знаю. Теорию не изучал и не исследовал. Просто знаю, что вот это помогает. Возможно есть другое решение. Лично сталкивался с подобными проблемами только с VOIP.

Если кто-то знает, в чём может быть причина подобных проблем и как с ними бороться, буду благодарен любой содержательной информации.

#gateway #voip #asterisk
​​Вчера затронул тему мониторинга видеопотока с камер и не дополнил её полезной информацией. Я совершенно забыл, что несколько лет назад выполнял задачу по мониторингу камер, подключенных к видеосерверу Линия (Devline). Рассказываю, как решал задачу.

У меня были две идеи по мониторингу:
1️⃣ Анализ лог файла видеосервера. Он туда пишет всю информацию об изменении состояний камер и потоков.
2️⃣ Анализ веб страниц, которые Линия создаёт для каждой камеры. По конкретному статичному url вы можете увидеть изображение с камеры на момент запроса.

Я выбрал второй вариант. Мониторинг реализовал без анализа самих картинок, но это можно сделать при желании. Вчера в комментариях дали совет на эту тему. Можно анализировать количество разных цветов на изображении. Если с потоком какие-то проблемы, то скорее всего будет просто чёрный кадр.

Я же в итоге просто анализировал ответ веб сервера. Опытным путём узнал, что иногда камера может быть доступна, но картинки по какой-то причине с ней нет. В этот момент веб сервер отдаёт ошибку 500, вместо положенной 200. На основании этой информации я и сделал триггер.

Мне подсказали, что подобная страница с изображением с камеры поддерживается не только регистраторами и видеосерверами, но и многими камерами. Так что это хорошая и более простая альтернатива мониторинга видеопотока. Скорее всего, если скриншот с камеры показывает какую-то картинку, то и поток с большой долей вероятности присутствует. При этом настроить подобный мониторинг не сложно. Намного проще, чем сам поток.

Мониторинг камер видеонаблюдения Линия (Devline) в Zabbix

#zabbix
​​Делюсь с вами малоизвестной, но полезной и функциональной находкой. Речь пойдёт про систему централизованного хранения и управления ключами для подключения по SSH к хостам - ssham. Я настроил её и разобрался, как с ней работать. Несмотря на то, что про ssham нет ни одного упоминания в интернете, кроме репозитория программы, она достойна внимания.

Идея ssham следующая. Вы устанавливаете её на любой Linux хост. Потом с её помощью через веб интерфейс управляете настройками подключения к другим хостам.

Для этого вы заходите в веб интерфейс ssham, добавляете туда хосты, пользователей, генерируете ключи. Для всего этого поддерживаются группы. А потом связываете ключи с пользователями, создаёте правила, кому на какой хост можно подключаться с помощью того или иногда ключа. Когда всё настроите, запускаете синхронизацию и ssham сам разложит по хостам нужные сертификаты, для которых настроено разрешение на подключение. Ключи можно как добавлять, так и отзывать/удалять.

Вы получаете централизованную систему хранения и управления доступами для SSH ключей. Теперь рассказываю, как её запустить. Документация очень скудная, мне пришлось довольно долго во всём самому разбираться. Поставить можно как напрямую на сервере, так и запустить в Docker. Для простоты описания, запустим всё в Docker.

Копируем репозитоий:
# git clone https://github.com/pacoorozco/ssham.git ssham
# cd ssham
Делаем копию файла с параметрами окружения:
# cp .env.example .env
Заходим в .env и комментируем строку:
#QUEUE_CONNECTION=database
Пока я этого не сделал, у меня не работала синхронизация ключей по хостам. Несколько часов потратил, пока разобрался.

Далее собираем и запускаем образы:
# export DOCKER_SSHAM_UID="$(id -u)"
# docker-compose build
# docker-compose up -d

Устанавливаем в контейнер app зависимости:
# docker-compose exec app composer install
Инициализируем БД и добавляем туда demo данные:
# docker-compose exec app php artisan key:generate 
# docker-compose exec app php artisan migrate:fresh --seed

Дальше идём в веб интерфейс по ip адресу и логинимся под superadmin / superadmin.

Логика работы с ssham следующая. Создаём SSH Key groups, добавляем SSH key и помещаем его в эту группу. Далее создаём Host group, добавляем Host и помещаем его в эту группу. В завершении создаём Rule, где указываем, что созданная SSH Key group имеет доступ к Host group. Или не имеет. Доступ можно как разрешить, так и запретить.

После того, как всё сделали, в Settings смотрим Public key сервера. Его нужно один раз самостоятельно распространить на управляемые хосты, добавив в ./ssh/authorized_keys. После этого идём в консоль сервера, где запущены контейнеры и выполняем синхронизацию:
# docker-compose exec app php artisan ssham:send

После этого на управляемых хостах ключи будут добавлены в authorized_keys. Теперь можно забрать приватные ключи из веб интерфейса и раздать пользователям.

Исходники

#ssh #devops #управление
​​Хочу вам напомнить про отличный продукт для совместной работы над проектами - YouTrack. Это образец качественного, удобного, продуманного программного обеспечения. Если не ошибаюсь, то использую YouTrack уже около 7-ми лет. С тех пор, как первый раз его увидел, неизменно выбираю для совместной работы. Его ещё называют баг-трекер, но мне кажется, он уже давно вырос в более масштабный продукт.

Основное, чем привлёк YouTrack - полнофункциональная версия для 10-ти пользователей. Причём поставить её можно как у себя, так и пользоваться совершенно бесплатно облачной версией. Последнее встречается не часто. Обычно версию для разворачивания у себя делают бесплатной, а вот SaaS уже только за деньги.

Чтобы вы сразу поняли на что похож YouTrack, приведу несколько аналогов - Jira (YouTrack мне видится в разы лучше), Wrike, Redmine, YouGile, Zendesk, условно и Битрикс24 сюда можно добавить, но он больше на бизнес завязан, а YouTrack на IT, поддержку и разработку.

Как я использую YouTrack? Сразу приведу пару примеров. Небольшой IT отдел из нескольких человек. В YouTrack заводятся все задачи (не заявки пользователей, это не для них), всё максимально подробно в них описывается, разбивается на проекты (поддержка, закупка, модернизация и т.д.). В итоге копится база знаний, плюс всегда готов список задач, которые выполняются. При желании даётся доступ руководству, чтобы не было вопросов на тему того, чем вы вообще занимаетесь. Я сначала работал в youtrack как человек, которому ставят задачи, потом сам стал использовать для управления подчинёнными. Удобно работать в обоих ролях. Причём я сам оценил удобство трекера, когда выполнял и описывал решение задач. Сам потом пользовался информацией.

Второй вариант - совместная работа с разработчиками. Смысл тот же самый. Делим на проекты, пишем и решаем задачи, максимально всё описываем, чтобы можно было использовать потом как базу знаний. Задачам назначаем приоритеты, ставим срок выполнения и т.д. В общем, как во всех подобных программах.

Мне YouTrack нравится за удобство, скорость работы и внешний вид. Возможностей у него очень много и по началу трудно всё настроить и понять логику работы. Но я осилил в своё время, так что ничего невозможного. В SaaS версии с этим попроще, многое настроено за вас. Отдельно отмечу качество софта. Он легко разворачивается (работает на Java) на любой платформе, будь то Linux или Windows. Без проблем обновляется на новые версии. Отлично работает встроенный бэкап. Не надо особо заморачиваться с ним. Создаётся единый архив, который потом скармливается чистой установке. У меня ни разу не было проблемы с тем, чтобы бэкап не развернулся. Даже в SaaS версии можно сделать бэкап и потом развернуть его у себя на сервере. Делал так собственноручно, когда проект закрывался, но хотелось сохранить всю документацию по нему. Сделал бэкап и развернул его у себя на сервере.

Не буду рассказывать про установку своего сервера. Для того, чтобы посмотреть на YouTrack проще всего зарегистрироваться в облаке. А если понравится и будет необходимость, развернуть у себя. В документации всё описано.

Отдельно отмечу, что в YouTrack хорошая русификация. Можно смело использовать русский язык. Разработчики возможно русскоязычные, но это не точно, компания JetBrains международная, хоть и основана русскими в 2000-м году.

Сайт / Полномасштабный обзор (2 часа)

#управление_проектами
​​🎓 Если вы всегда считали себя не от мира сего и вас постоянно тянет на что-то странное, то дальнейшая информация может вам показаться полезной.

Если вы вдруг решили, что GitOps, непрерывное развёртывание приложений и Kubernetes это то, что вам нужно, то могу порекомендовать бесплатные курсы на эту тему с сертификацией в конце от codefresh.io.

Они разработали два бесплатных курса по GitOps на базе ArgoCD. Курсы представлены в текстовом виде с реальными лабораторными заданиями на железе организаторов. В конце предлагается пройти экзамен и получить сертификат. Если вам близка эта тема, то не вижу причины, почему бы не пройти их и не получить сертификат, хоть он и будет филькиной грамотой. Можно будет распечатать и повесить на стену.

Для прохождения курса требуется регистрация. Ничего подтверждать не надо, телефон можно оставить любой, не проверяют. Имя имеет смысл указать настоящее. На него сертификат получать. Курсы на английском языке. Информация максимально сжата, читается легко.

Для прохождения обучения надо уметь хоть немного работать с Kubernetes и понимать, как там всё устроено. Можете мои статьи посмотреть по этой теме и повторить. Будет достаточно первых двух: установка и работа с кластером.

На курсе классно оформлены лабораторные работы. Удобно сделано. Можно кластер потыкать.

https://learning.codefresh.io

#обучение #бесплатно
Следующая по плану статья на тему развития этого Telegram канала будет посвящена рекламе и раскрутке. Это тема, по которой у меня меньше всего информации по существу, потому что заниматься рекламой и маркетингом я не умею и не люблю. Расскажу, что знаю и пробовал.

Системной работы по рекламе канала я никогда не вёл. Много раз собирался, но так и не реализовал ничего, потому что постоянно не хватает на это времени. С предпринимательской точки зрения это полностью провальная тактика и я это понимаю. Наверное предприниматель из меня так себе. Для раскрутки канала я пробовал следующие способы:

1️⃣ Платная реклама в VK через их рекламный кабинет. Сюда было потрачено больше всего усилий. Тестировал разные посты, использовал разные настройки на аудиторию, пробовал как-то всё это анализировать и считать, но слабо получалось. Telegram не даёт никакой обратной связи на тему того, откуда приходят подписчики. В итоге ты тратишь деньги и нет точной информации, какой от них выхлоп. С учётом того, что у меня постоянно идёт приток новых подписчиков, я не могу быть точно уверен, откуда они приходят. В итоге перестал тратить на это деньги.

2️⃣ Пробовал рекламу в Яндекс.Директ. Это вообще чёрная дыра. Деньги улетают моментально, подсчитать эффект невозможно, цена за клик в Яндексе высокая. Показалось вообще не эффективным по сравнению с VK.

3️⃣ На первых порах пробовал взаимный пиар с другими группами. Лично мне не нравится сам формат подобной раскрутки. Мало того, у тебя на канале коммерческая реклама, так ещё посты других групп. Плюс, у меня постоянно выкупаются все запланированные мной под рекламу посты. Для обмена с другими группами просто не остаётся места. Ещё заметил, что очень много групп, где подписчиков вроде много, но посты особо никто не читает. С таких каналов и подписчиков мало. Так что никогда точно не знаешь, будет ли какой-то результат от такого обмена постами. В итоге перестал этим заниматься.

4️⃣ Ссылка на канал с моего сайта serveradmin.ru. Сайт вроде бы много людей посещают (5000-6000 ежедневно в будни), но переходов по ссылке с сайта очень мало. 10-15 переходов в день, а сколько подписчиков - неизвестно. Наверное 5-10, вряд ли больше.

5️⃣ Группа в VK, где периодически в постах встречаются ссылки на посты из Telegram. VK сразу пессимизирует такие публикации, давая показов меньше, чем на посты без ссылки в Телеграм. Но всё равно показы идут. Думаю, это тоже приносит какую-то часть подписчиков.

6️⃣ Закупка рекламных постов в других группах. Поначалу занимался этим. Купил рекламу где-то в 20-30 группах. Но в этом надо разбираться. Очень разные результаты выходят на затраченные деньги. Надо фильтровать каналы, прикидывать, где будет лучше результат. Там обычное дело, когда ты платишь в 2 раза больше, а результат получаешь хуже, чем у рекламного поста в 2 раза дешевле. И так было постоянно. Где-то вообще покупаешь пост, а результата 0. В итоге я бросил это дело, так как не захотел тратить на анализ других групп время.

Вот, собственно, и всё. Это все источники подписчиков для моего канала. Последний год-полтора я вообще не трачу деньги на раскрутку, предпочитая концентрироваться только на контенте. Думаю, именно за счёт него и идёт стабильный, хоть и небольшой прирост подписчиков. По идее, это тоже стратегия раскрутки, которая даёт свой результат.

Если у вас есть какие-то идеи или советы по этой теме, буду рад их выслушать. Если есть какие-то вопросы, то можете задавать. Постараюсь ответить.

#развитие_канала
Нашёл у родителей на даче свою книгу из детства "А я был в компьютерном городе". Она вся помята, частично порвана, проклеена скотчем. В общем, книга затёрта до дыр.

В детстве очень её любил. Кто знает, может быть эта книга определила мою судьбу? В школьном возрасте не было сомнений на тему того, кем я хочу стать и куда пойти учиться. Я чётко знал, что хочу работать с компьютерным оборудованием, хотя свой личный компьютер у меня появился только в 10-м классе.

В детстве любил книги, хотя родители их не читали. Никогда не видел их с книгами. Но у советских семей была отличная традиция - держать книжные шкафы, заполненные книгами. Очень любил ходить мимо шкафов и рассматривать корешки. Чуть подрос, стал их читать. В итоге всё детство провёл с книгами. Люблю их читать и по сей день. Всегда в смартфоне есть список непрочитанных книг. Сейчас читаю Тармашева Сергея. За последний год прочитал все его книги.

Вспоминая свой детский опыт, наполнил свою квартиру детскими книгами. Никогда на них не экономлю, покупаю красивые, дорогие книги, энциклопедии. Порой жаль смотреть, как дети ненароком их портят, но мы непременно садимся и чиним их. Младший ещё не умел говорить, но знал, где лежит скотч, которым нужно проклеить случайно порванную страницу.

Чтение книг - обязательный семейный ритуал, через который прошли все дети (у меня трое). Кто знает, может быть случайно подвернувшаяся книга определит судьбу и моего ребёнка. Думаю, это будет неплохо.

#дети
​​Познакомился с бесплатной системой управления бизнес процессами ELMA Community Edition. Хочу поделиться своими впечатлениями от неё. Подобный класс софта сейчас популярен и нужен практически любой компании. При этом не так просто его выбрать, сравнить, внедрить. Требуется потратить значительное количество времени, прежде чем станет понятно, подходит вам тот или иной продукт.

Я лично работал со многими подобными программами - 1С Документооборот, Битрикс24, Wrike, YouGile, Onlyoffice Workspace. ELMA CE полностью бесплатна без каких-либо условий и ограничений. По сути это реклама остальных продуктов компании с более широким функционалом. А там есть из чего выбирать. Компании ЭЛМА давно на рынке систем управления бизнес-процессами.

ELMA CE представляет из себя приложение под Windows. Работает на базе стека IIS, Asp, .Net Framework, БД PostgreSQL или MS SQL. Устанавливается через типовой установщик Windows. Каких-то сложностей с этим процессом нет. Единственное, лучше все компоненты, кроме PostgreSQL самостоятельно установить заранее. Ресурсов много не надо. Я запустил на виртуалке с 2 ядрами и 4 Гб памяти.

Работа с системой осуществляется через браузер, то есть это обычное веб приложение. Внешний вид пользовательского интерфейса простой, понятный, лаконичный. Мне понравился. С помощью бесплатной версии можно получить следующий функционал:
настройка и использование бизнес процессов, которые можно создавать в наглядном редакторе;
управление проектами, контрагентами;
календарь, события, задачи, то есть личный или командный органайзер;
база знаний, в программе раздел называется "справочник";
хранилище документов, общий доступ к ним, связывание с бизнес-процессами.

В общем и целом функционал для бесплатной версии более чем. Редактор процессов немного напомнил аналогичный в 1С документооборот. Возможности редактора большие. Это не просто система с каким-то последовательными действиями и стрелочками. Бизнес-процесс можно описать довольно сложно, с разными шагами, реакциями на те или иные действия, с отправкой уведомлений, с матрицей ответственности, подпроцессами и т.д. С пол тычка в системе не разобраться, придётся погружаться.

Могу точно сказать, что ELMA CE понравилась намного больше, чем тот же бесплатный Битрикс24, весьма популярный в народе. Часто с ним сталкиваюсь. Функционала по управлению процессами, подобно ELMA CE в других бесплатных системах не встречал. Тут может быть внешний вид не такой удобный и современный, как в Onlyoffice Workspace или Wrike, но возможностей по настройке процессов в них вообще нет.

В целом, система неплохая. Рассмотреть точно стоит, если подбираете что-то подобное. К тому же сделать это очень просто. Никаких проблем с установкой и запуском в работу нет. Софт российский, есть в реестре ПО.

Сайт / Реестр ПО / Подробный Обзор / Полное описание возможностей

#управление_проектами #crm #отечественное
​​Время от времени читаю англоязычные ресурсы про профильным темам. На днях обратил внимание на информацию об Alpaquita Linux. Эта ОС используется в контейнерах для запуска Java приложений. Основной акцент сделан на минимальном размере и максимальной производительности.

Мне приходится иногда запускать Java приложения, поэтому материал заинтересовал. После того, как Oracle убрала из свободного доступа свою среду запуска Java, на этом поприще развелось много новых продуктов. Стал читать информацию по поводу Alpaquita Linux и компании BellSoft, которая её разработала.

Оказалось, что это международная компания, родом из России. У них тут офис, они официально работают в РФ. Софт есть в реестре отечественного ПО (в РФ под брендом Axiom JDK). Их разработка Liberica JDK пользуется мировой популярностью. Компания входит в топ-5 активных дистрибьюторов в апстрим OpenJDK.

Не буду занимать ваше время дальнейшим описанием. Перейду сразу к сути. Если вам надо запустить Java приложение, то сделать это через Docker максимально просто, удобно, быстро. Можете использовать официальные контейнеры с Liberica JDK (1M+ загрузок с dockerhub). Покажу на примере недавно упомянутого Youtrack. Он написан на Java и запустить с помощью Liberica JDK можно вот так:

# docker run -it --rm -v ~/youtrack/:/data \
-p 8080:8080 bellsoft/liberica-openjre-alpine \
java -jar /data/youtrack-2022.2.59587.jar

❗️Это только одноразовый пример запуска jar файла. Youtrack так запускать не надо, у него есть свой Docker контейнер. Я просто проверил работу liberica на его примере, так как был под рукой. Запускал его на днях.

Сайт com / Сайт ru / DockerHub / Реестр ПО

#docker #java #отечественное
​​Рассказываю про ещё один замечательный продукт Jetbrains, с которым знаком лично - Teamcity. Как и Youtrack, он имеет бесплатную версию с ограничениями, которые позволят небольшой команде полноценно пользоваться бесплатной версией. Серверную часть можно будет настроить на своём железе.

TeamCity это прямой аналог Jenkins и Gitlab. Я впервые с ним познакомился много лет назад, когда ещё ни навыков, ни теории по CI/CD у меня не было. Знакомые разработчики, с которыми сотрудничал, поставили у себя и попросили им помочь настроить деплой некоторых проектов, работающих в Docker.

На удивление, мне не составило большого труда в течении одного дня разобраться и сделать несколько простых пайплайнов. Потом уже их дорабатывали по мере развития проектов.

TeamCity очень дружественен к пользователям. У него меньше функционала по сравнению с Gitlab, но и разобраться с ним в разы проще. Даже если у вас сейчас настроены какие-то костыли на скриптах, то попробуйте для начала их перенести в TeamCity как есть. Там можно прям в шагах ходить по ssh на сервера и что-то делать. Потом уже вникая в нюансы и возможности, потихоньку будете переделывать на нормальный вариант.

▶️ Свежее видео на английском по установке Teamcity, подключению к репозиторию, созданию сборки, подключению агента и запуска сборки:
https://www.youtube.com/watch?v=zqi4fDF-S60

Если хотите въехать побыстрее в тему CI/CD, то самостоятельно начать с Teamcity нормальный ход. Я позже проходил обучение по Gitlab. Субъективно могу сказать, что с него стартануть сложнее. Он более замороченный, но, конечно, изучать его тоже необходимо.

Сайт

#cicd #devops
​​Хочу напомнить, что у меня есть подборка open source программ для группового хранения паролей. Писал её довольно давно, так что многие могли не видеть. Решил освежить тему и добавить кое-что новое.

Обзоры можно посмотреть по тэгу #password. Вот список программ, про которые писал:

Bitwarden
TeamPass
Syspass
Passbolt
Psono
KeePassXC

По моим представлениям, самым популярным решением в этой области является Bitwarden. Многие ругают Bitwarden за то, что он тяжёлый и медленный, поэтому появился более легковесный форк, написанный на Rust - Vaultwarden. Раньше он назывался Bitwarden_RS, но авторы переименовались, чтобы не было путаницы, так как Vaultwarden напрямую с Bitwarden никак не связан.

Vaultwarden полностью копирует серверное API Bitwarden, так что все стандартные клиенты без проблем могут с ним работать. То есть это полная копия исходного сервера, которая требует меньше ресурсов для работы, и даёт более низкий отклик серверной части.

Поставить и попробовать проще всего через Docker:
# docker run -d --name vaultwarden -v /vw-data/:/data/ \
-p 80:80 vaultwarden/server:latest

Сервис без проблем прячется за обратный proxy, что может быть полезно с точки зрения безопасности и удобства управления доступом. В репозитории есть примеры настройки работы в таком режиме под все популярные веб серверы.

Если есть желание, можно собрать и поставить без Docker, но придётся немного повозиться. Нужно будет поставить Mysql или Postgresql, Rust, и собрать всё это в Cargo. Потом подготовить конфиг, написать unit для systemd. Так себе затея. В данном случае с докером гораздо проще и быстрее.

Исходники / DockerHub

#password
​​Решил написать небольшую шпаргалку по работе в консоли с PostgreSQL. Последнее время всё чаще и чаще приходится иметь с ней дело по двум причинам:
1️⃣ Все новые установки Zabbix Server делаю на postgresql.
2️⃣ Намного чаще стали использовать postgresql в связке с 1С.

PostgreSQL создаёт отдельного пользователя Linux postgres, так что все команды буду делать с указанием этого пользователя. Я обычно работаю так, хотя никто не мешает сразу авторизоваться под ним и запускать команды напрямую. Второй момент - в зависимости от дистрибутива и пакета установки, бинарники postgresql могут находиться в разных местах и не всегда переменная path будет применена. Так что может понадобиться полный путь к исполняемому файлу (pg_dump, psql и т.д.).

📌 Просмотр списка баз:
# sudo -u postgres psql -U postgres -l

📌 Создание текстового дампа базы данных:
# sudo -u postgres pg_dump -U postgres basa01 \
> ~/basa01.sql

📌 Сжимаем дамп на лету с помощью pigz (умеет жать всеми ядрами):
# sudo -u postgres pg_dump -U postgres basa01 \
| pigz > ~/basa01.sql.gz

📌 Восстановление базы данных в новую базу (сначала создаём её):
# sudo -u postgres createdb -U postgres \
-T template0 basa02
# sudo -u postgres psql -U postgres basa02 \
< ~/basa01.sql

Для автоматических бэкапов могу порекомендовать бесплатную программу SQLBackupAndFTP.

📌 Выход из консоли psql (часто забываю):
$ \q

📌 Создать пользователя:
# sudo -u postgres createuser -U postgres zabbix
Задать пароль:
# sudo -u postgres psql -U postgres -c \
"ALTER USER zabbix PASSWORD 'secpasswd'"

📌 Посмотреть список пользователей:
# sudo -u postgres psql -U postgres -c \
"select * from pg_user"

📌 Дать полные права на базу:
# sudo -u postgres psql -U postgres -c \
"GRANT ALL PRIVILEGES ON DATABASE zabbixdb to zabbix"

📌 Назначить пользователя владельцем базы:
# sudo -u postgres psql -U postgres -c \
"ALTER DATABASE zabbixdb OWNER TO zabbix"

📌 Выполнить очистку (-f) и анализ (-z) базы данных Postgres Pro:
# sudo -u postgres vacuumdb -U postgres -f -z -d basa01

📌 Переиндексировать базу:
# sudo -u postgres reindexdb -U postgres -d basa01

📌 Удалить базу данных:
# sudo -u postgres psql -U postgres -c \
"DROP DATABASE basa01"

#postgresql #bash
​​Для пользователей Windows могу посоветовать удобную программу для подключения различных облачных дисков, а так же серверов по ftp или sftp. Речь идёт о RaiDrive. Это платная программа с ограниченной бесплатной версией. В бесплатной версии некоторые диски можно подключить только в режиме чтения, а количество этих дисков не может быть более 8.

Я RaiDrive попробовал лично, поэтому могу пояснить, в чём она может быть полезна. В первую очередь быстрым доступом к бэкапам. Например, я часто храню бэкапы где-то на Linux сервере и вторую копию на каком-то дешёвом облачном хранилище, типа Яндекс.Диск. RaiDrive позволяет подключить оба этих хранилища. Они могут отображаться, как обычные диски Windows. В таким виде к ним удобно получить доступ и быстро проверить, что с бэкапами всё в порядке, либо как-то автоматизировать эти проверки.

📌 RaiDrive в бесплатной версии поддерживает следующие виды хранилищ:
Режим записи: Google Drive, OneDrive, Dropbox, Synology, Qnap, Nextcloud, WebDAV, FTP, SFTP и т.д.
Режим чтения: Yandex Disk, Mail.ru, MinIO, AWS S3, Azure, GCP, Alibaba Cloud, и т.д. 

К сожалению, я не смог настроить подключение к S3 совместимым хранилищам не от Amazon и не MinIO. Так и не понял, то ли я что-то делал не так, то ли программа это не позволяет. Я использую S3 от Selectel, а там дублируется доступ по FTP, так что всё равно смог подключить хранилища.

Программа достойная и полезная. Думаю, можно и платную версию взять, если сильно надо. Аналогов я особо и не видел с поддержкой такого количества хранилищ.

Сайт / Обзор

#windows