ServerAdmin.ru
32.4K subscribers
1.18K photos
73 videos
29 files
3.19K links
Авторская информация о системном администрировании.

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

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

Ресурс включён в перечень Роскомнадзора
Download Telegram
Решил вынести в отдельную заметку видео про Proxmox, которое мне показалось полезным, потому что некоторые советы из него я применяю сам, но никогда не собирал их в одну публикацию:

▶️ 5 полезных настроек Proxmox, которые стоит внедрить

Речь там идёт вот о чём:

1️⃣ Включить настройку Discard в свойствах диска виртуальной машины, если у вас хранилище на базе SSD дисков. По умолчанию она выключена.

Я всегда так делаю, а гостям в cron ставлю команду:

# fstrim -av

После её выполнения образ диска занимает ровно столько места, сколько реально занято в системе в госте, а не весь его объём. Это существенно экономит место на хранилище. Писал об этом подробную заметку.

2️⃣ Использование стандартных настроек CPU, которые поддерживаются всеми узлами кластера. Часто хочется указать тип host, и я так делаю, чтобы использовать все возможности ядра. Но в таком случае миграция не работает, если у вас узлы кластера с разными процессорами. Придётся установить что-то, что поддерживается всеми, типа x86-64-v2-AES, x86-64-v2 или kvm64. Тут уже по месту смотрите, из чего у вас собран кластер.

3️⃣ Автор предлагает использовать SDN вместо ручных настроек сети даже в самых простых ситуациях. Совет, конечно же логичный, но я пока костылю настройки сам без SDN. Надо бы переучиваться для унификации и переносимости.

4️⃣ Динамическая балансировка нагрузки в кластере. Она появилась в свежей версии 9.2 и автор предлагает её использовать. Собственно, почему бы и нет. Лишнее напоминание тем, кто пропустил новости с обновлением.

5️⃣ Последний совет на любителя - использовать различные панели управления и визуализации, типа Pulse или PegaProx. Я Pulse в пару мест поставил, где несколько хостов PVE. Выглядит красиво и удобно, но не сказать, что сильно надо. Можно и обойтись.

Некоторые дополнительные советы от меня по первоначальной настройке PVE:

◽️Сразу через веб интерфейс отключаю enterprise репозиторий
◽️Готовлю простенький шаблон с системой для раскатки через cloude-init.
◽️Если не будет настраиваться ограничение доступа к веб интерфейсу через файрвол, то делаю его в настройках pveproxy через указание доверенных IP.
◽️Настраиваю отправку уведомлений (email, gotify)
◽️Если используется zfs, настраиваю лимит использования памяти

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

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩

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

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

📌 Больше всего пересылок:
◽️Моя подборка бесплатного софта для небольшой инфраструктуры (821)
◽️Использование wstunnel для SOCKS5 ппрокси (420)
◽️Ролики с женщинами на админскую тематику (379)
◽️Настройка CrowdSec как замена Fail2Ban (271)

📌 Больше всего комментариев:
◽️Моя подборка бесплатного софта для небольшой инфраструктуры (130)
◽️Новая профессия - ИИ-инженер (100)
◽️Надёжность Яндекс.Диска (94)

📌 Больше всего реакций:
◽️Моя подборка бесплатного софта для небольшой инфраструктуры (276)
◽️Перенос процесса в другую сессию SSH с помощью reptyr (179)
◽️Проблема с ядром 7-й версии в PVE (174)

📌 Больше всего просмотров:
◽️Ролики с женщинами на админскую тематику (11400)
◽️Новая профессия - ИИ-инженер (9075)
◽️XFS и EXT4, какую ФС выбирать (7930)
◽️Забавные моменты из сериала Кремниевая долина (7700)

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

#топ
👍34👎1
Недавно прочитал статью про настройку Fwknop. Впервые услышал про этот инструмент, как и подход в целом, хотя он не нов. Идея в том, что вы отправляете специальный зашифрованный пакет с клиента на сервер, а сервер вам открывает доступ на подключение. Открытие доступа может выражаться в разных действиях, но в общем случае - это разрешающее правило на файрволе. Получается аналог port knocking, но принцип действия немного другой, со своими плюсами и минусами.

Сразу перечислю плюсы и минусы:
Достаточно отправить только 1 пакет, что позволяет обойтись без лишней логики в настройках файрвола
Отправка осуществляется с помощью программы-клиента, что позволяет унифицировать использование
С точки зрения безопасности это лучше, чем набор случайных нешифрованных сетевых пакетов в обычном port knocking.
Пакет для аутентификации может блокироваться в каких-то сетях, то есть это менее надёжно, чем набор стандартных icmp или tcp пакетов
Для корректной работы криптографии не должно быть больших расхождений по времени между клиентом и сервером
Для доступа к инфраструктуре надо устанавливать и настраивать клиента

Из описания сразу понятно, что это всё своего рода костылинг. Но в современных условиях это может быть очень актуально, так как никогда не знаешь, в какой момент тот или иной vpn заблокируют и придётся искать другие способы подключения к инфраструктуре. Архитектурно fwknop и port knocking выглядят очень просто и надёжно, пока не заходит речь о разделении доступа по пользователям. Это вносит существенные ограничения на применение такого подхода.

У меня есть виртуальная инфраструктура, закрытая шлюзом на Debian с Iptables. Я сразу на нём и проверил работу fwknop для проброса портов во внутреннюю инфраструктуру.

Ставим сервер и создаём ключи:

# apt install fwknop-server
# fwknopd --key-gen
KEY_BASE64: tTxUvTOxidZdK3tTkXbgk1T0fbMyR8=
HMAC_KEY_BASE64: 4qYZt6SX5yqiYRrHLMG0g2YwvQexYLA==

Рисуем конфиг доступа /etc/fwknop/access.conf:

SOURCE       ANY
KEY_BASE64     tTxUvTOxidZdK3tTkXbgk1T0fbMyR8=
HMAC_KEY_BASE64   4qYZt6SX5yqiYRrHLMG0g2YwvQexYLA==
HMAC_DIGEST_TYPE  sha256
CMD_CYCLE_TIMER  60
CMD_CYCLE_OPEN   /usr/sbin/iptables -t nat -A PREROUTING -p tcp --dport 8080 -i ens19 -s $PKT_SRC -j DNAT --to 10.100.1.250:8080
CMD_CYCLE_CLOSE  /usr/sbin/iptables -t nat -D PREROUTING -p tcp --dport 8080 -i ens19 -s $PKT_SRC -j DNAT --to 10.100.1.250:8080


Здесь я на 60 секунд создаю правило проброса портов с внешнего интерфейса на 10.100.1.250:8080. Для разных пользователей можно использовать разные ключи и действия со своими наборами правил.

Рисуем конфиг fwknopd.conf самой службы:

ENABLE_NFQ_CAPTURE     N;
NFQ_INTERFACE        ens19;
NFQ_PORT          62201;


Запускаем службу:

# systemctl start fwknop-server

Проверьте, что служба слушает порт udp 62201, и откройте к ней доступ на файрволе.

В качестве клиента я взял Fwknop-gui. Клиенты есть под разные системы, как с gui, так и без. Ему нужно передать ключи KEY_BASE64 и HMAC_KEY_BASE64. ☝️ Очень внимательно их копируйте и переносите. Я где-то хапнул лишний символ или пробел и очень долго разбирался, почему аутентификация не работает.

В виндовом клиенте rijndael key = KEY_BASE64, а HMAC_KEY имеет идентичное именование. Пример настроек на картинке ниже. У меня в итоге всё заработало с этими настройками, но не скажу, что настройка была простая. Примеров не так много, ИИ тоже слабо помог.

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

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

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩

#security #gateway
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍69👎1
This media is not supported in your browser
VIEW IN TELEGRAM
Забавное видео попалось на ютубе, у которого было почти 200к просмотров. Вспомнил времена, когда я настраивал и внедрял Asterisk. Бросил это дело, потому что там много нюансов и очень хлопотно было поддерживать, не погружаясь в тему глубоко.

В ролике представлен один из стандартных звуковых фрагментов, который можно выбрать для воспроизведения - tt-monkeys.wav. Это запись обезьян.

То есть админ тут ничего особо и не придумывал. Просто настроил проверку существования номера. Для этого есть отдельная функция. Если номера нет, то возвращаем какую-то запись. Либо он на старые номера настроил воспроизведение звука.

Вообще, разработчики Asterisk с юмором. Там много таких забавных моментов. Пример некоторых записей:

◽️tt-monkeysintro - их унесли мартышки
◽️tt-somethingwrong - что-то тут совсем не так
◽️tt-weasels - телефонную систему съели совы

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

https://disk.yandex.ru/d/rtwlcEk610ty_g

Подобные звуки можно вместо гудков поставить, например, при звонке в какой-то отдел. Вообще, настраивать Астериск было интересно. Это такая замороченная и очень гибкая система. До сих пор есть компании, где работает IVR с моими записями фраз. Нужно быстро настроить, а кого просить записать фразы? Записывал сам. Настраивал один из телефонов на запись звонка, звонил туда и наговаривал. Это был самый простой способ получить готовую к применения запись без лишних заморочек и обработок.

#юмор #voip
👍97👎5
В то время как ии-агенты сами себя улучшают и обучают, мне по старинке понадобилось вручную обновить биос одного старенького сервера Supermicro. На удивление без проблем нашёл и скачал всё, что надо на официальном сайте. Никаких подписок не понадобилось, запрета доступа тоже нет.

Помню, что была опция по обновлению биоса в IPMI панели управления сервером. Захожу в Maintenance, нахожу BIOS Update и расстраиваюсь, так как для этого нужно приобретать какую-то лицензию. А без неё обновление только с загрузочного носителя в DOS или через UEFI. Очень не хотелось со всем этим заморачиваться, поэтому решил поискать путь попроще.

И я его нашёл. Есть репозиторий supermicro-product-key. Там работающее решение по получению ключа для разблокировки расширенных возможностей IPMI. Я его проверил, способ рабочий. У меня получилось без проблем обновить bios.

Для получения самой простой лицензии, которая позволяет обновлять биос, достаточно запустить генератор ключа на основе mac адреса сервера, который можно посмотреть в IPMI панели:

> supermicro-product-key.exe oob encode 3cecef123456
CE27-F641-9B04-6B24-5D04-5D32

Вводим код и можно обновлять биос. Я чисто из любопытства установил и самую навороченную лицензию, которая позволяет выполнять централизованное управление всеми серверами. В репозитории есть все инструкции. На практике не знаю, где это может пригодиться. У меня нету парка однотипных серверов. А вот обновление биоса очень пригодилось. Плюс, какой-то уровень лицензии добавил iKVM через HTML5, а не через глючную Java. Приятный бонус.

С учётом того, что серверы Supermicro за их стоимость довольно популярны у нас, решил написать заметку. Хотя лично я, если нужно приобрести сервер, отдаю предпочтение бушным серверам Dell.

Я заодно и прошивку IPMI обновил. И по старой русской традиции не прочитал инструкцию по обновлению. А там красным цветом с восклицательным знаком написано, что во время обновления надо поставить галочку на сброс настроек к заводским. Конечно же я этого не сделал. Мне и в голову не пришло, что это обязательное требование. В процессе был выбор - сбросить или оставить настройки. Разумеется, я оставил. Нелогично же давать выбор, когда выбора реально нет, надо обязательно сбрасывать.

В общем, после обновления IPMI он у меня сломался. Пришлось повозиться и через SUM (Supermicro Update Manager) сбросить настройки. Сервер старый, запасной, поэтому я поленился заморочиться и всё проверить. Но если будете рабочие сервера обновлять, то рекомендую всё же читать инструкции по обновлению как биоса, там и bmc.

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

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩

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

На вид как будто бы всё нормально, но то тут, то там, где-то что-то не работает. То принтер отвалится на 5 минут, то SIP телефон становится неактивным, то один сервер недоступен, то другой. Такие проблемы решать очень трудно. Со стороны серверов и управляемых свитчей я не увидел никаких проблем и ошибок, которые можно было бы исправить.

Пришлось приехать, чтобы на месте разобраться. Удалённо ничего не получилось несмотря на то, что в офисе были руки, которые всё делали. Вооружился тестером, которым я пользуюсь очень редко. И вообще с проводами давно не работал, всё подзабыл. За последние лет 10 только в доме себе проводку сделал для камер и рабочих мест.

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

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

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

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

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

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

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

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩

#железо #ошибка
Please open Telegram to view this post
VIEW IN TELEGRAM
👍218👎3
Вчера новость проскочила, что у Let's Encrypt поменялось пользовательское соглашение, где явно указано, что пользователь, получающий сертификат, не должен находиться под ссанкциями США. Чуть позже директор организации пояснил, что сертификаты продолжат выдаваться для частных лиц и негосударственных компаний из Ирана и России, но не будут доступны для российских и иранских госучреждений.

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

Я давно заметил домен letters.kremlin.ru, где сертификаты от Let's Encrypt. И сейчас он там стоит. Будет интересно посмотреть, получится ли его обновить или перейдут на другой центр сертификации. Вообще, странно было видеть на сайте Кремля сертификаты от американской компании. Им как-будто бы не место там.

Как только прочитал эту новость, сразу же возникла мысль в голове. Let's Encrypt не будет препятствовать выпуску сертификатов. Но это наверняка сделает РКН. Как уже было много раз, формальные ссанкциии с той стороны подкрепляли реальными и проблемными блокировками на этой от РКН. Так что не удивлюсь, если со временем они осложнят процесс получения бесплатных сертификатов. Как только появится какое-то подобие аналога у нас, сразу и заблокируют.

Считаю, что это случится с большой долей вероятности. Задан явный тренд на сегментацию интернета по всему миру. Европейцы тоже суетятся по этой теме, просто называют её по-другому. Сервис, подобный Let's Encrypt, не вписывается в будущую картину рунета, так что обязаны придумать какое-то решение, которое осложнит нам жизнь.

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩

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

Визуализация кастомных метрик Angie в Grafana
Пример настройки различных метрик через модуль ngx_http_metric_module.

DevOps в Эру AI: Заменит ли ИИ DevOps инженеров и разработчиков уже через 5 лет?
Длинное разговорное видео от практикующего Senior DevOps Engineer, которое можно послушать на прогулке или в машине. Просто мнение и мысли автора и его собеседника по этой теме.

MineCraft для чайников.. для пап =) Как запустить свой майнкрафт сервер.
Я в своё время разбирался с этой задачей. Потратил некоторое время, всё сделал на арендованной VPS, чтобы можно было с друзьями играть на одном сервере. Но потом у детей как-то угас интерес к этой игре, а я всё забыл уже, потому что так и не написал заметку. Если вам актуальна эта тема, смотрите видео.

Hermes Agent + LM Studio | Локальный AI Агент на ПК Бесплатно
Простое видео про настройку агента и локальной модели. Мне лично всё это уже не особо интересно, потому что много раз подобное настраивал. Но если вы ещё не занимались этим, то это видео хорошо подойдёт для знакомства - короткое, простое, наглядное.

Как я сломал себе Proxmox ноду, а потом быстрой восстановил
Очередная история, когда новое ядро 7-й версии в Proxmox всё ломает. Я и сам с этим столкнулся, и много отзывов видел на эту же тему, так что имейте ввиду. Само видео про PBS и восстановление бэкапов.

Asterisk и Freeswitch в компании zt.ru
Необычный вебинар на тему связи в исправительных учреждениях. Наверное, будет интересно только тем, кто знает и работает с Asterisk. Под капотом там мощный технологический стек, настроенный под специфику учреждений. Это такое место, куда готовое решение с рынка не купишь и не поставишь.

Инструменты для MCP сервера (MCP tools)
Ресурсы MCP сервера (MCP resources)
Краткая база по MCP. У автора качественная база в коротких роликах по всем основным сущностям современных ИИ. Рекомендую.

Запускаю LTX-2.3 на H100 через Claude Code — 4K не пережил даже 96 ГБ
Интересный эксперимент по использованию бесплатной модели LTX-2.3 для генерации видео на топовом ноутбуке с видеокартой и арендованном сервере с GPU. Результат вполне себе нормальный, как по мне.

Fable 5 - САМАЯ ДОРОГАЯ нейросеть: мой опыт и сравнение с Opus 4.8
Обзор и тесты новой нейросети от Anthropic - Fable 5. Выводы автора - нейросеть дороже в 2 раза и медленнее Opus, качество ответов выше на сложных задачах, на простых или в режиме чата разница не заметна.

Установка XPEnology 7.3 на примере Asustor AS5304T
Для домашнего NAS по моему мнению - это идеальная система. У меня уже 15 лет такая стоит. В видео установка по шагам с теорией.

Заставил Claude неделю играть в Brotato 24/7 — он перестал проигрывать
Решение необычной технической задачи в виде прохождения игры. Не знаю, зачем автор это создал, но мне было любопытно посмотреть.

Proxmox Datacenter Manager 1.1 — это гораздо более значимая разработка, чем вы думаете.
Обзор PDM в целом и последнего обновления в частности для тех, кто с ним не знаком. В 1.1 много всего интересного завезли. Установлю его себе и попробую, сделаю потом заметку.

МиниПК Ninkear M8 с 16-поточным Ryzen и сетью 2.5 Гбит/c
Классный неттопчик. Мне понравился. К сожалению, из-за дороговизны DDR5 эти неттопы стоят очень дорого. Осенью в районе 25к такой мог стоить. Сейчас под 50к. Я успел один купить для тестов, чтобы потом собрать дома кластер из них, но так и не собрал. По текущим ценам слишком дорого выходит. Собрал на старом железе, в том числе из б.у. сервера, как основу.

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩

#видео
Please open Telegram to view this post
VIEW IN TELEGRAM
👍36👎1
Казалось бы, какой сейчас смысл в веб сервере Apache, когда есть полно более современных аналогов? Я лично с ним взаимодействую только в проектах, где есть Bitrix, либо если на винде где-то надо опубликовать базу 1С. С помощью Apache это проще всего сделать.

В недавнем вебинаре услышал от автора полезную идею по поводу Apache. Он может быть удобен, если надо быстро запустить что-то на php. В то время как для Nginx надо подниматься в отдельном контейнере php-fpm, Apache сразу имеет на борту mod_php, поэтому достаточно одного контейнера только с Apache, где будет сразу и php, и веб сервер. Для этой задачи есть официальный базовый образ.

Покажу сразу на конкретном примере. Я иногда использую скрипт adminer. Это небольшой php файл, который позволяет через браузер подключиться к MySQL / MariaDB / PostgreSQL и быстро посмотреть или сделать что-то простое, не вспоминая консольные команды. На удивление живучий проект. Сколько лет ему, а он продолжает поддерживаться и регулярно получать обновления.

Запускаем adminer в docker:

# mkdir ~/adminer && cd ~/adminer
# curl -sLo adminer.php https://github.com/vrana/adminer/releases/download/v5.4.2/adminer-5.4.2.php
# docker run -d --rm --name adminer -p 8080:80 -v $(pwd):/var/www/html php:8.4-apache
# docker exec adminer docker-php-ext-install mysqli
# docker exec adminer apachectl restart

Идём по IP адресу и открываем adminer - http://192.168.137.37:8080/adminer.php. В данном случае понадобилось дополнительное расширение mysqli установить, необходимое для работы adminer.

Если будете постоянно что-то использовать таким образом, можно свой образ собрать. Создаём Dockerfile:

FROM php:8.4-apache
RUN docker-php-ext-install mysqli
COPY adminer.php /var/www/html/index.php

Собираем образ и запускаем:

# docker build -t adminer .
# docker run -d --rm -p 8080:80 adminer

Для простых задач с php стандартный образ с Apache реально удобнее всех остальных. Не надо ничего придумывать и настраивать. Всё сразу работает в одном минимальном контейнере.

Поясню на всякий случай для тех, кто может не понять сразу. Это решение для простых одиночных задач без нагрузки. Php-fpm появился не просто так, а как решение вопроса медленной асинхронной работы mod_php в Apache. В нагруженных проектах лучше использовать php-fpm. Хотя тот же Битрикс сколько лет успешно работает по умолчанию на Apache с некоторыми настройками. Например, в модуле mpm_prefork можно заранее настроить запуск необходимого количества процессов веб сервера, на которое хватает ресурсов, а так же их параметры перезапуска и обработки запросов. Я настраивал Битрикс как на Apache, так и на php-fpm. Если ресурсов в целом хватает на сервере, то разница не особо незаметна.

p.s. Уже после написания заметки увидел, что у Adminer есть свой готовый образ. Не знаю, когда он появился, я всегда обычный php файл использовал, скачивая его на настроенный хостинг. Сути заметки про использование Apache это не меняет.

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

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩

#apache #php
Please open Telegram to view this post
VIEW IN TELEGRAM
👍88👎3
На днях словил неприятное ощущение холодка, пробежавшего по спине, когда не смог запустить KeePass со своими паролями. А у меня там практически всё самое важное хранится. Сама программа со всеми настройками и зашифрованной базой паролей лежит на Яндекс.Диске. У меня эта схема заведена уже лет 10, может больше.

И вот при запуске программы я получаю ошибку:

"Том для открытого файла был изменён извне, поэтому работа с этим файлом невозможна".

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

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

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

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

Я уже серьёзно напрягся, потому что ситуация совершенно непонятна. Как может не работать версия программы, которая ещё недавно работала? Свежие изменения, которые теоретически могли её поломать, туда просто не приехали. А та версия, что есть, ещё недавно нормально работала.

Скачиваю чистую версию KeePass с сайта, как я обычно делаю при обновлении, и подкидываю туда по привычке 3 файла:

◽️KeePass.config.xml - настройки;
◽️KeePass.exe.config - конфиг экзешника;
◽️baza.kdbx - база с паролями.

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

Немного успокоился и стал соображать. Запустил чистую версию без своих настроек - работает. Подкинул базу паролей - открывается. ОТЛЕГЛО. Лёг спать, потому что уже поздно было. Я бы не уснул, если пароли не увидел.

Утром выяснил, что проблема с файлом KeePass.exe.config, который в актуальной версии почему-то пустой, нулевого размера. В бэкапе от марта в нём есть данные, как и в архиве с сайта. В этом файле хранятся настройки экзешника. Там в том числе указано, с какой версией .NET Framework работает KeePass.

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

Первый раз столкнулся с проблемами KeePass. Очень много лет им пользуюсь, и всегда всё работало чётко. Эта история заставила пересмотреть подход к хранению паролей. Вывода сделал два:

1️⃣ Основная рабочая директория должна располагаться не на Яндекс.Диске, а копироваться туда после изменений.
2️⃣ Периодически надо делать выгрузку паролей из программы, упаковывать их в шифрованный архив и хранить отдельно.

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

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩

#password
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍225👎5
В описаниях продуктов или в обсуждениях в чате иногда упоминается FreeBSD. Это старая самобытная система, которая некоторые время была очень популярна на серверах. Когда я начинал администрировать UNIX где-то в 2005-2006 году, с неё началось моё знакомство с невиндовыми системами.

Примерно в то время родился мем: "Как пропатчить KDE2 под FreeBSD?". Мне он был понятен, потому что мой напарник на работе в то время купил себе ноутбук и часами, а зачастую и днями, собирал на нём из исходников KDE, пытаясь превратить его в рабочую станцию под FreeBSD. В целом, у него это получилось. Система работала, но было не очень понятно, зачем это надо.

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

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

В целом, мне нравилась эта система. В пике её популярности мне как-то попались диски с RedHat Linux. Я развернул, посмотрел, не проникся. Не понял, зачем мне это может быть нужно и чем оно лучше FreeBSD. У последней особенно нравилось то, что есть единая документация и единое хранилище всего софта, называемое портами. Было единообразие всех серверов и инструкций, в то время как в Linux был разброд и шатание. У всех систем всё по-разному настраивалось, разные инструкции, репозитории, пакеты.

Ещё в FreeBSD нравился файл /etc/rc.conf, где в том или ином виде описывалось поведение всего настроенного софта. Как минимум туда добавлялось что-то вроде mysql_enable="YES" для всех установленных программ. Без этого они не запускались. Зайдя на сервер и посмотрев rc.conf, можно было сразу понять, что здесь настроено и с какими основными параметрами работает. В Linux ничего подобного так и не появилось, а жаль. Очень удобная функциональность.

Также всегда нравился файрвол ipfw. Его настройка и поведение выглядело логичным и интуитивным, чего не скажешь об iptables. Сейчас, конечно, все к нему привыкли и воспринимают, как должное, но если изучать с нуля, то ipfw проще и понятнее.

Из-за чего началось угасание FreeBSD, я точно не знаю. Не отложилось в памяти. Просто в какой-то момент стал замечать, что то какого-то софта нет под неё, то драйвера, то ещё чего-то. Как сейчас помню, последней каплей стало то, что я не нашёл агента для FreeBSD во время настройки популярного сервиса мониторинга NewRelic. Они просто не написали агента и не поддерживали эту систему. После этого я окончательно решил, что с FreeBSD надо прощаться и переходить на что-то другое.

Изначально я начал изучать Debian, поднимать сервисы на ней. Но в одной компании столкнулся с огромным количеством CentOS. Там вся инфраструктура была выстроена на этой системе. Мне она показалась удобнее Debian, стал изучать и всё поднимать на ней. И это продолжалось до тех пор, пока CentOS не закончилась как полная копия RHEL.

В какой-то момент Microsoft вписалась в разработку FreeBSD. Добавила нативную поддержку в ядре запуска на своём гипервизоре Hyper-V. Это было удобно. Казалось, что это может оживить FreeBSD, но по моим наблюдениям этого не произошло, и FreeBSD окончательно растеряла популярность и почти полностью ушла из production, задержавшись только в каких-то узких нишах, типа сетевых шлюзов.

Сам я уже давно не работал с FreeBSD. Иногда хочется там что-то настроить из ностальгических соображений, но смысла в этом как-будто бы уже нет. Ушла эпоха.

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩

#freebsd
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍129👎8
Небольшая информационная заметка для тех, кто не сталкивался, как я ранее, с подобной историей. Иногда, чтобы поплотнее упаковать сервисы на хосте c PVE, я запускаю их в LXC контейнерах. В этом есть свои плюсы и минусы. Если у вас появится необходимость примонтировать диск по NFS, то не используйте LXC. Там это очень неудобно делать.

У меня изначально не было планов использовать NFS, а потом понадобилось. В LXC напрямую со стандартными правами контейнера примонтировать NFS диск не получится. Его нужно сначала монтировать на хост, потом пробрасывать точку монтирования диска в контейнер.

Помимо этого неудобства возникают проблемы с правами из-за разных UID/GID на хосте и в контейнере. Это решаемо, но неудобно. Плюс, не работает HA и миграция с прокинутой точкой монтирования с хоста в контейнер. Я у себя в итоге все вопросы порешал и настроил, но это неудобно.

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

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

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩

#lxc #nfs #proxmox
Please open Telegram to view this post
VIEW IN TELEGRAM
👍99👎4
В Windows есть давняя проблема с переключением раскладки, когда она не переключается с первого раза во время быстрого нажатия нужных клавиш. Она то исчезает, то появляется вновь. В последнее время стала опять донимать. Я уже писал пару заметок на этот счёт. Как оказалось, очень многие замечают этот баг. Связан он, насколько я понимаю, с визуальным отображением переключения, когда при нажатии комбинации клавиш выскакивает на короткое время плашка, визуализирующая процесс переключения.

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

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

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

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

В общем, вернул обратно программу и заодно проверил все её настройки. В разделе Трей есть параметр Переключатель языка, которое может принимать значение Windows 10 (без анимации). Выбираешь это значение и переключение языков работает чётко. Никакой плашки не выскакивает. Я много пишут текстов, уже несколько дней работаю, проблем с переключением больше нет.

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

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩

#windows
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍173👎6
Сколько лет пользуюсь Grafana, впервые столкнулся с нелепой проблемой, созданной на ровном месте. После установки и настройки перепутал пароли и записал не тот. Пытаюсь зайти в веб интерфейс, получаю ошибку: "Login failed Invalid username or password". Перепробовал все пароли, ничего не подходит.

Смотрю логи:

"too many consecutive incorrect login attempts for user - login for user temporarily blocked".

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

Иду и сбрасываю пароль, чтобы уж наверняка и больше не попасть на блокировку:

# grafana-cli admin reset-admin-password 'new password'

Возвращаюсь в веб интерфейс, использую новый пароль и опять то же самое: "Login failed Invalid username or password". Что за ерунда, я же сбросил. Смотрю логи, там опять то же самое - пользователь заблокирован.

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

disable_brute_force_login_protection = true

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

brute_force_login_protection_max_attempts
disable_username_login_protection
disable_ip_address_login_protection

Это позволяет гибко управлять параметрами. Например, если с одного IP идёт перебор разных учётных записей, то всё равно будет блокировка по IP в соответствии с параметром disable_ip_address_login_protection = false. А если у вас весь офис сидит за NAT и подключается к внешней Grafana, то это надо отключить, оставив только проверку на уровне логина. Иначе один пользователь в случае ошибки может заблокировать IP, и все зайти не смогут.

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

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩

#grafana
Please open Telegram to view this post
VIEW IN TELEGRAM
👍163👎1
Недавно делал подборку из нескольких видео сериала Кремниевая долина. Из этой же области есть более старый сериал Компьютерщики (The IT Crowd), откуда пошла легендарная фраза: "А вы пробовали выключить и снова включить?"

Сериал британский со специфичным юмором. Сейчас уже смотрится не так, как это было на момент выхода. Тогда вся эта тема IT поддержки была более живая, актуальная. Было много юмора на этот счёт. Сейчас всё это плавно сошло на нет.

Небольшая подборка забавных моментов оттуда:

1️⃣ Собственно, самое начало сериала с легендарной фразой.

2️⃣ Джен проходит собеседование и становится руководителем IT отдела.

3️⃣ Стёб над ОС Vista. При разминировании заглючил робот. Морис спрашивает у оператора, какая там операционная система. Тот отвечает, что Vista, на что Морис восклицает, что мы умрём. В то время вышла Vista и собрала кучу негатива. Авторы решили обыграть это в сериале.

4️⃣ Рой пытается очистить ноут Джен от вирусов, а та просит просто установить браузер.

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩

#юмор
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍89👎2