Search
Write a publication
Pull to refresh
3
0.5

User

Send message

Как я перестал пользоваться консолью (почти)

Reading time3 min
Views6.9K

Я достаточно давно, уже больше 18 лет (капец я уже старый :`( ), использую консоль. Пробовал разные оболочки: bash, sh, zsh, ksh, но остановился на тех, что стоят по умолчанию на системах. Пожалуй, это моя лень, перенастраивать оболочки и терминалы под себя - никогда не было моим любимым занятием. А ещё меня всегда бесило редактирование конфигов: ок, если открыл, нашел нужный кусок, поправил, закрыл, перезагрузил сервис, а вот если: открыл, нашел нужный кусок, поправил, закрыл, перезагрузил сервис, а оно не работает... и опять: открыл, нашел нужный кусок, поправил, закрыл, перезагрузил сервис и так пока не заработает, N-ое количество раз.

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

Как вы наверное уже поняли - я ленивый админ, который любит красивенькие (и не очень) GUI. Поэтому, начав плотно работать с HAProxy, мне быстро надоело постоянно править конфиг на нескольких серверах. И, не обнаружив на просторах интернета ничего подходящего, я решил написать свой (ага, очень ленивый - 5 лет уже закончить не могу).

Общаясь с одним из пользователей Roxy-WI, я спросил: “А зачем тебе оно вообще?”, в ответ получил хорошую фразу: “Чтобы в консоль не лазить”. И я задумался. Действительно, после создания пользователя для подключения сервера к Roxy-WI (или можно без этого шага, если root нам не страшен) больше нет необходимости заходить на сервер. 

Смотрите сами.

Допустим, мы захотели развернуть новый HA кластер с HAProxy/Nginx/Apache на новых серверах, и нам для этого надо всего-лишь заполнить пару полей и выбрать пару галочек:

Читать далее

Безопасность и шифрование. Element/Matrix — достойная альтернатива Slack и Mattermost

Reading time6 min
Views45K

Сегодня многие ищут более удобный, дешёвый и безопасный вариант для корпоративных коммуникаций. К сожалению, Slack, Microsoft Teams и другие проприетарные решения не удовлетворяют требованиям по безопасности, а за коммерческие лицензии нужно платить. В качестве альтернативы часто смотрят в сторону бесплатного опенсорсного Mattermost. Но есть вариант получше.
Читать дальше →

Полноценный Kubernetes с нуля на Raspberry Pi

Reading time12 min
Views32K


Совсем недавно одна известная компания объявила, что переводит линейку своих ноутбуков на ARM-архитектуру. Услышав эту новость, я вспомнил: просматривая в очередной раз цены на EC2 в AWS, обратил внимание на Graviton'ы с очень вкусной ценой. Подвох, конечно же, был в том, что это ARM. Тогда мне и в голову не приходило, что ARM — это довольно серьезно…

Для меня эта архитектура всегда была уделом мобильных и прочих IoT-штучек. «Настоящие» серверы на ARM — как-то необычно, в чем-то даже дико… Однако новая мысль засела в голову, поэтому в один из выходных решил проверить, что вообще можно сегодня запустить на ARM. И для этого решил начать с близкого и родного — кластера Kubernetes. Причем не просто какого-то условного «кластера», а всё «по-взрослому», чтобы он был максимально таким же, каким я привык его видеть в production.

По моей задумке, кластер должен быть доступным из интернета, в нём должно выполняться некоторое веб-приложение и еще должен быть как минимум мониторинг. Для реализации этой идеи понадобится пара (или больше) Raspberry Pi не ниже модели 3B+. Площадкой для экспериментов могла бы стать и AWS, но мне были интересны именно «малины» (которые всё равно стояли без дела). Итак, мы развернём на них кластер Kubernetes с Ingress, Prometheus и Grafana.
Читать дальше →

Оптимизация Dockerfile для уменьшения размера и быстрой сборки образов

Reading time6 min
Views19K

У каждого образа Docker есть свой размер, который он занимает на жёстком диске. Порой бывает так, что контейнер с запущенным приложением на языке программирования Go, который содержит в себе всего лишь одну строчку с выводом фразы «Hello, world!» может занимать сотни Мб, в то время как существуют образы содержащие легковесные ОС весом всего лишь 5 Мб (alpine).

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

Читать далее

Как мы обновили старый кластер Elasticsearch на 3 ПБ без простоев. Часть 2 — два согласованных кластера

Reading time7 min
Views2.4K

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

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

Читать далее

Railway и Render, как замена бесплатного тарифа Heroku

Reading time4 min
Views15K

Как многим известно Heroku с 28.11.2022 прекращает поддержку бесплатных аккаунтов. И у меня,  как и у других пользователей бесплатного аккаунта, возник вопрос: «Куда же теперь переезжать?» Я нашёл два подходящих сервиса, которые, на мой взгляд, могли бы  заменить Heroku. Так как я не увидел статей на Habr на тему, куда можно мигрировать с Heroku, то решил написать небольшую инструкцию по переезду. Надеюсь кому-то она будет полезной.

Читать далее

Разбираемся с Docker: как создаются образы

Reading time13 min
Views55K

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

Читать далее

Как организовать видеотрансляцию из операционной

Reading time2 min
Views2.5K

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

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

Итак, задача состоит в том, чтобы организовать потоковое вещание из операционной в отдельное помещение. Для этого было решено применить схему на базе двух кодирующих устройств: Magewell Ultra Stream для потокового вещания, и Magewell Pro Convert NDI для кодирования потока по сети AV-over-IP. Схема выглядит примерно так:

Читать далее

Насколько круто иметь свой сервер в комнате

Reading time6 min
Views132K

Некоторые олды часто вспоминают эпоху до смартфонов, когда в студенческие времена или в школе у них был любимый настольный компьютер. Он стоял прямо в комнате, рядом с кроватью, и работал как личный ассистент в режиме 24/7: играл фоновую музыку (со специальным плейлистом, когда в гости приходили девушки), показывал фильмы, будил уведомлением из аськи или ирки, скачивал сайты ночью по диалапу и т. д.

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

Testcontainers: тестирование с реальными зависимостями

Reading time8 min
Views27K

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

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

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

Традиционно интеграционное тестирование представляет собой сложный процесс, который может включать несколько этапов.

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

Читать далее

Генерация статических сайтов с Hugo

Reading time7 min
Views24K

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

Читать далее

Выгрузка HDFS FSImage в Hive для мониторинга и аналитики: руководство к действию

Reading time8 min
Views5.5K

Привет, Хабр! Меня зовут Борис Мурашин, я системный архитектор развития платформы больших данных в Х5 Tech. В статье делюсь своим опытом работы с кластером Hadoop: рассказываю, как с помощью сторонней библиотеки мне удалось организовать оперативную выгрузку образа файловой системы HDFS в Hive. И не только про это. Надеюсь, что мои инструкции помогут другим сэкономить массу времени в работе с кластером.

Сколько места на диске используют таблицы Hive в HDFS? В каких из них много мелких файлов? Какая динамика у этих цифр? Что происходит в домашних каталогах пользователей? Кто прямо сейчас создаёт таблицу с партиционированием по timestamp и скоро «уложит» нэймноду по GC pause? Давайте разбираться.

Читать далее

Битва брокеров сообщений: RabbitMQ, Kafka, AWS SNS/SQS

Reading time11 min
Views30K

Если вы работаете с вебом, вы обязательно столкнётесь с брокерами сообщений. Они бывают разные, но чаще остальных встречаются Kafka, RabbitMQ и AWS SNS/SQS. У каждого из них есть свои особенности, плюсы и минусы — выбирать брокер нужно под свою задачу. 

О том, как сделать правильный выбор, рассказали эксперты из команды курса «Go-разработчик» Яндекс Практикума: 

Читать далее

Автономный LTE роутер своими руками | Часть 2 – Логистика и сборка платы

Level of difficultyMedium
Reading time9 min
Views12K

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

Продолжаем продолжать

Красота в консоли

Reading time4 min
Views22K

Если верить статистике MacOS то топовые приложения которые я использую для работы это Chrome, VS Code, iTerm и VK Teams. При этом в консоли я провожу от часа до трех ежедневно. На самом деле время в терминале больше, потому что часть того что трекается как VS Code тоже является временем работы в консоли, только встроенной в VS Code. Поэтому консоль хочется сделать удобнее и красивее. Особенно этой поздней осенью. Этими красивостями и удобностями и хочется поделиться. И не просто поделится, а что бы с красивыми картинками, некоторые из которых были бы не совсем статичны. Ну или совсем не статичны. Это как кому нравится.

Читать далее

Приручение черного дракона. Этичный хакинг с Kali Linux. Часть 7. Пост-эксплуатация. Закрепление в системе

Reading time4 min
Views13K

Приветствую тебя, дорогой читатель, в седьмой части серии статей «Приручение черного дракона. Этичный хакинг с Kali Linux».

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

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

Читать далее

Опенсорс учёный: 15 полезных инструментов с искусственным интеллектом и машинным обучением

Reading time13 min
Views16K

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

Неудивительно, что open source с каждым годом завоевывает все большую популярность и начинает преобладать даже в корпоративном секторе, где традиционно доминировало проприетарное ПО. Согласно опросу, проведенному Red Hat среди почти 1300 ИТ-руководителей крупнейших компаний мира, свыше 80% предприятий планируют увеличить использование enterprise-технологий с открытым исходным кодом в ближайшие два года.

В этой статье рассмотрим 15 проектов с открытым исходным кодом, которые на наших глазах меняют мир искусственного интеллекта и машинного обучения. Некоторые из них — просто программные пакеты на основе AI/ML алгоритмов, другие — полнофункциональные фреймворки или платформы для машинного обучения. Но каждый из представленных ниже инструментов достоин внимания разработчика, интересующегося перспективными технологиями.

Читать далее

Kubernetes + Jenkins: как использовать вместе

Reading time7 min
Views12K

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

Читать далее

Укрощаем одноглазого змея. Разбираемся с WireGuard и делаем свой умный VPN

Reading time29 min
Views396K

Забавная ситуация: сайтов и сервисов, доступных только через VPN, все больше, но при этом многие российские компании закрывают доступ из-за границы. В результате приходится целыми днями теребить ползунки «вкл-выкл», что утомительно. Я расскажу, как с помощью магии маршрутов и WireGuard, решить эту проблему и сделать «умный» VPN, который не надо отключать.


Если ты пользуешься VPN, то и сам наверняка сталкиваешься с блокировками зарубежного трафика. К примеру, могут не открываться pochta.ru, leroymerlin.ru, rt.ru, avito.ru.


Получается мем.



Каждый с этим борется как может. Например, на устройствах Apple родными средствами можно настроить автоматизацию, которая будет запускать VPN, когда открываешь определенные приложения (например, Twitter), а когда выходишь из них — выключать обратно. Но это костыль, а хочется все сделать красиво, да еще и прокачать навык работы с сетью.


Поэтому мы сейчас попробуем «включать VPN чуть-чуть».

Читать дальше →

Продвинутые принципы безопасности в Kubernetes

Reading time6 min
Views3.4K

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

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

В Kubernetes мы продумываем защиту с разных сторон. Например, мы должны защищать хост и его компоненты, а также обеспечить безопасность на этапе сборки, развертывания или выполнения. У каждого аспекта безопасности есть свои методы и стандартные рекомендации для Kubernetes. Безопасность должна обеспечиваться на разных уровнях — код, кластер, контейнер, облако. В этой статье мы рассмотрим основные методы обеспечения безопасности в Kubernetes.

Читать далее

Information

Rating
2,068-th
Registered
Activity