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

    image

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

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

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

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

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

      Всех с прошедшим праздником. Данная тема является более лучшей версией того, что я писал в далеком 2016 тут.

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

      Закидываем скрипт в Mikrotik, меняем BotID и ChatID на свои и создаем на него schedule. Ставим параметр «Start Time» на startup (Запуск скрипта при старте.)
      «Interval»: 00:00:00
      В остальном все как и было.
      Читать дальше →
    • Универсальное ТЗ для Wi-Fi, с пояснениями

        ТЗ должно быть простым, понятным и проверяемым


        Вы такое видели?

        Каких только ТЗ я не встречал за 12 лет в этой теме. Классические пункты — это “бесшовный роуминг” и “устойчивое 100% покрытие всей площади”. Понятно, что все мы хотим прекрасной связи. Какими же словами описать то, что мы хотим, чтобы это можно было адекватно проверить?

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

        Как в значке Wi-Fi три изогнутых линии, основных пунктов тоже будет три.



        Тем, кто так или иначе связан с Enterprise Wi-Fi и не только, будет интересно.
        Читать дальше →
      • Автоматизация Для Самых Маленьких. Часть 1.1. Основы виртуализации

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

          В данной статье мы затронем (или попытаемся затронуть) вопросы: а как собственно происходит виртуализация сетевых функций, как реализован backend основных продуктов, обеспечивающих запуск и управление VM, а также как работает виртуальный свитчинг (OVS и Linux bridge).

          Тема виртуализации широка и глубока, объяснить все детали работы гипервизора невозможно (да и не нужно). Мы ограничимся минимальным набором знаний необходимым для понимания работы любого виртуализированного решения, не обязательно Telco.



          Содержание


          • Введение и краткая история виртуализации
          • Типы виртуальных ресурсов — compute, storage, network
          • Виртуальная коммутация
          • Инструменты виртуализации — libvirt, virsh и прочее
          • Заключение




          Читать дальше →
          • +24
          • 16,1k
          • 7
        • LUA в nginx: слегка интеллектуальный firewall


            Данный пост является продолжением применения lua в nginx.

            Там обсуждалось кеширование в памяти, а тут lua будет использоваться для фильтрации входящих запросов в качестве этакого фаервола на nginx-балансере. Нечто подобное было у 2GIS. У нас свой велосипед :) В котором разделяем динамику и статику, стараемся учесть NAT и белый список. И, конечно же, всегда можно навернуть еще специфичной логики, что не выйдет при использовании готовых модулей.
            Данная схема сейчас спокойно и ненапряжно (практически не сказывается на использовании cpu) обрабатывает порядка 1200 запросов/сек. На предельные величины не тестировалось. Пожалуй, к счастью :)
            Читать дальше →
          • Мелкая питонячая радость #9: консольные приложения с человеческим лицом

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


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


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


              image

              Читать дальше →
              • +31
              • 9,1k
              • 7
            • Советские мечты о будущем



                Помните очаровательного котика, которые чихал в заставке советского мультфильма? Мы помним, и нашли его — вместе с ворохом другой рисованной фантастики. В детстве она пугала и обескураживала, поскольку поднимала серьезные, взрослые темы. Настала пора пересмотреть старые мультфильмы, чтобы узнать, о каком будущем мечтали в той стране.
                Читать дальше →
              • Web tools, или с чего начать пентестеру?

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

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

                  Читать дальше →
                  • +46
                  • 22,4k
                  • 8
                • Почему мне не перезвонили?

                    Третьего дня один товарищ, вяло и лениво ищущий работу задорого, но при этом не желающий сдать экзамен на сертификат, интересовался вопросами, которые ранее интересовали и меня, и не только меня:

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

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

                    TL/DR — ничего нового, просто специалистов, которые платят за интернет и на ведущий технико-политический сайт ходят не за тем, чтобы их посылали в гугль искать незнакомые слова, встречают на первом этапе такие же специалисты по особо богатому внутреннему миру.
                    Читать дальше →
                  • Централизованное обновление сертификатов Let's Encrypt

                    letsencrupt server


                    Всем привет!


                    В этой статье я опишу как мы решали проблему централизованного обновления сертификатов Let's Encrypt и управления инфраструктурой с помощью ansible.


                    В нашем решении мы будем использовать:


                    • ansible
                    • rsync, rsyncd
                    • inotify, incron
                    • certbot
                    • nginx
                    Читать дальше →
                  • Установка центра сертификации на предприятии. Часть 3

                    • Tutorial
                    А вот и финальная третья часть нашей серии статей о центре сертификации на предприятии. Сегодня рассмотрим развертывание службы сертификатов на примере Windows Server 2016. Поговорим о подготовке контроллера домена, подготовке веб-сервера, установке корневого и издающего центров сертификации и об обновлении сертификатов. Заглядывайте под кат!

                    Читать дальше →
                    • +16
                    • 45,7k
                    • 1
                  • Музыкальная теория для гиков

                    • Перевод
                    imageКто-то считает музыку уделом избранных талантов, кто-то — набором физических закономерностей. Автор материала делает попытку объяснить знакомые каждому музыкальные термины, такие как тон, интервал, амплитуда, нота, октава, партитура, аккорд и так далее с помощью расчетов и технических обоснований. Ниже перевод оригинального текста.

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

                    Все остальные правила для меня выглядят совершенно, ну просто абсолютно произвольно. Почему у нас есть 12 нот, но для их обозначения применяются только 7 букв? Откуда взялись знаки при ключе? Почему ни одну статью по музыке в Википедии просто невозможно понять, не прочитав сперва все остальные?
                    Читать дальше →
                  • Atlassian JIRA Service Desk: краткая информация и некоторые хитрости для удобства использования (с помощью sil-скриптов и sql)

                      Всем привет!

                      Хочу вам кратко рассказать о продукте от Atlassian: JIRA Service Desk
                      Точнее, о некоторых хитростях, которые сильно улучшают удобство использования продукта, т.к. про сам плагин сейчас уже многие в курсе.

                      Для хитростей необходимо использовать скрипты в постфункциях, в данном случае это sil-скрипты плагина JJupin, и уметь написать и выполнить (в т.ч. из скрипта) sql-запросы к БД, где JIRA хранит свои данные. По использованию плагина кратко в другой статье: «Atlassian JIRA: настройка процесса обработки заявок с помощью плагина JJUPIN».

                      Читать дальше →
                    • GulpJS — фантастически быстрый сборщик проектов

                        Gulp.js это потоковый сборщик проектов на JS. Он использует Stream и действительно является очень быстрым. Для примера у меня есть проект где около тысячи stylus файлов, GruntJS нужно примерно 2.5 секунды на сборку и 2 секунды на обработку autoprefixer'ом. Gulp все это делает за 0.5 секунды выигрывая у GruntJS минимум в 4 раза.



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

                        В этой статье будет больше практики, мы соберем среду разработки фронтенда используя Jade и Stylus, запустим локальный сервер и подключим Livereload. Проект я выложил на Github, экспериментируйте.

                        Читать дальше →
                      • Пересмотренное руководство по Grunt для начинающих

                        • Перевод
                        • Tutorial
                        Еще в марте 2013 года я написал статью руководство по Grunt для начинающих и она стала самой посещаемой статьей на моем сайте. Я написал ее в то время, когда сам только начинал своё знакомство с Grunt, и это было скорее руководство для себя, чем для кого-то ещё. Теперь, спустя 18 месяцев, я почувствовал, что пришло время пересмотреть как я использую Grunt потому что сейчас я знаю гораздо больше, чем в то время.

                        Если вам не терпится просто увидеть код, то весь он есть на Github.
                        Читать дальше →
                      • Ansible — давайте попробуем

                        • Tutorial
                        Ansible — сравнительно молодая система управления конфигурацией, его история насчитывает чуть более трех лет. Но, несмотря на это, он стремительно и быстро ворвался в мир систем управления конфигурацией, потеснив Chef, Puppet и SaltStack.

                        Давайте посмотрим на него внимательно, чтобы понять, почему он так любим технарями.

                        Итак, чем же хорош ansbile:
                        • низкий порог входа;
                        • декларативный язык описания конфигурации;
                        • на управляемые узлы не нужно устанавливать никакого дополнительного ПО;
                        • просто написать дополнительный модуль.

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

                        • Tutorial
                        Ansible — yet another система управления конфигурациями. Отличительная особенность — простота, при большой гибкости. И это не просто слова — дальше я покажу на примерах несколько простейших операций и познакомлю вас с некоторыми “бест практис”.

                        Итак, у нас есть группы хостов:
                        WebServersG1 webserver1-g1, webserver2-g1
                        WebServersG2 webserver1-g2, webserver2-g2
                        WebServersProxy webserver-proxy1, webserver-proxy2
                        DataBase db1, db2
                        DataBaseSlave dbs1, dbs2
                        SomeServers someserver1, someserver2

                        Мы хотим подготовить все хосты к адекватной работе — установить необходимый набор софта (htop, zsh, vim, iftop, sudo, mc, tmux, wget), скопировать свои ключи и конфиги и поставить и сконфигурировать софт специфичный для этого сервера.
                        Ansible подразумевает минимум два файла для начала работы — инвентарный файл, в который мы пишем список хостов и делим их по группам — inventory и файл задачplaybook.
                        Они нужны для того, чтобы когда мы все сделаем запустить все красиво:

                        ansible-playbook -i инвентарный_файл playbook.yml
                        

                        Давайте создадим инвентарный файл по имени “infrastructure” на основе наших хостов:
                        Читать дальше →
                      • Система управления Ansible

                        • Tutorial


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

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

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

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

                        В этой статье мы бы хотели подробно рассказать о его возможностях этого инструмента управления конфигурациями и поделиться собственным опытом его использования.
                        Читать дальше →
                      • Свой облачный хостинг за 5 минут. Часть 1: Ansible, Docker, Docker Swarm

                          Cloud hosting

                          Привет Хабр! Последние 1.5 года я работал над своим проектом, которому был необходим надежный облачный хостинг. До этого момента я больше 10 лет занимался веб-программированием и когда я решил построить свой хостинг у меня были относительно поверхностные знания в этой области, я и сейчас не являюсь системным администратором. Все что я буду рассказывать может выполнить обычный программист в течение 5 минут, просто запустив набор сценариев для Ansible, которые я подготовил специально для вас и выложил на GitHub.
                          Читать дальше →
                        • NGINX изнутри: рожден для производительности и масштабирования

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

                          Инфографика Inside NGINX сверху вниз проведет вас по азам устройства процессов к иллюстрации того, как NGINX обрабатывает множество соединений в одном процессе. Данная статья рассмотрит всё это чуть более детально.
                          Поехали!