ServerAdmin.ru
31.6K subscribers
851 photos
57 videos
23 files
3K links
Авторская информация о системном администрировании.

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

Второй канал: @srv_admin_live
Сайт: serveradmin.ru

Ресурс включён в перечень Роскомнадзора
Download Telegram
▶️ Очередная подборка авторских IT роликов, которые я лично посмотрел и посчитал интересными/полезными. Это видео из моих подписок за последнее время (обычно беру период в 2 недели), что мне понравились.

Инструкция по запуску нейросети на своем сервере vLLM
Пошаговая инструкция по запуску и настройке нейросети на арендованном сервере с двумя видеокартами. Автор начинает с заказа сервера и дальше показывает все этапы настройки: подключение по SSH, установка Docker и запуск с нужными параметрами и т.д. Очень наглядно и познавательно.

Настройка Angie в роли обратного HTTP-прокси
Балансировка нагрузки для HTTP(S) в Angie
Подробные видео с примерами по настройке Angie для проксирования запросов через proxy_pass на один или несколько бэкендов. Настройка похожа на Nginx, но у Angie есть некоторая дополнительная функциональность.

Forgejo: An Alternative to Gitea, A Fork of a Popular Forge Platform
Подробный обзор бесплатной системы для хранения кода в git репозиториях. Это аналог таких продуктов, как Github, Gitlab, Gitea и т.д. Раньше о ней только мельком слышал. Это форк Gitea, который пошёл своим путём.

Ставим k8s-talos через terraform в proxmox
Подробное руководство по установке кластера Talos через Terraform в Proxmox для запуска Kubernetes.

Обновление с Proxmox VE 8 до Proxmox VE 9: пошаговое руководство
Обновление PVE в режиме реального времени на рабочем хосте автора. Там всё стандартно, ничего нового по обновлению не появилось.

Stop Port Forwarding! Secure Home Lab Access with Modern Tools
Автор призывает прекратить пробрасывать порты, а вместо этого использовать софт для построения vpn сетей. Он сделал краткий обзор на Twingate, Tailscale, Wireguard и WG-Easy для него, Cloudflare tunnel.

Authelia vs Authentik vs Keycloak vs Zitadel Как выбрать SSO для своих сервисов
Краткое сравнение Authelia, Authentik, Keycloak, Zitadel.

🎓 Протокол TCP: управление перегрузкой | Компьютерные сети 2025 - 35
🎓 Интерфейс сокетов | Компьютерные сети 2025 - 36
Очередные обновлённые уроки хорошего курса по сетям от Созыкина Андрея.

Dockpeek: A Docker Port Dashboard for Your Homelab
Обзор очередной панельки для управления Docker контейнерами. Их много разных. Эта меня не особо впечатлила. Из плюсов отмечу легковесность и наглядный список занимаемых контейнерами портов на хосте. Посмотрите, может вам понравится.

#видео
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍53👎2
Копилку моей субботней рубрики с играми и материалами для обучения пополнит очередная обучающая игра, про которую я раньше не слышал. Это консольная игра GameShell, которая учит основам консольных команд Linux.

Играть в GameShell можно в любом терминале ОС на базе Linux. В Debian или Ubuntu её можно установить так:

$ sudo apt install gettext man-db procps psmisc nano tree ncal x11-apps wget
$ wget https://github.com/phyver/GameShell/releases/download/latest/gameshell.sh
$ bash gameshell.sh

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

Игра построена в виде заданий, в которых вам нужно использовать различные консольные утилиты. Для игры достаточно запомнить несколько команд:

$ gsh help - посмотреть список команд для управления игровым процессом
$ gsh goal - прочитать задание миссии
$ gsh check - проверить выполненное задание

Всё остальное не так важно. Миссии, как это обычно бывает, развиваются от более простых к сложным. Сначала будете изучать команды cd, mkdir, rm, mv и т.д. Потом пойдут команды с пайпами: head, tail, cat и т.д. Потом права доступа, поиск и некоторые другие вещи.

В игре даётся база. Если вы знакомы с консолью Linux, то играть большого смысла нет. Если постоянно с ней работаете, то всё это скорее всего знаете. Но может что-то и почерпнёте для себя.

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

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

#игра #обучение #дети
👍92👎4
Вчера обновился мониторинг, который я давно использую – Gatus. Основное нововведение – новый веб интерфейс. Решил сразу попробовать, благо сделать это очень просто, так как весь мониторинг – это одиночный бинарник и конфигурационный файл к нему.

Лично мне история этого мониторинга не нужна, поэтому я обновил очень просто:

# docker stop gatus
# docker rm gatus
# docker pull twinproduction/gatus:v5.23.0
# docker run -p 8080:8080 -d --mount type=bind,source="$(pwd)"/config.yaml,target=/config/config.yaml --name gatus twinproduction/gatus:v5.23.0

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

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

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

▪️Основные возможности и настройка Gatus
▪️Обновление конфигурации Gatus через gitlab-runner и git push в репозиторий

У меня редактирование мониторинга выглядит так. Открываю VS Code, правлю локальный конфигурационный файл, делаю commit и синхронизацию с репозиторием в Gitlab через расширение GitLab Workflow. Код улетает в репозиторий, там в .gitlab-ci.yml прописан перезапуск контейнера на VPS, где запущен Gatus и runner. Получается очень просто и удобно. Историю я вообще не храню, мне она тут не нужна, поэтому ничего не бэкаплю, кроме самого репозитория с конфигурацией.

В старых публикациях можно посмотреть скриншоты и сравнить с обновлёнными интерфейсом, который на картинке ниже.

Кстати, об обновлении сразу узнал от сервиса newreleases.io, которым я активно пользуюсь. Очень удобно, рекомендую.

🌐 Сайт / Исходники

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

#мониторинг #gatus
2👍96👎4
На прошлой неделе читал статью про ansible-cmdb. Понравился инструмент. Раньше про него не слышал. Он довольно просто устроен, особенно для тех, кто знает и регулярно использует Ansible в инфраструктуре. Собственно, ansible-cmdb работает на базе Ansible.

Поясню, для тех, кто не в курсе и не работает с Ansible. У неё есть список хостов, куда она имеет доступ по SSH. Соответственно, с помощью Ansible можно ходить по хостам, что-то там делать, собирать информацию. Ansible-cmdb использует вывод модуля setup, который заходит на хосты и собирает о них информацию в так называемые ansible_facts. A ansible-cmdb берёт эту информацию и оформляет в наглядную html страницу.

Как я уже сказал, если вы уже используете Ansible, вам ничего пояснять и настраивать не надо. Просто берёте файл с инвентарём, проходите по нему модулем setup и строите отчёт примерно так:

# mkdir out
# ansible -m setup --tree out/ all
# ansible-cmdb out/ > overview.html

Теперь расскажу, как собрать информацию о хостах для тех, кто вообще не знаком и не настраивал Ansible. Я не буду рассказывать, как с ней работать, а просто по шагам покажу, как вам собрать информацию со своих хостов, даже если вы не хотите изучать и далее использовать Ansible. Хотя, разумеется, современному админу или девопсу крайне желательно уметь с ней работать.

Настраивать всё буду в Debian 12. Рекомендую использовать для этого отдельную виртуалку или контейнер. Ставим необходимые пакеты:

# apt install python3-pip ansible

У ansible-cmdb есть собранный deb пакет. Я изначально использовал его. Но так и не смог заставить работать. Я не знаю, что там за версия python нужна, но у меня постоянно были какие-то ошибки в коде. Залез в репозиторий, в Issues, увидел там похожие ошибки и решение в виде установки через pip, а не из пакета.

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

# pip install ansible-cmdb --break-system-packages
# ln -s /usr/bin/python3 /usr/bin/python

Теперь нам нужно подготовить конфигурацию ansible. Добавляю минимальную конфигурацию в файл ~/.ansible/ansible.cfg

[defaults]
home = ~/.ansible/
inventory = ~/.ansible/inventory.yaml
remote_user = root
gather_facts = True
private_key_file = ~/.ssh/id_ed25519
host_key_checking = False

И создаю так называемый инвентарь ~/.ansible/inventory.yaml в терминологии Ansible со списком серверов, для которых будем делать отчёт.

all:
 hosts:
  Debian12-VPS:
   ansible_host: 127.0.0.1
   ansible_port: 22
  Debian12-CT:
   ansible_host: 10.20.1.24
   ansible_port: 22
  Ubuntu24-CT:
   ansible_host: 10.20.1.21
   ansible_port: 22

Передаю в переменную конфигурацию Ansible:

# export ANSIBLE_CONFIG="$HOME/.ansible/ansible.cfg"

Создаю сертификат, по которому буду подключаться к хостам:

# ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -C "$(whoami)@$(hostname)_$(date -I)"

Копирую его на хосты в authorized_keys:

# ssh-copy-id root@127.0.0.1
# ssh-copy-id root@10.20.1.24
# ssh-copy-id root@10.20.1.21

Проверяю, видит ли ansible хосты в инвентаре, всё ли верно настроено:

# ansible -i inventory.yaml all --list-hosts
  Debian12-VPS
  Debian12-CT
  Ubuntu24-CT

Всё в порядке, собираем факты:

# mkdir ~/.ansible/out
# ansible -m setup --tree ~/.ansible/out all

Если всё в порядке, и в директории появились текстовые файлы с информацией о хостах, то строим по ним html страничку:

# ansible-cmdb ~/.ansible/out > overview.html

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

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

#linux #ansible
2👍151👎3
Вчера решил обновить один из серверов Zabbix до свежей версии 7.4. Выбор пал на сервер версии 7.0, установленный на Oracle Linux Server 8.10. Остался с давних времён. Работает нормально, обновляется, так что я особо не тревожу его.

Обновление прошло предсказуемо, но не могу сказать, что очень просто. Конкретно я все вопросы быстро порешал, но затруднения возникли.

1️⃣ Изменился путь для веб интерфейса. Вместо /usr/share/zabbix он теперь /usr/share/zabbix/ui. Надо поменять в настройках виртуального хоста. Если этого не сделать, то увидите ошибку с инструкцией по исправлению, вместо веб интерфейса.

2️⃣ Изменилась поддерживаемая версия php с 8.0 до 8.2. В зависимости от ваших настроек и пакетов на сервере, переход на другую версию php может сопровождаться какими-то своими ошибками. У меня были пару проблем с зависимостями пакетов. Не стал особо вникать. Сделал снепшот виртуалки, удалил все проблемные пакеты и установил версии 8.2. На удивление, всё прошло успешно и больше ничего делать не пришлось.

Меня часто спрашивают, буду ли я писать статью по обновлению Zabbix Server. Я иногда делаю такие публикации, но не очень люблю именно эту тематику из-за того, что Zabbix может быть развёрнут на очень разном окружении. Это могут быть разные систем на базе Linux, разные СУБД (MySQL или PostgreSQL), разные веб сервера (Nginx + Php-Fpm или Apache + Mod_PHP). Трудно всё это учесть.

Сам сервер Zabbix обычно обновляется без проблем. Проблемы чаще всего возникают с фронтендом. Он то не обновится, то версия php не та, то настройки веб сервера слетели и т.д. Тут инструкция не поможет, надо по месту разбираться.

В общем случае обновление Zabbix выглядит очень просто. Отключаете старый репозиторий, останавливаете сервер, подключаете репозиторий с новой версией и обновляете пакеты от Zabbix. И всё. В этот раз у меня именно так и прошло обновление и кроме описанных выше двух ошибок, всё прошло штатно. Обновился с 7.0.17 до 7.4.1.

Обновился я в первую очередь для того, чтобы посмотреть на новый мастер добавления хостов. Выглядит очень удобно, особенно тем, что можно сразу получить ссылку для быстрой установки преднастроенного пакета с zabbix-agent. Не надо самому подключать репозиторий под нужную систему, устанавливать пакет и править конфигурацию агента. Адрес сервера и имя хоста можно передать сразу во время установки агента.

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

☝️ Оказывается, шаблоны должны быть совместимы с мастером. Не знаю, зачем так сделали. Хорошо хоть, что все их объединили в 5 наборов, которые можно разом установить. Качаются вот тут по ссылкам. После того, как их импортировал, наконец-то заработал мастер. Я смог выбрать шаблоны.

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

Я из-за этого не люблю автоматом обновлять шаблоны. Напомню, что Zabbix Server после обновления сам шаблоны не обновляет. Это надо делать вручную. С одной стороны это хлопотно, но с другой страхует от лишней работы и проблем. Можно обновить сервер, но не трогать шаблоны, если тебе не нужны обновлённые версии. Старые без проблем работают. Я некоторые очень редко обновляю, потому что и так устраивают. Я не из тех, кто считает, что чем больше метрик, тем лучше. В них обычно потом никому не хочется разбираться. Лучше меньше и только те, что реально нужны.

Забыл добавить, что интеграция с Grafana не слетела после обновления с 7.0 до 7.4. Я ничего не трогал в самой Графане.

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

#zabbix
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍117👎3
Вспомнилось одно старенькое видео на тему общения заказчика и исполнителя IT услуг. Причём вспомнилось не в контексте IT, а стройки. Тут всё то же самое, но только в разы запущеннее и сложнее. Когда окунулся в роли заказчика всей этой движухи, просто офигел от сложностей, халтуры, контроля за исполнением и т.д.

В IT на мой взгляд попроще. Там хоть крыша на голову не упадёт в прямом смысле слова. Я у себя в доме крышу переделывал полностью. Нужно было нарастить прочность стропильной системы. А для этого надо было всё разобрать, добавить стропил и снова собрать. Иначе крыша реально могла бы рухнуть. Первоначальные строители, как оказалось, были никакими. Как и я в роли заказчика. Крышу, к слову, потом пришлось частично разобрать ещё раз изнутри, чтобы исправить ошибки утепления. И это после чистовой отделки.

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

Возвращаюсь к видео. Это ролик коллектива MЁD, который одно время выпускал прикольные скетчи. Мне больше всего понравился упомянутый ниже, так как близка тема. Я одно время очень активно фрилансил и постоянно вёл общение с заказчиками.

▶️ Неадекватные заказчики

Особенно вот это актуально. Я довольно быстро стал называть стоимость выше рынка, так как мог себе такое позволить:

- В соседней конторе в два раза дешевле!
- Так закажите у них.
- Они некачественно делают.

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

- Это займет где-то месяц, полтора.
- А экстренно за неделю сможете сделать?
- Если очень постараться, но это будет стоить в 2 раза дороже.
- А чё дороже то? Вы же меньше времени тратите!

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

В IT всё то же самое. Сэкономишь, потом будешь переделывать, зачастую полностью. Сколько раз такое видел. Один раз заказчику вообще пришлось полностью бросить проект, сменить команду и писать с нуля с новыми программистами, которым платили в 2 раза больше. Предыдущие просто не могли закончить проект хоть на каком-то приемлемом уровне. По факту потратили кучу лишних денег и времени.

#юмор
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍83👎3
На днях поступил вопрос на тему освоения мониторинга Zabbix. С чего начать, какие материалы изучить. Я неплохо и давно знаю Zabbix, плюс сам учил его с нуля, так что мне есть что посоветовать. То, что я опишу ниже, подойдёт для любого нового продукта, который вы захотите изучать.

Я бы начал с того, что просто развернул систему и попробовал начать ею пользоваться. Для этого хватит любой тематической статьи в интернете, документации или обзорного видео. Для Zabbix их существует в избытке. Он не так сильно меняется от релиза к релизу в плане начальной установки и настройки, так что подойдут любые материалы за последние 2-3 года.

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

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

Для старта хватит и бесплатных курсов. Вот пример некоторых из них со Степика:

▪️Демо курс Zabbix 6. Мониторинг IT инфраструктуры предприятия
Это бесплатный урок от большого платного курса про Zabbix. В демо курсе разбирается установка и настройка сервера, плюс подключение к нему различных агентов. То есть как раз база для новичка. Если курс понравится, а Zabbix в итоге зайдёт и будет внедряться, можно купить полный курс.

▪️Zabbix - система мониторинга статусов
Немного сумбурный курс с упором на сбор метрик по SNMP, но для бесплатного ознакомления сойдёт. Особенно, если у вас много сетевых устройств, которые как раз по SNMP и мониторятся.

▪️Monitoring IT (базовый)
Небольшой обзорный курс по различным системам мониторинга. Разобраны самые популярные и функциональные продукты: Zabbix, Prometheus, Nagios/Icinga, VictoriaMetrics. Имеет смысл ознакомиться, если у вас вообще нет системы мониторинга и вы не знаете с чего начать и что внедрять.

По Zabbix есть очень хорошая книга на русском языке:
📔 Zabbix 7: мониторинг ИТ-инфраструктуры
Она довольно дорогая для книги (~3000р). Мне в своё время предлагали её бесплатно, чтобы я прочитал и сделал обзор. Отказался, так как нет столько времени, чтобы изучать книгу, когда особой надобности в этом нет. Но если бы было нужно, купил бы, несмотря на то, что можно скачать бесплатно. Если все будут качать бесплатно, то никто книги писать и переводить не будет. У любимых авторов всегда покупаю бумажные книги, хоть и читаю электронные. Но они, к сожалению, не приносят авторам денег. Зарабатывают они только с бумаги.

Я лично изучил Zabbix полностью самостоятельно. Просто внедрил и начал пользоваться каждый день. Старался всё, что нужно мониторить, заводить в Zabbix. В итоге довольно быстро всё освоил. Главное не лениться и постоянно изучать что-то новое.

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

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

#обучение
7👍156👎4
Коротенькая, но мне кажется полезная заметка на тему одного небольшого сервиса, который поможет тем, кто пишет свои bash скрипты. Речь пойдёт вот про этот сервис:

https://www.strfti.me

С его помощью можно быстро подобрать формат даты для консольной утилиты date. Я её почти всегда использую в скриптах, чтобы зафиксировать дату, например, в имени файла или директории. Даже если на канале пройтись по моим скриптам, в каждом втором, если не первом она будет.

Например, почти всегда для имени файла с бэкапом использую конструкцию date +"%Y-%m-%d_%H-%M-%S", что запишет дату в виде 2025-08-24_17-52-06. Удобно и для быстрой сортировки по имени, и для визуального восприятия. Если кто-то не понял, о чём идёт речь, то вот простой пример готовой команды с использованием date:

/usr/bin/pg_dump -U postgres db01 | pigz > /var/lib/pgpro/backup/`date +"%Y-%m-%d_%H-%M"`-db01.sql.gz

Получим файл с дампом базы данных 2025-08-24_17-52-06-db01.sql.gz.

Я подобные вещи проверяю сразу в консоли, а наиболее популярные форматы у меня просто в шпаргалке записаны. На сайте можно быстро получить код для любого формата и там же описание всех параметров, чтобы подобрать свой. Быстро и удобно. Быстрее, чем где-то искать или читать man.

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

#bash #terminal
1👍148👎2
Я привык для установки python приложений использовать либо пакетный менеджер системы apt, либо пакетный менеджер самого python – pip. Это устаревший подход, который имеет много недостатков. Через пакетный менеджер обычно доступны только наиболее популярные приложения. Их список ограничен. А через pip напрямую ставить неудобно, так как это ломает совместимость с приложениями, установленными через apt. Если уж хочется использовать pip, то надо запускать его в изолированном окружении, что тоже создаёт некоторые неудобства в дальнейшем использовании приложений.

Решил разобраться с этой темой. В настоящий момент в deb системах, в частности, Debian и Ubuntu, для установки python приложений лучше использовать pipx. Он позволяет автоматически устанавливать приложения в изолированном окружении, которые вызываются нативно из командной строки, но при этом не конфликтуют с системными пакетами. Сам pipx живёт в базовом репозитории:

# apt install pipx
# pipx ensurepath
# source ~/.profile

Далее его можно использовать для установки приложений. Покажу на недавнем примере с ansible-cmdb. Он получится показательным для раскрытия темы. Его можно поставить через pipx:

# pipx install ansible-cmdb

Но работать установленный таким образом ansible-cmdb не будет. Это связано с тем, что собранный пакет очень старый и не умеет работать в виртуальном окружении, которое создаёт pipx. Последний создаёт символьные ссылки с именем приложения, а сами приложения размещает отдельно в виртуальном окружении. А ansible-cmdb ищет свои ресурсы по жёстко привязанным путям к тому месту, откуда его запустили. С современным приложениями такой проблемы не будет.

В связи с этим нам понадобится ещё одно приложение для работы с пакетами и виртуальными окружениями python – uv. Он, как и pipx, работает в изолированном окружении и не пересекается с системными пакетами. Если pipx используют для установки готовых приложений, то uv для установки зависимостей и создания виртуальных окружений.

Сам uv ставим через pipx:

# pipx install uv

Пример установки зависимостей через uv:

# uv pip install -r requirements.txt

А теперь возвращаемся к ansible-cmdb и запускаем его в виртуальном окружении через uv:

# uv venv .venv
# source .venv/bin/activate
# uv pip install ansible-cmdb

Проверяем:

# ansible-cmdb --help

Теперь ansible-cmdb будет нормально работать напрямую из консоли. Принципиальной разницы в эксплуатации не будет с тем, что я предложил в своей заметке через:

# pip install ansible-cmdb --break-system-packages

Если это всё используется в отдельной виртуалке или контейнере. Но в целом правильно запускать именно так, как я описал в текущей заметке. Это не будет ломать совместимость с системными пакетами и другими python приложениями.

📌 Резюмирую:
◽️pipx используем для установки современных python приложений;
◽️uv для установки зависимостей, библиотек и создания виртуальных окружений в том числе для запуска старых приложений.

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

#debian #python
2👍181👎9
📊 Делал недавно опрос на тему использования гипервизоров и чуть не забыл подвести итоги. Вопрос звучал так:

Какую систему виртуализации вы используете в рабочих системах?

Понятно, что тут можно придраться к формулировке и вариантам ответов. И были те, кто обоснованно это сделал. Есть чисто гипервизоры, есть системы виртуализации, есть платформы на базе систем виртуализации, а я всё это смешал в одном опросе. Я просто взял наиболее употребимые названия, чтобы получить наглядную картинку.

К примеру, VMware ESXi – это гипервизор, а платформа виртуализации на его основе – VMware vSphere. Для точности формулировок нужно было бы отдельно гипервизоры сравнивать, отдельно платформы. Но тогда пришлось бы сравнивать VMware ESXi с KVM, а мне хотелось увидеть результаты по Proxmox и другим платформам на базе KVM, а не чистом KVM. На его основе много платформ, а на базе VMware ESXi только одна. Поэтому сделал, как сделал. Результаты такие:

Telegram (доступно 12 вариантов ответов):
◽️Proxmox — 54%
◽️VMware ESXi — 39%
◽️Hyper-V — 28%
◽️Другую иностранную на базе QEMU-KVM — 6%
◽️Другую на базе отечественной системы — 3%
◽️zVirt — 3%
◽️OpenStack — 3%
◽️Альт Сервер Виртуализация — 2%
◽️РЕД Виртуализация — 1%
◽️Другую на базе Xen — 1%
◽️ПК СВ «Брест» — 1%
◽️OpenNebula — 0%

VK (доступно 10 вариантов ответов):
◽️Proxmox — 46%
◽️VMware ESXi — 38%
◽️Hyper-V — 33%
◽️Другую на базе отечественной системы — 7%
◽️Другую иностранную на базе QEMU-KVM — 5%
◽️Альт Сервер Виртуализация — 4%
◽️OpenStack — 3%
◽️Другую на базе Xen — 2%
◽️ПК СВ «Брест» — 1%
◽️OpenNebula — 1%

По тройке лидеров всё ожидаемо. Я плюс-минус такое распределение и представлял. Предполагал, что Proxmox будет в лидерах, потом ESXi и за ним Hyper-V. Лет 5 назад в этой тройке, думаю, что Proxmox был бы замыкающим, а ESXi в лидерах.

Думал, что у ПК СВ «Брест» будет побольше %%. Всё же его много где принудительно внедряют, а доля Астры, судя по прошлым опросам обычных систем, велика. Ожидал, что прицепом потянет за собой остальные продукты, но видимо нет. Либо тут совсем неподходящая аудитория под эту систему.

А в целом, судя по опросу, с импортозамещением виртуализации процесс идёт очень медленно. Доля российских продуктов в районе 10%. И то, это относительная цифра, потому что доступны несколько вариантов ответов.

#опрос
2👍97👎2
За время ведения канала накопилось некоторое количество сервисов, которые будут полезны тем, кто всё ещё сам пишет bash скрипты. Остались такие уникумы или все делегировали эту рутину ИИ?

Решил собрать эти сервисы в подборку. Сам уже и не помню, когда что-то новое писал. Всё уже давно написано и сохранено в git. Вроде стремительно развиваются (или это только кажется?) технологии, но вся скриптовая база одна и та же: проверить, перезапустить, скопировать, грепнуть, отправить в мониторинг, записать в лог и т.д.

🔥ShellCheck – проверка синтаксиса shell скриптов
◽️Explainshell – наглядное объяснение сложных и составных консольных команд
◽️Cmdgenerator – помощник по выбору ключей к популярным консольным утилитам
◽️Конструктор команд для linux утилиты find
◽️Проверка различных форматов даты и времени в утилиты date

Отдельно обращаю внимание на сервис ShellCheck. Стараюсь проверять им свои скрипты, если не забываю. Чаще всего даёт рекомендации по делу, которые имеет смысл принять к сведению.

Explainshell пришёл к нам из давних времён, когда ещё не было ИИ. То есть там под капотом не ИИ, а обработанные man страницы используемых утилит. Хотя стоит признать, что ИИ конкретно эти задачи решает неплохо, так как в основе лежит точная справочная информация. Тем не менее, man никто не отменял, особенно, когда нужно строгое описание.

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

#bash #подборка
4👍132👎3
Вспомнил про одну необычную утилиту из мира консоли Linux. Сначала даже не был уверен, что не писал о ней ранее. Оказалось, что реально не писал, только пару упоминаний мельком сделал. Речь пойдёт о faketime. Вспомнил, когда скрипты пересматривал к утренней публикации. Искал что-то для примера в прикреплённой картинке.

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

# apt install faketime

Приложение скомпилировано на базе библиотеки libfaketime. Оно перехватывает системные вызовы для приложения и заменяет в них время на указанное. Работает примерно так:

# faketime '2025-12-31 23:59:59' date
Wed Dec 31 23:59:59 MSK 2025

Передали утилите date указанное время, и она его вывела.

Я чаще всего утилиту использую, когда с помощью find удаляю что-то по меткам времени. Удобно запустить через faketime без удаления, просто чтобы проверить, как отработает поиск. Вообще всё, что связано с удалением, предварительно проверяю и только потом ставлю на исполнение. Иногда в скриптах комментирую строки с удалением, чтобы дождаться полного наполнения данными, чтобы потом прийти, вручную всё отладить и только потом включить ключ с удалением. Иначе рано или поздно из-за ошибки или невнимательности можно наделать дел.

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

# find . -type f -mtime +1

◽️mtime – время последнего изменения файла
◽️+1 - n*24 часа, в данном случае n=1, то есть 24 часа

Это информация из man find. Ты ожидаешь, что будут найдены все файлы с датой модификации более суток назад. Проверяем:

# touch filename.tar
# ls -l
-rw-r--r-- 1 root root 0 Aug 28 14:39 filename.tar

# faketime '2025-08-29 14:40:00' find . -type f -mtime +1

Создали файл 28 августа в 14:39, а в 29 августа в 14:40 ничего не находит, хотя мы взяли время более 24 часов вперёд.

# faketime '2025-08-30 14:40:00' find . -type f -mtime +1
./filename.tar

Уехали на 48 часов и 1 минуту вперёд и нашли файл. У find есть особенность, и в данном случае +1 это не 24 часа, а 48. А чтобы было именно 24 часа, надо использовать +0:

# faketime '2025-08-29 14:40:00' find . -type f -mtime +0
./filename.tar

Faketime позволяет проверить работу своих скриптов, заглянув в будущее.

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

#linux #terminal
2👍167👎3
Я неоднократно рассказывал про бесплатную реализацию своего сервера для S3 хранилища на базе MinIO. Это наиболее популярный и чуть ли не единственный массовый сервер для этих задач. Я других таких же простых даже и не знаю. Если для каких-то больших многосерверных систем есть реализации кластера типа Ceph и его Object Gateway, или аналогов, то для одиночного сервера или небольшого кластера я ничего другого ни разу не видел и не слышал. Все ставили по умолчанию MinIO.

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

Последняя версия, где есть полнофункциональный веб интерфейс - от 22 апреля. Скачать и запустить можно так:

# wget -O minio https://dl.min.io/server/minio/release/linux-amd64/archive/minio.RELEASE.2025-04-22T22-12-26Z
# chmod +x minio
# mkdir /mnt/data
# ./minio server /mnt/data

Дальше идём на порт сервера 9000 и всё настраиваем через веб интерфейс, используя учётку minioadmin / minioadmin. Всё максимально быстро и просто. MinIO используется во множестве сборок программных продуктов, где нужна функциональность S3.

В целом, ничего критичного не произошло. Если вы нечасто меняете настройки, то можно и через CLI это делать. Для этого нужно воспользоваться MinIO Console, которая запускается командой mc. Неудобно, так как пересекается с Midnight Commander. Консоль придётся поставить отдельно. По ссылкам есть инструкция для установки.

Какие есть альтернативы новой урезанной версии:

1️⃣ OpenMaxIO - форк урезанного официального веб интерфейса, который теперь называется object-browser. В него вернули все удалённые возможности официального UI. Этот форк сделан энтузиастами и к команде MinIO никакого отношения не имеет.

2️⃣ RustFS - новый альтернативный сервер, аналог MinIO, реализующий ту же функциональность. Проект стартовал в июле, вскоре после новостей MinIO. В настоящий момент доступна только альфа версия, но проект активно развивается. Уже было 48 промежуточных релизов. Пилят, судя по китайскому языку на сайте, китайцы. Я пока не пробовал его, не знаю, что у них получилось. Обещают такую же простоту настройки, но более производительный сервер. Посмотрим. Если кто-то уже пробовал, дайте, пожалуйста, боратную связь.

Дополнительно рекомендую посмотреть интересное выступление на тему кластера MinIO:
Свой распределённый S3 на базе MinIO — практический опыт наступания на грабли / Алексей Плетнёв

#S3
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍94👎2
▶️ Очередная подборка авторских IT роликов, которые я лично посмотрел и посчитал интересными/полезными. Это видео из моих подписок за последнее время (обычно беру период в 2 недели), что мне понравились.

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

Григорий Кошелев — Комбо-факапы, или Эффект бабочки-факапницы
Это видео на тему падений инфраструктур в крупных компаниях с теорией и конкретными примерами. Можно просто послушать на прогулке или в машине. Ничего полезного для себя не вынес, но мне было интересно послушать.

Как установить и настроить Keycloak | Полный гайд для начинающих
Подробная инструкция по настройке популярного и непростого продукта для управления централизованной аутентификацией на базе Keycloak.

Zabbix Handy Tips: Nested Low-Level Discovery
Коротенькое видео с примером вложенного автообнаружения, которое появилось в недавнем релизе Zabbix Server 7.4. Как говорится, вместо тысячи слов лучше один раз увидеть в видео на 3,5 мин.
Zabbix Handy Tips: Bulk Template Import
Ещё одно короткое видео с демонстрацией нововведения в версии 7.4 - массовое добавление или обновление шаблонов. Теперь всё разом можно обновить, а не вручную десятки шаблонов, как раньше.

ITTools - The tools you need for homelab and IT Needs!
Обзор набора утилит из проекта it-tools.tech. Впервые о нём услышал. Полезная штука, о которой стоит сделать отдельную заметку. Чего там только нет. Навскидку, есть всё, что может понадобиться админу или девопсу из такого рода генераторов и конвертеров.

Как устроены proxmox ve helper-scripts? Безопасно ли использовать скрипты помощники?
Если вам интересен этот проект, то можете посмотреть видео. Знаю, что некоторые пользуются. Я лично их не использую. Не вижу для себя в них пользы.

Stop Struggling with Docker Compose – Use These 10 Tricks Instead!
Автор рассказал, как он работает с проектами на Docker Compose и дал несколько советов. В целом, советы базовые, типа структуры каталогов, хранения параметров в .env файлах, метки, проверки и т.д. Если постоянно работает с этим, то скорее всего всё это и так знаете. Если нет - то будет полезно. Всегда интересно посмотреть на опыт другого человека и взять что-то к себе.

Тестирую 19 ЛУЧШИХ нейросетей для программирования в августе 2025.
Я смотрел предыдущие видео автора на эту же тему, так что лично мне уже не интересно и не очень актуально. Но если вы ещё не смотрели, то для общего образования будет полезно посмотреть на что способны современные ИИ и чем они отличаются.

Proxmox Backup Server 4 Upgrade. Обзор. Что нового? Как обновить
Обзор продукта и некоторая информация по обновлению и новой версии. Ничего особенного в видео нет, дана базовая информация. Подойдёт тем, кто не знаком с продуктом и хочет посмотреть на него.

#видео
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍77👎2
🔝 ТОП постов за прошедший месяц. Все самые популярные публикации по месяцам можно почитать со соответствующему хэштэгу #топ. Отдельно можно посмотреть ТОП за прошлые года: 2023 и 2024.

Пользуясь случаем, хочу попросить проголосовать за мой канал, так как это открывает некоторые дополнительные возможности по настройке: https://xn--r1a.website/boost/srv_admin.

📌 Больше всего пересылок:
◽️Синхронизация бэкапов VM между двумя серверами PBS (412)
◽️Мониторинг аутентификаций по SSH с помощью Zabbix (374)
◽️Рекомендации по изучению Zabbix с нуля (349)

📌 Больше всего комментариев:
◽️Результаты опроса на тему гипервизоров (155)
◽️Использование Proxmox Mail Gateway (126)
◽️Рекомендации по изучению Zabbix с нуля (116)

📌 Больше всего реакций:
◽️Синхронизация бэкапов VM между двумя серверами PBS (240)
◽️Современная установка Python приложений в Debian (169)
◽️Восстановление случайно удалённых файлов на примере диска VM (156)

📌 Больше всего просмотров:
◽️ Консольная игра GameShell (11423)
◽️ MX записи у разделегированного домена (10553)
◽️Восстановление случайно удалённых файлов на примере диска VM (10486)

#топ
👍33👎1
🎓 Ну что, отцы, студенты и школьники, если таковые имеются. Поздравляю вас с днём знаний. У меня два школьника сегодня в школу пошли, два ещё на подходе, не доросли. Решил в честь такого знаменательного (дети с этим не согласны) дня сделать подборку с бесплатными обучающими материалами, которые были у меня на канале. Хороший повод всё это систематизировать.

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

📌Базовое администрирование Linux:
▪️Основы GNU/Linux и подготовка к RHCSA — автор в качестве хобби создаёт хорошие курсы для новичков. Причём как в текстовом виде, так и в виде записанных уроков. Качество материала высокое.
▪️Базовое администрирование Linux-серверов — бесплатный курс по основам от Слёрм.
▪️Введение в Linux — большой и масштабный бесплатный курс по Linux на платформе Stepik.
▪️Администрирование Linux — совместный курс в виде лекций на youtube от команды VK Team на базе МФТИ.
▪️Администрирование базового уровня (LPIC-1) — курс на youtube от известного Семаева Кирилла, который к сожалению больше не в состоянии записывать курсы.
▪️Полный курс из 15-ти лекций по администрированию GNU/Linux от преподавателя ИТМО: Администрирование в ОС GNU/Linux.
▪️Learn the ways of Linux-fu, for free — серия хорошо оформленных и структурированных курсов по основам Linux в виде уроков с заданиями, ответы на которые проверяются автоматически.

📌Сети:
▪️Сети для самых маленьких — очень качественный, структурированный материал по сетям от самых основ до более сложных вещей.
▪️Компьютерные сети, Климанов М.М., Компьютерные сети, учебный курс, Созыкин Андрей — база по сетям от преподавателей МФТИ.
▪️Записи курса компьютерных сетей, который читается для студентов третьего года обучения программы «Прикладная математика и информатика» факультета ИТиП университета ИТМО в шестом семестре. Лектор: Сергей Мельников [s6 | 2023] Компьютерные сети, ✍️ Конспект лекций.
▪️Лекции Артема Береснева по курсу Компьютерные сети в университете ИТМО.
▪️Основы документирования сетей — серия уроков на youtube по документированию сетей.

📌Базы данных:
▪️Бесплатные курсы по СУБД PostgreSQL от компании Postgres Professional. Очень качественный материал.
▪️Введение в базы данных — бесплатный курс на Stepik.
▪️Интерактивный тренажер по SQL — тоже курс на Stepik.
▪️Основы SQL – курс от Созыкина Андрея.
▪️Бесплатные курсы от Selectel: PostgreSQL для новичков и MySQL для новичков.

📌Zabbix:
▪️Демо курс Zabbix 6. Мониторинг IT инфраструктуры предприятия — бесплатный урок от большого платного курса про Zabbix. В демо курсе разбирается установка и настройка сервера, плюс подключение к нему различных агентов.
▪️Zabbix - система мониторинга статусов — немного сумбурный курс с упором на сбор метрик по SNMP, но для бесплатного ознакомления сойдёт. Особенно, если у вас много сетевых устройств, которые как раз по SNMP и мониторятся.
▪️Monitoring IT (базовый) — Небольшой обзорный курс по различным системам мониторинга. Разобраны самые популярные и функциональные продукты: Zabbix, Prometheus, Nagios/Icinga, VictoriaMetrics.
▪️Текстовый курс по Zabbix от практикующего специалиста и преподавателя.

Продолжение 👇👇👇

#подборка #обучение
👍139👎2
Начало 👆👆👆

📌DevOps:
▪️90DaysOfDevOps — сборник из 90 шагов, разбитых на 90 дней для развития в области DevOps. Язык материала - английский.
▪️Как стать DevOps Инженером с Нуля, что учить и в каком порядке —интересное видео от человека, который вкатился в DevOps в 30+ лет. Рассказывает свой опыт.
▪️Онлайн тренажёры от RedHat — интерактивные уроки, где воспроизводят полностью рабочую среду разработчика или devops инженера.
▪️Опытный сисадмин захотел в DevOps? / Техсобес на позицию Junior DevOps Engineer / Mock interview — максимально приближённое к реальности подробное собеседование сисадмина на позицию DevOps Junior.

📌Git:
▪️ Базовый курс по Git — обучающий курс по базам с уроками по 5-7 минут.
▪️Обзорное видео по GIT от авторского ютуб канала Артема Матяшова - Git. Большой практический выпуск. Автор очень хорошо объясняет. Если прям ничего про GIT не знаете, рекомендую начать с него. Хороший монтаж, подача, оформление. Я почти все его видео с удовольствием смотрел. У него их немного. 
▪️Очень прикольная визуальная обучалка по основам GIT - LearnGitBranching. Она поддерживается, регулярно обновляется. Качественно сделана. Есть русский язык.
▪️Бесплатный курс по основам от Слёрм — Git для начинающих.
▪️Бесплатные курсы по основам GIT на Stepik: Основы работы с Git и Самоучитель по GIT.
▪️ Более продвинутый курс с погружением в нюансы, ориентированный на разработчиков — Git курс от сообщества javascript.ru.
▪️ Бесплатная книга на русском языке — Pro Git book.

📌Docker:
▪️Основы Docker — хорошее обучающее видео по Docker для новичков.
▪️Play-with-docker — онлайн тренажер для изучения Docker.

📌Kubernetes:
▪️ Полный видеокурс по Kubernetes из 22 обучающих уроков — там вообще всё от нуля до мониторинга и деплоя приложений.
▪️ Play-with-k8s — онлайн платформа для изучения Kubernetes.

📌Ansible:
▪️Ansible На Русском Языке от небезызвестного Дениса Астахова, автора канала ADV-IT. Зная другие материалы этого автора, предполагаю, что это качественный материал.
▪️ИТМО: Инфраструктура как код — курс от известного сообщества DeusOps.
▪️Ansible для начинающих + практический опыт — курс знакомит любого абсолютного новичка в DevOps с основными моментами Ansible с помощью простых практических упражнений.
▪️Небольшой курс из двух уроков от автора канала Unix way. Я уже не раз упоминал его на канале. Уровень материала у него хороший. Да и отзывы к урокам говорят о том, что уроки сделаны качественно.

📌Машинное обучение:
▪️ Введение в машинное обучение
▪️ Прикладное машинное обучение
Это очень качественные в плане подаваемой информации материалы на основе лекций ФПМИ (Физтех-школа прикладной математики и информатики на базе МФТИ).

📌Регулярные выражения:
▪️regexlearn.com — качественный интерактивный тренажёр для изучения регулярных выражений. Он переведён на многие языки, в том числе русский.

#подборка #обучение
👍142👎2