ServerAdmin.ru
28.4K subscribers
263 photos
33 videos
12 files
2.59K links
Авторская информация о системном администрировании.

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

Второй канал: @srv_admin_live
Сайт: serveradmin.ru
Download Telegram
​​Если хотите посмотреть, попробовать, изучить работу кластера PostgreSQL, можно воспользоваться готовым плейбуком ansible — postgresql_cluster. Это production ready решение, которое просто и легко устанавливается. У меня получилось базовую версию без балансировки на haproxy и consul развернуть сходу.

Всё описание есть в репозитории. Если нет опыта в этом хозяйстве, то развернуть лучше Type B: один мастер и две реплики. Это будет обычный HA кластер на базе Patroni. Если не ошибаюсь, на текущий момент это самое популярное решение для построения кластеров PostgreSQL.

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

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

После установки статус кластера смотрите командой:
# patronictl -c /etc/patroni/patroni.yml list

Можете отключать ноды и смотреть, как кластер будет на это реагировать.

#postgresql
​​Если вам нужно запускать Android приложения на PC, то предлагаю вариант с использованием эмулятора Memuplay. В общем и целом, особых проблем с работой эмуляторов нет. Их немало, есть из чего выбирать. Но все они используют виртуализацию, поэтому запускать их надо на железе, а не в виртуальной машине.

Я запускал memuplay в виртуальной машине Win10 на гипервизоре Proxmox. Для корректной работы эмулятора, нужно настроить вложенную виртуализацию (Nested Virtualization). Без этого эмулятор не заработает.

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

В виртуальной машине с подключением по RDP интерфейс неотзывчивый. Пользоваться не очень комфортно, но для каких-то простых задач сойдёт.

Альтернативный вариант — бесплатная версия Genymotion. Для домашнего использования она доступна с некоторыми ограничениями. Сам я её не пробовал. Она тоже требует виртуализацию, так что на арендованных VPS подобные эмуляторы запускать скорее всего не получится. Единственный вариант — договориться с тех. поддержкой о включении вложенной виртуализации, но не уверен, что кто-то будет это делать.

Сайт

#android
На прошлой неделе я проходил очное обучение у Дмитрия Скоромнова по его курсу Архитектура современных компьютерных сетей. По итогу обучения написал небольшую статью, чтобы вы имели представление, что это такое и как проходит обучение.

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

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

Приведу пару примеров. Ещё больше есть в статье. Я научился нормально работать в Wireshark и полностью понимать всю информацию, что можно в ней увидеть. Раньше я в основном интуитивно смотрел там информацию об источниках и объёме трафика. Проанализировать содержимое не мог, так как банально не понимал структуру ethernet кадров. Тема эта не очень простая для самостоятельного обучения.

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

В общем, сам курс могу порекомендовать, так как весь его прошёл. А подробности читайте в статье.

https://serveradmin.ru/otzyv-na-kurs-arhitektura-sovremennyh-kompyuternyh-setej-ot-kursy-po-it-rf/

#обучение
​​Понравилась шутка с ChatGPT (см. внизу картинку 👇). Сейчас его пиарят, как не в себя, приписывая зачастую невероятные возможности. Я видел много статей в топе хабра или vc (подписан на еженедельные рассылки топовых статей) на эту тему, но не читал ни одну. Хочу поделиться своим мнением на этот счёт.

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

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

Теперь вернёмся к ChatGPT. Заменить слабых программистов, которые пишут в основном копипастом, он, скорее всего, сможет. Так как они не придумывают ничего нового, а зачастую и интеллект не подключают. То же самое касается копирайтеров, которых ChatGPT заменит 100%. Уже ожидаю вал новых сайтов с текстовой информацией, написанной ИИ. Это замусорит выдачу поисковиков ещё сильнее, так что найти материалы реального умного человека станет ещё сложнее. Возможно, имеет смысл возродить идею каких-то досок с подборками хороших ресурсов, как было в 90-е.

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

Так что нам можно не волноваться. ❗️Самое главное — заниматься интеллектуальной деятельностью и тогда как минимум на этом, а может и следующем поколении бояться конкуренции с ИИ не придётся. А дальше видно будет.

#мем
​​Наконец-то произошло это знаменательное событие и в веб интерфейсе Proxmox стало можно сортировать виртуальные машины не только по VMID, но и по имени. Буквально на днях, когда собирал тестовый кластер из виртуалок, думал, как же неудобно сделано. На тестовом сервере десятки виртуалок с разными системами и я никак не могу их отсортировать.

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

Это и прочие изменения появились вместе с релизом 7.4. Там помимо прочей ненужной ерунды (сарказм) добавилась тёмная тема. Теперь все фанаты тёмных тем будут спокойны.

#proxmox
На прошлых выходных затронул тему про работу и увидел неожиданный интерес к ней. Решил её немного развить, показав примеры из своей жизни, подтверждающие те рассуждения.

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

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

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

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

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

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

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

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

❗️Всё, что я написал, не пример того, к чему надо стремиться вам. Я показал, как искал себя в течении большого отрезка жизни, и как пришёл к тому, что устраивает. У каждого свои способности и возможности. Ваша задача увидеть их, развить и получить комфортную среду для созидательного труда.

#мысли
Продолжу тему с работой. Раскрою плюсы и минусы того рабочего режима, в котором нахожусь. Сразу отвечу на вопрос, который неоднократно задавали — откуда я беру клиентов. Тут всё просто. Я давно публичный человек. Сначала был популярен сайт, сейчас Telegram. Мне постоянно пишут люди в личные сообщения (часто не отвечаю). Каждый день с какими-нибудь вопросами. И примерно 2-3 раза в неделю кто-то предлагает работу. Я и себя трудоустроил и несколько знакомых. Уже никто не берёт заказы 😁 Поначалу все клиенты с удалённой работой пришли с сайта. А поддержку офисов я нашёл через hh и avito.

Теперь что касается удалённой работы в одно лицо в режиме фриланса. Минусы:
🔴 Нужна хорошая самоорганизация. Очень велик соблазн откладывать дела на потом. Постоянно с этим борюсь. У меня получается, но это забирает энергию. Получится не у всех.

🔴 Дома работать трудно. Даже если тихо и никого нет. Дома человек отдыхает, если у него всё хорошо в семье. Это место, где он расслаблен. Трудиться дома не хочется. Поэтому я иногда уезжаю на дачу, где никого нет. Мне там нравится. Могу на несколько дней уехать и провести их там один, сделать основной объём дел на неделю. Также снимаю коворкинг. Одно время помесячно платил, но выходит дороговато, плюс я не постоянно туда езжу. Сейчас снимаю по дням, когда есть возможность весь день поработать. В коворкинге лучше всего организоваться. Там своя атмосфера, все работают. Я никого не знаю, никто не отвлекает. Плюс, должен быть хороший дизайн помещений. Мне так работается лучше. В более дешёвых убитых помещениях некомфортно и работать там не хочется.

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

Теперь про плюсы:
🟢 У вас нет потолка по доходу. Всё в ваших руках. Это мотивирует и двигает дальше. Я расстраиваюсь, если доход год от года не растёт. Стараюсь, чтобы рос.

🟢 У вас свободный график, который ни с кем не надо согласовывать. Это очень удобно. Я не представляю, как бы я вёл стройку, если бы не было свободного графика. Была куча дел, начиная с выбора и покупки участка, и заканчивая внутренней отделкой дома. Я постоянно незапланированно приезжал на дачу. Плюс, у меня трое детей. Я хожу на все собрания и детские праздники. Иногда вожу детей к врачам, иногда отдыхать куда-то езжу в будни, когда в общественных местах мало людей. Мне нравится участвовать в их жизни. С графиком 5/2 не представляю, как это делать.

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

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

❗️Трудиться в таком режиме подойдёт не всем. Это надо чётко понимать. У каждого свой характер, привычки, способности, потребности. Отработать подчинённым пятидневку в офисе намного проще, чем каждый день ставить себе задачи, думать о доходе, планировать развитие. Где-то на второй год такой работы я получил очень хорошее предложение на 5/2. Был на собесе, денег предложили больше, чем имел. Много думал. В итоге отказался. Сейчас не жалею.

#мысли
​​Хочу напомнить про одну из популярных и удобных систем для нагрузочных тестирований для сайтов — Yandex.Tank. Она написана лет 10 назад и с тех пор особо не менялась, хотя в репозитории видна активность. За проектом присматривают и поддерживают в актуальном состоянии.

Она удобна в первую очередь тем, что есть интеграция с бесплатным сервисом overload.yandex.net, куда Yandex.Tank автоматически загружает результаты. Для этого нужно там зарегистрироваться и получить токен. А дальше нарисовать небольшой конфиг для тестирования:

overload:
 enabled: true
 package: yandextank.plugins.DataUploader
 token_file: "token.txt"
phantom:
 address: news.mail.ru:443
 header_http: "1.1"
 headers:
  - "[Host: news.mail.ru]"
  - "[Connection: close]"
 uris:
  - /
  - /economics/
 load_profile:
  load_type: rps
  schedule: line(5, 10, 1m)
 ssl: true
autostop:
 autostop:
  - http(5xx,10%,5s)
console:
 enabled: true
telegraf:
 enabled: false

И запустить тест:
# docker run --rm -v ~/yandex.tank:/var/loadtest \
-it yandex/yandex-tank

В процессе тестирования получите ссылку вида https://overload.yandex.net/589382, по которой можно наблюдать ход тестирования в режиме реального времени, либо изучать его результаты потом. Простую статистику можно наблюдать в консоли по ходу теста.

Yandex Tank продвинутый инструмент, которые поддерживает разнообразные схемы запросов, различные настройки нагрузки и т.д. В качестве генераторов нагрузки может использовать Phantom, Pandora, BFG (написаны самим Яндексом для него), либо известный Jmeter. В качестве внешних сервисов для загрузки артефактов, помимо Yandex.Overload можно использовать InfluxDB.

Все модули, настройки, возможности и примеры использования описаны в документации. Я когда-то давно писал статью с примером запуска Yandex.Tank. Она полностью актуальна, можно пользоваться.

Аналоги Yandex.Tank:
◽️ artillery.io
◽️ k6
◽️ Locust
◽️ Taurus

Исходники / Документация / Визуализация

#нагрузочное_тестирование
​​Когда вам нужно быстро посмотреть, кто и где занимает больше всего места на диске, можно использовать разные подходы. Расскажу про 3, которые я применяю при разных обстоятельствах.

1️⃣ Установить программу ncdu. Она обычно есть в стандартных репозиториях популярных дистрибутивов. Это самый простой и удобный вариант. Если постоянно приходится по какой-то причине следить вручную за местом, то ставлю эту программу. Но не всегда. В списке обязательных для установки у меня её нет. Чаще всего обхожусь без неё.

2️⃣ Быстро оценить размер каталога или нескольких каталогов можно, выделив их в Midnight Commander и нажав Ctrl + Пробел. Этим постоянно пользуюсь, так как MC ставлю на все сервера под своим управлением.

3️⃣ Воспользоваться консольной командой du с параметрами. Например вот так:
# du -hs * | sort -hr | head -10
Иногда кладу на сервер с бэкапами или сайтами небольшой скрипт, чтобы быстро оценить занимаемое каждой директорией место, а заодно сохранить результат прошлых проверок.

#!/bin/bash

echo "==================================" >> dir_size.txt
echo "Dirs size `date +"%Y-%m-%d_%H-%M"`" >> dir_size.txt
echo "==================================" >> dir_size.txt
du -hs * | sort -hr | head -10 >> dir_size.txt

Есть ещё какие-то простые и удобные способы? Больше ничего в голову не приходит.

#bash #terminal
​​Сколько я перепробовал всевозможных эмуляторов Android, вместо того, чтобы просто поставить его как виртуалку. Я просто не знал, что так можно. А это очень просто. Рассказываю, как установить Android OS в качестве виртуальной машины Proxmox. Работает отлично, ничего не тормозит. Магазин, приложения, учётная запись. Всё отлично.

1️⃣ Качаем с сайта android-x86.org образ android-x86_64.iso и загружаем в Proxmox.

2️⃣ Создаём виртуальную машину со следующими параметрами:
- Type: Linux, 6.x - 2.6 Kernel
- Grafic Card: Default
- SCSI Controller: VirtIO SCSI single
- Disk: SCSI
Всё остальное как обычно, по умолчанию. Диск нужен не меньше 20Gb. После установки у меня было занято 14Gb.

3️⃣ Запускаем VM, выбираем Installation. Создаём раздел на диске, от использования GPT отказываемся. В cfdisk создаём раздел, делаем его bootable, сохраняем, выходим. Выбираем этот раздел для установки, файловую систему ext4, ставим grub, на предложение выбора режима read only отказываемся. После установки перезагружаемся.

4️⃣ Загружаемся в Android, выполняем типовую стартовую настройку. Выбираем подключение к WIFI. Будет доступна одна сеть под названием VirtWifi. Подключившись к ней, я получил IP адрес от DHCP сервера, который работает на бридже, который я добавил в эту виртуалку.

На этом всё. Подключаем свою учётную запись и пользуемся. Мне лично эта виртуалка нужна для установки некоторых приложений, которые не хочу ставить на смартфон, так как там они не нужны. Один раз меня просили сделать такую виртуалку для работы с Instagram за компьютером, так как веб версия для PC неудобна.

#android
Ко мне регулярно обращаются люди с предложением разовой или постоянной работы. Если отказываюсь, просят порекомендовать знакомых или кого-то ещё, кто может решить их проблему. Я никогда не рекомендую людей, которых не знаю лично, так что чаще всего никого не рекомендую, а предлагаю обратиться к какому-нибудь известному аутсорсеру. Во многих случаях мне видится это более разумных подходом, особенно там, где нужна поддержка 24/7.

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

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

fevlake.com — основатель известный многим Василий Озеров. Он же запустил школу Rebrain. С Василием есть интересное интервью, рекомендую к просмотру.

southbridge.io — они же бывшие centos-admin.ru, они же организаторы школы Слёрм. Я проходил несколько обучений у этой школы. Курсы пишут в том числе и действующие инженеры, как и в Rebrain. Аутсорсеры известные и именитые.

flant.ru — именитый аутсорсер и главный внедренец kubernetes в РФ. Это в основном крупный бизнес, тогда как у первых двух можно заказать поддержку даже одного сервера.

nixys.ru — знаю их по известной программе nxs-backup (странно, что ни разу не написал о ней), которую видел в работе и у других аутсорсеров. У них неплохой блог на Хабре.

👨‍💻 Вот вам сразу вакансии, чтобы не искать по сайтам:
https://southbridge.io/vacancies#list
https://job.flant.ru/vacancies
https://nixys.ru/jobs/
У Fevlake сейчас нет открытых вакансий. По открытым вакансиям заказчик может оценить, кто будет работать с его инфраструктурой.

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

#разное
​​Потестировал простую и удобную панель для веб хостинга — CloudPanel. Это бесплатный проект, известен зарубежом, но не у нас. Шаблон с этой панелью есть у многих западных хостеров — aws, do, azure, hetzner и т.д. Я развернул его у себя не Debian 11 и запустил сайт. Заметна сразу особенность — очень низкие системные требования (1CPU, 2Gb памяти, 10Gb диск).

Установка CloudPanel простая. У разработчиков есть свои репозитории, так что с помощью bash скрипта они подключаются и разворачивается весь необходимый софт на базе стандартного стека: nginx, php-fpm, mysql, redis, varnish, proftpd.

Установка на Debian 11 с MariaDB 10.9:
# apt install curl wget sudo
# curl -sS https://installer.cloudpanel.io/ce/v2/install.sh \
-o install.sh
# sudo DB_ENGINE=MARIADB_10.9 bash install.sh

Идём на https://yourIpAddress:8443 и создаём администратора. Дальше всё просто и интуитивно понятно. Функционал у панели простой и помимо веб хостинга ничего нет.

📌 Основное:
готовый шаблон для быстрого разворачивания Wordpress, а также 30 преднастроек виртуальных хостов для популярных движков (laravel, joomla, drupal и т.д.)
поддержка Let's Encrypt сертификатов
автоматические бэкапы на популярные облачные хранилища, а также по sftp или rclone
в качестве firewall используется ufw с управлением через админку
возможность создавать пользователей и давать им доступ к разным сайтам
в качестве движка сайта поддерживается php, nodejs, python, static html
можно добавить сайт в качестве reverse proxy на базе nginx

Вот и всё, описал все возможности. Когда искал информацию по этой панели, нашёл очень любопытное и свежее исследование по безопасности. Там прям бьют в колокола на тему того, какая эта панель небезопасная. Аргументы приводят следующие:
используется установка через bash скрипт
затираются существующие правила firewall на хосте во время установки, ставятся свои дефолтные
используется один и тот же дефолтный private key для всех установок cloudpanel

Если это всё, что там нашли, то я удовлетворён уровнем безопасности. Насколько претензии серьезные, судите сами. По мне, так это ерунда. Если хочешь безопасности, то установи пакеты сам, изучив bash скрипт, проверь и настрой firewall после установки (закрой доступ к админке по списку ip) и обнови сертификат для админки. Можно установить сразу от Let's Encrypt.

Был один момент, который не понравился. То ли это свежий баг, то ли особенность установки на Debian 11. По умолчанию каждый новый сайт создаётся с самоподписанным tls сертификатом. Но при этом в nginx стоит параметр:
ssl_stapling on;
Соответственно с ним nginx не проходит проверку конфига, когда в виртуальном хосте установлен недоверенный сертификат. В итоге после создания сайта nginx не перезапускается и ничего не работает. Я просто зашёл в /etc/nginx/nginx.conf и выключил этот параметр. После этого всё заработало и я выпустил уже нормальный сертификат для этого хоста от let's encrypt. Понравилось, кстати, что все конфиги на своих стандартных местах, легко читаются. При желании можно зайти и что-то подправить для более тонкой настройки.

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

Сайт / GitHub / Demo

#webserver #hosting_panel
​​Одна из особенностей Unix систем, которая меня сразу привлекла по сравнению с Windows, это наличие там CRON. По мне так это очень крутой, простой, удобный инструмент для управления периодическими задачами.

На своих серверах я привык все задачи писать в системный crontab, чтобы всё было в одном месте. Мне так удобнее управлять заданиями. Не надо проверять разные файлы. После планировщика Windows юниксовый cron очень понравился.

Сейчас на смену cron пришли systemd timers. Мне не особо нравится формат работы с ними, но приходится мириться и использовать, потому что всё больше софта по умолчанию свои задачи хранит там. Timers предлагают более широкий функционал по сравнению с cron и более гибкие настройки. Так что надо привыкать и пользоваться. Для этого решил сделать для себя шпаргалку и сразу поделиться с вами.

Сначала поясню, что умеют таймеры из того, что не умеет cron. Например, запустить какую-то задачу через заданное время после какого-то события. Для cron такое событие, насколько мне известно, может быть только — @reboot. Таймер же может запуститься, например, через некоторое время после завершения работы какого-то сервиса, возможно тоже вызванного по таймеру.

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

Для каждого таймера systemd ведёт отдельный журнал, что удобно для отладки или анализа работы. Не надо грепать общий лог крона, или вообще системный лог, если по умолчанию cron не имеет отдельного журнала, как, например, в Debian. Я обычно это исправляю сразу же после установки системы.

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

Посмотреть список всех таймеров:
# systemctl list-timers --all
Только активных:
# systemctl list-timers
Более подробная информация:
# systemctl status *timer

Пример создания таймера, который выполняет команду df -h. Сначала создаём конфигурацию сервиса в файле /etc/systemd/system/mydf.service:

[Unit]
Description=Start df and log result in systemd journal
Wants=mydf.service

[Service]
Type=oneshot
ExecStart=/usr/bin/df -h

[Install]
WantedBy=multi-user.target

Запустим и проверим результат. По умолчанию, вывод пишется в журнал systemd.
# systemctl start mydf.service
# systemctl status mydf.service

После нескольких запусков журнал можно посмотреть вот так:
# journalctl -u mydf.service

Добавим задачу в планировщик, создав для неё минутный таймер в файле /etc/systemd/system/mydf.timer

[Unit]
Description=Log df results every minute
Requires=mydf.service

[Timer]
Unit=mydf.service
OnCalendar=*-*-* *:*:00

[Install]
WantedBy=timers.target

Запускаем таймер:
# systemctl start mydf.timer
Через несколько минут проверяем:
# journalctl -u mydf.service
Если лог очень большой, его имеет смысл ограничить:
# journalctl -S "5min ago" -u mydf.service
Формат systemd.time, в том числе и для таймеров, можно посмотреть в документации (сразу приведу шаблон DOW YYYY-MM-DD HH:MM:SS). Чаще всего при просмотре логов используется сокращение today или yesterday. То, что таймер пишет вывод в лог, удобно, но имейте ввиду, что за этим выводом стоит следить, если он большой.

Добавляем таймер в автозагрузку:
# systemctl enable mydf.timer

Удаляем из автозагрузки и останавливаем:
# systemctl disable mydf.timer
# systemctl stop mydf.timer

Примеры служб и таймеров удобно посмотреть в уже готовых системных, в директории /lib/systemd/system. Показательны примеры для apt-daily и apt-daily-upgrade. Там и зависимости, и запуск одного после другого. Ну и про документацию не забываем.

#systemd #terminal #linux
​​Ребята, я вам сейчас расскажу реальную тему. Знаю, как вы все любите Proxmox и заметки о нём. Как только выходит обновление, мне обязательно об этом пишут в личку или в чате.

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

Запросы (1, 2) на официальном форуме этой возможности висят от 2020 года с комментариями разработчиков о том, что когда-нибудь это будет сделано. Я поискал по этой теме информацию и там же на форуме видел, что работа над этим функционалом ведётся. Уже кое-что реализовано в виде cli команд для переезда виртуалок между разнородными серверами. Это будет часть нового функционала. Но окончательно обещают единое управление не раньше 2024 года.

Там же на форуме я нашёл ссылку на шикарный проект — https://cluster-manager.fr. Это менеджер кластеров и одиночных серверов. Сделано в виде приложения под Windows. Скачиваете, запускаете и добавляете все свои сервера и кластеры. Выглядит всё очень удобно и функционально.

Добавил пару серверов и потестил. Весь основной функционал работает. Само приложение шустрое. Управлять виртуалками даже одного сервера удобно. Это быстрее, чем заходить в веб интерфейс. Настройки все хранятся в json файле. Пароль не в открытом виде. Как зашифрован — не знаю. Пока добавил только свои тестовые сервера. Надо будет навести справки про эту панельку и немного погонять.

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

В общем, попробуйте. Мне очень понравилось. Странно, что раньше об этой панельки нигде не слышал.

#proxmox
Мне регулярно приходится писать различные метрики и разные иностранные слова, которые трудно запомнить, как писать правильно. Решил сделать для себя шпаргалку, распечатать её и повесить на стену, чтобы раз и навсегда решить этот вопрос. Запомнить я всё это никак не могу. Постоянно приходится проверять правильное написание.

Скорости передачи данных:
килобиты в секунду — кбит/с (kbps, kbit/s или kb/s)
мегабиты в секунду — Мбит/с (Mbps, Mbit/s или Mb/s)
гигабиты в секунду — Гбит/с (Gbps, Gbit/s или Gb/s)
❗️Сокращение килобит всегда пишется с маленькой буквы

Размеры данных:
Килобайт — КБ, Кбайт (KB)
Мегабайт — МБ, Мбайт (MB)
Гигабайт — ГБ, Гбайт (GB)
❗️Сокращение килобайт пишется с большой буквы, а килобайт в секунду — кБ/с

Грамматика:
- Трафик, хотя traffic
- Приоритет, но приоритизация
- Файрвол, брандмауэр
- Децибел
- Кеш, хеш

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

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

#разное
​​Когда настраиваете сервер или кластер PostgreSQL, перед тем, как нагрузить его рабочей нагрузкой, хочется как-то протестировать его и посмотреть, как он себя поведёт под нагрузкой или в случае каких-то ошибок. Особенно это актуально, если у вас ещё и мониторинг настроен. Хочется на деле посмотреть, как он отработает.

Сделать подобное тестирование с имитацией рабочей нагрузки и ошибок можно с помощью утилиты Noisia. Она написала на Gо, есть в виде бинарника или rpm, deb пакета. Забрать можно из репозитория. Либо запустить через Docker.

Автор утилиты подробно рассказывает про принцип работы и функциональность на онлайн вебинаре — Noisia - генератор аварийных и нештатных ситуаций в PostgreSQL (текстовая расшифровка). Там описаны основные возможности и параметры для использования.

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

# docker run --rm -ti lesovsky/noisia:latest noisia \
--conninfo="postgres://postgres:pass@10.20.1.56:5432/dbname" \
--failconns

Не забудьте настроить удалённые подключения к базе, либо запускайте нагрузку локально, не через docker.

Запуск транзакций, которые завершаются откатом (ROLLBACK), то есть заканчиваются с ошибкой. За ними обычно тоже следят (pg_stat_database.xact_rollback).

# docker run --rm -ti lesovsky/noisia:latest noisia \
--conninfo="postgres://postgres:pass@10.20.1.56:5432/dbname" \
--rollbacks \
--rollbacks.min-rate=10 \
--jobs=3 \
--duration=20

Ну и так далее. Все параметры можно посмотреть в help:

# docker run --rm -ti lesovsky/noisia:latest noisia --help

#postgresql
Знакома ситуация? У меня, к сожалению, регулярно такое случается. Залипнешь вечером на какой-то проблеме, и пока не решишь, не можешь лечь спать. Буквально вчера, точнее сегодня, лёг спать под утро.

Хостер поздно вечером прислал тикет с абузом от РКН на один из сайтов заказчика. Сайт на битриксе, но сильно переписанный. Там всякие форумы, блоги, доски объявлений по узкой тематике. Регистрация для всех открыта, вот кто-то зарегистрировался и начал ссылки на казино вешать.

Я всё удалил, учётки заблокировал. Чтобы за ночь нового не понаписали, стал разбираться, как временно закрыть регистрацию и включить премодерацию. Движок переделан, настройки через битрикс не работают. В общем всю ночь просидел, лёг в 4 часа, частично разобрался.

Самое главное, что большого смысла в этом не было. РКН обычно шлёт абузы на старые ссылки, которые 3-4 недели назад могли сделать. То есть разбираться ночью мне не было большого смысла. Просто любопытно стало решить задачу.

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

📌 Больше всего просмотров:
◽️Серия вебинаров: "Zabbix с нуля до короля" (7918)
◽️Веб клиент для почты Cypht (7476)
◽️Подборка материалов на тему VOIP (7268)

📌 Больше всего комментариев:
◽️OPNsense vs pfSense (167)
◽️Мои мысли на тему подбора работы (122)
◽️Шутка и мои мысли на тему ChatGPT (74)

📌 Больше всего пересылок:
◽️Серия вебинаров: "Zabbix с нуля до короля" (460)
◽️Запрет скана портов с помощью iptables (443)
◽️Описание утилиты netcat (434)
◽️Лекции по курсу "Компьютерные сети", Климанов М.М. (406)

📌 Больше всего реакций:
◽️Мои мысли на тему подбора работы (284)
◽️Где и как я работал (235)
◽️Плюсы и минусы фриланса (193)
◽️Мемчик из комментария на сайте (178)

#топ
🖥️ Приглашаем на вебинар «CommuniGate Systems: российская платформа корпоративных коммуникаций» ‼️

🗓 4 апреля в 10:00 (Мск)

О чем будем говорить:
🔹 Возможности и преимущества платформы CommuniGatePro. Все корпоративные коммуникации в формате одного окна.
🔹 Варианты миграции с зарубежных решений. Необходимые ресурсы и разработанные утилиты миграции.
🔹 Универсальные коммуникационные клиенты Samoware. Экосистема приложений для корпоративных пользователей.
🔹 Ближайшие релизы и планы развития. Чаты 2.0, ВКС в составе платформы.
🔹 Практический опыт. Успешные кейсы внедрения в различных отраслях экономики.
🔹 Демонстрация новых возможностей платформы
 
Спикеры:
Евгений Кривошеев, руководитель направления, Галэкс
Наталья Асташкина, руководитель направления по работе с партнерами CommuniGate Systems
Владимир Бабаев, ведущий инженер CommuniGate Systems
Андрей Шкаруба, руководитель отдела внедрения, Галэкс Сервис

Участие в вебинаре бесплатное.
👉 Регистрация: https://www.galex.ru/lp/migraciya/
​​▶️ Канал DevOpsConf в пятницу загрузил записи выступлений с летних конференций DevOpsConf и TechLead Conf, которые прошли в июне. Посмотрите список, наверняка что-то будет интересно. Я себе в закладки добавил несколько выступлений, которые посмотрю:

Организация сложных алертов
Эксплуатация без k8s
От DevOps к Platform Engineering (впервые сылшу этот термин)
DevOps в Юле: сломить устоявшееся
Проект "Serenity" — единый мониторинг
DevOps спит, Gitlab CI работает
Ansible плох? Нет, просто готовьте его правильно!
IaC на Ansible. Как построить понятную инфраструктуру
Почему ваши DevOps — эникейщики
МК "Grafana as code

Обычно такие вещи слушаю на скорости 1,5, когда куда-то иду или еду. Если что-то покажется интересным, законспектирую тезисы и поделюсь.

#видео #devops
​​Ребята, час ИКС всё ближе. Яндекс повторно сделал рассылку на тему того, что с 17 апреля почта для домена станет платной для всех аккаунтов, где больше 3-х почтовых ящиков. Надо срочно переезжать, кто не хочет платить. Откладывать нельзя, так как предвижу какие-то ограничения на скачивание почты из ящиков из-за того, что переезжающих будет много и скачать быстро свою почту не получится.

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

📌 Могу порекомендовать следующие варианты, от простого к сложному.

1️⃣ Аналогичный сервис от mailru — biz.mail.ru. Пару-тройку месяцев назад я заходил туда и явно видел информацию о том, что есть бесплатный тариф. Сейчас вообще не вижу никакой информации о тарифах и тем более о том, что есть бесплатная версия. Тем не менее видел в отзывах информацию, что почта всё ещё бесплатна. Подтвердите или опровергните те, кто наверняка знают и пользуются этой почтой бесплатно.

2️⃣ Купить любой виртуальный хостинг у крупного хостера. С виртуальным хостингом почти всегда в комплекте идёт возможность создавать и пользоваться почтовыми ящиками. Это самый дешёвый вариант для небольших ящиков, так как оплата на таких тарифах обычно идёт за занимаемое место, а не количество ящиков. Если вы настроите почтовый сервер у себя локально, а этот сервис будете использовать только для пересылки, то вам хватит самого дешёвого тарифа за 100-150 р.

3️⃣ Купить VPS или дедик и развернуть там почтовый сервер из конструктора. Сейчас очень много готовых решений, где вручную нужно будет только DNS записи настроить, а всё остальное будет развёрнуто автоматически. Вот моя публикация с подборкой таких решений. В ней не хватает Mail-in-a-Box, которую обозревал позже. Мне очень интересен сервер Tegu, который хочу развернуть и попробовать. Надеюсь, получится на этой неделе. Напишу статью после тестов.

4️⃣ Настроить свой собственный сервер, например, на базе postfix. Моя свежая и подробная статья. Если внимательно повторите написанное, то всё получится. Получил много подтверждений того, что в статье нет ошибок и по ней получается настроить работающий полнофункциональный почтовый сервер с базовой защитой от спама и веб интерфейсом.

5️⃣ Если вам нужен сервер только для отправки почты с сайта или для рассылок, по советую специализированные решения для этого: Postal и Cuttlefish.

6️⃣ Для админов Windows отдельно порекомендую простой, надёжный и бесплатный сервер hMailServer.

Напомню, что перенести почту можно с помощью программ imapsync и imapcopy. Либо самый простой вариант — в любом imap клиенте подключить 2 почтовых ящика и перенести письма из одного в другой. Рекомендую для этого Thunderbird.

Расскажите, куда сами переехали или будете переезжать. Может я забыл какой-то простой и удобный вариант?

#mailserver