Search
Write a publication
Pull to refresh
3
0
Дмитрий Олегович @k3NGuru

DevOps

Send message

Умная хрущёвка на максималках

Reading time10 min
Views63K
Моя статья про проводной умный дом была популярной на Хабре (159 тысяч просмотров) — в ней я описал положительный опыт от идеи до реализации умного дома в новостройке.

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

  1. мониторинг приборов учета;
  2. датчики контроля: домофона, температуры, шума, открытия дверей, ...;
  3. единая панель управления умным домом;
  4. подъездное видеонаблюдение;
  5. настенный дисплей для текущего времени и температуры за окном;
  6. освещение в квартире, включая кнопку «выключить всё»;
  7. удаленное обесточивание квартиры;
  8. удаленное перекрытие воды.


3D модель этой двухкомнатной квартиры 47 кв.м, которая была автоматизирована, нарисованная в Sweet Home 3D
Хрущёвка в полном фарше

Удаленка. еще одна история развертывания VPN для работы в самоизоляции

Reading time3 min
Views7K
Очередная история о том, как нужно было быстро развернуть удаленный доступ для небольшой компании, которая уходила на самоизоляцию, но не могла себе позволить не работать дальше.
Читать дальше →

Собираем DIY шлюз для Zigbee устройств

Reading time6 min
Views126K

Вступление


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


image


Наибольший толчок развития DIY шлюзам дал проект zigbee2mqtt. На момент написания заметки в проекте реализована поддержка 785 устройства от 140 производителей.


image


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

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

Mikrotik firewall filter: скрипт генерирующий основу для политики фильтрации

Reading time14 min
Views13K
Кто хоть раз писал политику фильрации firewall знает, что это дело не простое и сопряжено с кучей ошибок, когда колличество сетевых зон больше 2-х. В этой сутации вам поможет скрипт из этой статьи.
Читать дальше →

Перенос всех баз данных MS SQL Server на другую машину

Reading time8 min
Views23K
Недавно возникла необходимость переноса всех БД (>50 на одном экземпляре SQL Server) из dev-окружения на другой экземпляр SQL Server, который располагался на другом железе. Хотелось минимизировать ручной труд и сделать всё как можно быстрее.

Disclaimer


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

Всё, что написано дальше относится только к этой ситуации, но вы можете без особых усилий допилить их под себя (свои условия).

В скриптах не используются новомодные STRING_AGG и прочие приятные штуки, поэтому работать всё должно начиная с SQL Server 2008 (или 2008 R2, не помню где появилось сжатие бэкапов). Для более старых версий нужно убрать WITH COMPRESSION из команды бэкапа, но тогда разницы по времени с копированием файлов может уже и не быть.

Это не инструкция — «как надо» делать такой перенос. Это демонстрация того, как можно использовать метаданные в dynamic SQL.
Читать дальше →

Руководство по CI/CD в GitLab для (почти) абсолютного новичка

Reading time13 min
Views411K

Или как обзавестись красивыми бейджиками для своего проекта за один вечер ненапряжного кодинга


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


результаты


В статье будет рассмотрена базовая настройка непрерывной интеграции и поставки для проекта библиотеки классов на .Net Core в GitLab, с публикацией документации в GitLab Pages и отправкой собранных пакетов в приватный фид в Azure DevOps.


В качестве среды разработки использовалась VS Code c расширением GitLab Workflow (для валидации файла настроек прямо из среды разработки).

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

Унифицируй это: как Lamoda делает единообразными свои Go сервисы

Reading time14 min
Views19K

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


Казалось бы, насколько сильно может отличаться один микросервис, который ходит в базу данных, от другого микросервиса, который ходит в соседнюю базу данных? Например, одна команда использует Go 1.9, glide, стандартный database/sql и одну структуру проекта, а в это же время другая команда использует Go 1.13, modules, sqlx и, конечно же, другую структуру проекта.


Когда один микросервис в компании отличается от другого, а он, в свою очередь, отличается от третьего — это замедляет разработку. А медленная разработка — это убытки повод для оптимизации.


Меня зовут Алексей Партилов, я техлид команды web-разработки в компании Lamoda. В этой статье я расскажу, как мы справляемся с разношерстностью около 40 наших микросервисов на Go. Статья будет полезна разработчикам, которые только вливаются в Go и не знают, с чего начать более сложный проект, чем “helloworld”.


image

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

Экстренный VPN сервер Openconnect с двухфакторной авторизацией на Centos 8

Reading time6 min
Views43K

Предисловие


Вечерком воскресенья в середине марта мне поступил телефонный звонок, суть которого заключалась а том, что 200+ человек не приедут в понедельник в офис, а переводятся на «удалёнку». Фраза: одни на «удаленку», а админы на «продлёнку», завертелась у меня в голове.

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

Bare-Metal Provisioning своими руками, или Автоматическая подготовка серверов с нуля

Reading time12 min
Views9.3K
Привет, я Денис и одно из моих направлений деятельности – разработка инфраструктурных решений в X5. Сегодня хотел бы поделиться с вами о том, как можно на базе общедоступных инструментов развернуть автоматическую систему подготовки серверов. На мой взгляд, это интересное, простое и гибкое решение.


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

Бесплатный прокси-сервер для предприятия с доменной аутентификацией

Reading time6 min
Views66K


pfSense+Squid с фильтрацией https + Технология единого входа (SSO) с фильтрацией по группам Active Directory

Краткая предыстория


На предприятии возникла необходимость во внедрении прокси-сервера с возможностью фильтрации доступа к сайтам(в том числе https) по группам из AD, чтобы пользователи не вводили никаких дополнительных паролей, а администрировать можно было с веб интерфейса. Неплохая заявочка, не правда ли?

Правильным вариантом ответа было бы купить такие решения как Kerio Control или UserGate, но как всегда денег нет, а потребность есть.

Тут то к нам и приходит на выручку старый добрый Squid, но опять же — где взять веб интерфейс? SAMS2? Морально устарел. Тут то и приходит на выручку pfSense.

Описание


В данной статье будет описан способ настройки прокси-сервера Squid.
Для авторизации пользователей будет использоваться Kerberos.
Для фильтрации по доменным группам будет использоваться SquidGuard.

Для мониторинга будет использован Lightsquid, sqstat и внутренние системы мониторинга pfSense.
Также будет решена частая проблема, связанная с внедрением технологии единого входа (SSO), а именно приложения, пытающиеся ходить в интернет под учеткой компа\своей системной учеткой.
Читать дальше →

Laravel+Docker+Gitlab. С чего начать

Reading time19 min
Views41K
Я обычно всегда обходился без докера и думал, что докер нужен только для больших проектов в больших компаниях. Но однажды я увидел как работает докер в паре с гитлабом у моего товарища и понял, что мне все таки стоит его изучить. Однако, как обычно это бывает, одной подходящей статьи я не нашел — они были либо слишком сложные, либо не полные, либо подразумевали, что вы все знаете само собой. Мне пришлось долго искать различные источники, соединять все это вместе и в итоге у меня получилось сделать простенький проект и CI/CD для него.

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

Итак, для реализации проекта нам понадобится аккаунт gitlab и удаленный сервер с виртуализацией KVM или XEN.

Часть 1. Локальная машина


На локальной машине необходимо установить docker.

Замечание
Тут небольшое отступление. Docker можно поставить как на Linux системах (как Ubuntu, например), так и на Windows и MacOS. По поводу macos я ничего сказать не могу, а вот установка под Windows не самая хорошая идея для начинающего. Как минимум из-за того, что все мануалы и документации написаны для linux систем. Так и из-за того, что можно нажить проблем с доступом к различным папкам и файлам. Также докер конфликтует с виртуальной машиной VirtualBox. Поэтому проще и быстрее будет сделать виртуальную машину с Ubuntu и работать под ней

Что делает Free API Московской биржи в Google Таблицах

Reading time3 min
Views109K

Количество частных инвесторов на Московской бирже удвоилось за последний год и составило 3,86 млн: за 2019 счета на Мосбирже открыли 1,9 млн человек. Санкт-Петербургская биржа, специализирующаяся на торгах акциями иностранных компаний, в прошлом году зафиксировала трехкратный прирост счетов – с 910 000 до 3,06 млн шт.



Это означает, что на рынок пришло почти 2 млн новичков, которые никогда не занимались трейдингом и не использовали специализированный софт для торгов и учета позиций.

Google Таблицы и ИСС Мосбиржи

Создание отказоустойчивой ИТ инфраструктуры. Часть 1. Подготовка к развёртыванию кластера oVirt 4.3

Reading time19 min
Views27K

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

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

Делаем Windows Server безопаснее

Reading time5 min
Views34K
В этой статье автор хотел бы дать пару хороших советов по администрированию серверов на Windows, которые по какой-то причине не нашел в интернете.

Следуя этим принципам вы сильно обезопасите свои серверы под управлением Windows как в локальных средах, так и в публичных.

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

Telegram-бот для управления инфраструктурой

Reading time26 min
Views75K
image

По мотивам статьи Телеграмм-бот для системного администратора (статья не моя, я только прочитал) захотел поделиться опытом создания Telegram-бота на PowerShell для управления серверами приложений. Будет текст, код и немножко картинок. Конструктивная критика приветствуется ( главное чтобы не звучало «зачем на PowerShell? Надо было на perl» ).

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

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

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

  • Простота добавления/изменения задач в Telegram-бот
  • Многозадачность или параллелизация
  • «Понятный» интерфейс управления
  • Хоть какая-то безопасность
Читать дальше →

Мои поиски физической панели управления умным домом

Reading time5 min
Views55K

Довольно давно у меня появилась мысль установить управляющую панель, расположенную рядом с входной дверью внутри квартиры/дома.


Существует несколько вариантов реализации этой задумки:


  • сенсорная панель оператора ПЛК;
  • планшет;
  • сенсорный дисплей, подключенный к микрокомпьютеру.


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

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

Windows: узнаём, кто где залогинен

Reading time5 min
Views99K

— Ой, у меня ничего не работает, помогите!
— Не переживайте, сейчас всё исправим. Назовите имя компьютера…
(классика жанра из звонков в техподдержку)

Хорошо, если у вас есть инструмент а-ля BgInfo или ваши пользователи знают про шорткат Windows+Pause/Break и умеют его нажимать. Встречаются даже редкие экземпляры, которые успели выучить имя своей машины. Но часто у звонящего вдобавок к его основной проблеме появляется вторая: узнать имя/IP-адрес компьютера. И нередко на решение этой второй проблемы уходит куда больше времени, чем первой (а надо было всего лишь обои поменять или вернуть пропавший ярлык :).
А ведь намного приятнее услышать что-то вроде:
— Татьяна Сергеевна, не беспокойтесь, уже подключаюсь…

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

Разбор настройки ELK 7.5 для анализа логов Mikrotik

Reading time13 min
Views36K
Давно была мысль посмотреть, что можно делать с ELK и подручными источниками логов и статистики. На страницах хабра планирую показать практический пример, как с помощью домашнего мини-сервера можно сделать, например, honeypot с системой анализа логов на основе ELK стека. В этой статье расскажу про простейший пример анализа логов firewall с помощью стека ELK. В дальнейшем хотелось бы описать настройку окружения для анализа Netflow трафика и pcap дампов инструментом Zeek.



Если у вас есть публичный IP-адрес и более-менее умное устройство в качестве шлюза/файрволла, вы можете организовать пассивный honeypot, настроив логирование входящих запросов на «вкусные» TCP и UDP порты. Под катом пример настройки маршрутизатора Mikrotik, но если у вас под рукой маршрутизатор другого вендора (или какая-то ещё security система), нужно просто немного разобраться с форматами данных и вендоро-специфичными настройками, и получится тот же результат.

Disclaimer


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

Проект запускается из docker-compose файла, соответственно развернуть своё подобное окружение очень просто, даже если у вас под рукой маршрутизатор другого вендора, нужно просто немного разобраться с форматами данных и вендоро-специфичными настройками. В остальном я постарался максимально подробно описать все нюансы, связанные с конфигурированием Logstash pipelines и Elasticsearch mappings в актуальной версии ELK. Все компоненты этой системы хостятся на github, в том числе конфиги сервисов. В конце статьи я сделаю раздел Troubleshooting, в котором будут описаны шаги по диагностике популярных проблем новичков в этом деле.
Читать дальше →

1С — Добро и зло. Расстановка точек в холиварах вокруг 1С

Reading time20 min
Views91K

image


Друзья и коллеги, в последнее время на Хабре участились статьи с хейтом в адрес 1С, как платформы для разработки, и выступлениями ее защитников. Эти статьи обозначили одну серьезную проблему: чаще всего, критики 1С критикуют ее с позиции "не осиливших", ругая проблемы, которые де-факто, легко решаются, и, напротив, не задевая проблемы, которые действительно важны, стоят обсуждения и не решаются вендором. Полагаю, что имеет смысл провести трезвый и взвешенный обзор платформы 1С. Того, что она умеет, того что она не умеет, того что она должна бы делать, но не делает и, на сладкое — то, что она делает на ура, а ваши разработчики на %technology_name% будут делать стопицот лет, выкинув на ветер не один годовой бюджет.


В результате, вы, как руководитель или архитектор сможете получить четкое понимание — для какой задачи вам будет выгодно взять 1С, и где ее надо выжигать каленым железом. Как разработчик мира "не 1С" вы сможете посмотреть, а что же там такого в 1С есть из-за чего сыр-бор. А как разработчик 1С — сможете сравнить свою систему с экосистемами других языков и понять свое расположение в системе координат софтверной разработки.


Под катом — масса толстых набросов на 1С, на критиков 1С, на Java, .NET и вообще… Вентилятор заправлен, добро пожаловать!

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

Information

Rating
Does not participate
Location
Кемерово, Кемеровская обл., Россия
Date of birth
Registered
Activity