← на главную
17 заметок с тегом

КЭНК

Позднее Ctrl + ↑

КЭНК: реюз и обмен времени человеков на время машин

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

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

Пример намба один

Заказчик спросил странное: сколько в домене пользователей на старой версии ОС и сидящих на третьем этаже здания (кабинеты в атрибутах есть).

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

Пример намба два

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

Решение: вместо выгрузки отчёта в системе управления антивирусом и пересылки PDF по почте, сделать ежедневную задачу выгрузки отчётов в ресурс с соответствующим доступом. Через год (или через неделю, неважно) при запросе заказчика информация (с точностью до дня) уже будет готова. Идеально, если она будет доступна заказчику сразу напрямую или в точке, куда он обратится с запросом в следующий раз.

Пример намба три

В Большой и Сложной системе есть логи работы. Специальный Админ (и только он) может поглядеть в логи военно-морским глазом и определить, когда система в последний раз успешно обрабатывала запрос Важного Начальника. Важный Начальник часто ругается на доступность системы, все встают на уши, Специального Админа приходится вызванивать со свадеб и рыбалок, чтобы он посмотрел в логи Всё Ли Хорошо.

Решение: пишем скрипт, парсящий логи (несмотря на всю их кривость — Специальный Админ может, значит и скрипт можно обучить; и да, тут можем потерять неделю-другую, но лучше день потерять и потом за пять минут долететь). Учим скрипт выдавать вердикт Всё Хорошо или Всё Не Хорошо (ну или Непонятно если действительно непонятно). Учитываем, что Важный Начальник не вечен и заодно учим скрипт смотреть Всё Ли Хорошо абсолютно по всем пользователям системы. Наконец, ставим скрипт на регулярное выполнение и выгрузку данных в ресурс, доступный диспетчерской службе. Теперь в большинстве случаев простой оператор может понять, что происходит, и успокоить Важного Начальника, если тому померещилось.

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

А вы меж тем настраиваете передачу данных от скрипта в мониторинг, и вот у вас уже бесплатно графики Всё Хорошовости (доступности) и прочая компьлюктерная магия и визуализация.

Сделал — и работает

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

Времени роботов — не жалко! Слава роботам!

 Нет комментариев    18   10 мес   КЭНК

КЭНК: помогаем Kaspersky Security 8 для Linux Mail Server говорить с пользователем на человеческом языке

Kaspersky Security 8.0 для Linux Mail Server отлично справляется с обнаружением спама, фишинга и вредоносных вложений в почтовые сообщения. Главный его недостаток — плохие возможности взаимодействия с клиентами почты. Да, он умеет карантинить или удалять подозрительные письма, но это может привести к потерям хороших писем (а пользовательские данные бесконечно ценны), либо потребовать лишних затрат ресурсов на хранение и восстановление из карантина.

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

'[Malicious link]'
'[Phishing]'
'[Cured]'
'[Infected]'
'[Blacklisted]'
'[Probable spam]'
'[Spam]'
'[MASSMAIL]'

Но пользователю тега мало, он его не видит, он вообще быстро вырабатывает избирательную слепоту про «все эти ваши компьютерные непонятности». Пользователь получает письмо с обратным адресом «Administrator vashey pochtovoy sistemy» и текстом «Ваш аккаунт будет удалён если вы не кликните на эту ссылку», и никакие теги [SPAM] в теме письма не могут его остановить или успокоить. В лучшем случае такой пользователь звонит за разьяснениями в ТП до клика, в худшем — сразу кликает и потом не звонит. В любом случае, чаще всего этого способа передачи информации от KLMS пользователю недостаточно. Да, на этот случай есть защита на хосте и скрипт для разьяснения у первой линии техподдержки — но зачем работать человекам, когда можно заставить работать роботов, и почему бы не снизить риски?

Выход КЭНК-мена

К счастью, на наличие тегов в заголовке письма можно натравить Exchange. Создаём в нём правило для входящей извне почты с обнаруженными тегами от KLMS, и добавляем (действие Prepend the disclaimer) в тело e-mail перед началом каждого подозрительного письма подробное разъяснение, например такое:

При желании дисклеймеры можно использовать разные, в зависимости от тега KLMS.

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

Короткое описание на гитхабе, там же можно скопипастить текст дисклеймера:
https://github.com/alexbatishchev/kenk-klms-disclaimer

Cлава Роботам!

 2 комментария    35   10 мес   КЭНК

КЭНК: автоматизация для бесплатного Veeam Backup

Прекрасный продукт для резервного копирования в виртуальных средах Veeam Backup & Replication в бесплатной версии содержит ограничения, не позволяющие комфортно использовать его на больших инфраструктурах. Ранее возможности автоматизации были сильно урезаны, в свежих версиях они расширены, но всё равно недостаточны для масштабов, актуальных на моём текущем проекте.

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

Моя идея проста: добавить в описание ВМ теги, определяющие применённый к машине план резервного копирования. Управляющие скрипты запускаются по планировщику на сервере с Veeam Backup, находят в инфраструктуре по тегам все машины, которым требуется провести копирование в этот раз, и передают эти данные на вход запускающего рк оригинального скрипта.

Со временем управляющий скрипт и оригинал обросли обвязкой (логирование, высылка уведомлений при ошибках, возможность задания путей и целевых СРК), но главная идея не изменилась:

  • программируем логику выбора виртуалок в скрипт
  • храним привязку вм к планам копирования тегами в их описаниях
  • задаем время старта планов копирования планировщиком задач на сервере

Достоинство решения — стандартные по КЭНК:

  • оно бесплатное
  • оно эффективно решает задачу максимально штатными средствами (теги хранятся в описаниях машин, расписания — в планировщике задач)
  • оно гибкое — ничего не мешает завести несколько серверов с Veeam, вешать на машины несколько тегов и добавлять машины в несколько планов
  • оно кастомизируемое — скрипт простой и его можно менять по своему усмотрению

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

велосипед на гитхабе: https://github.com/alexbatishchev/kenk-backuppo-veeam

КЭНК!
Слава роботам!

 Нет комментариев    24   10 мес   PowerShell   VMware   КЭНК

КЭНК: подменятор дисков для vSphere

TL;DR на лету подсовываем скриптом жесткие диски виртуалкам на Windows

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

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

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

  • добавляем по одному дополнительному vmdk диску к каждому серверу с KSC
  • включаем опцию на основном сервере KSC, копирующую дубль обновлений на подменный диск
  • делаем регулярную задачу на vCenter, стартующую скрипт PowerCLI, который меняет местами эти подменные диски между основным и изолированным KSC
  • настраиваем изолированный KSC на забирание обновлений баз из папки на подменном диске
  • заодно настраиваем регулярную выгрузки в папку на подменном диске статистики работы и мониторинга ИС

В итоге: требование сетевой изоляции соблюдено, базы антивируса с задержкой на 1-2 часа от внешнего мира обновляются автоматически, в мониторинг основой инфраструктуры попадают сведения из изолированной (с допустимым по SLA временем реакции).

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

Самое сложное в этом велосипеде — подобрать период переключения и времена стартов соответствующих задач на KSC, так как скачивание баз с репозиториев в интернетах происходит далеко не мгновенно (но это отдельная печальная песня). В нашем случае диски меняются местами раз в три часа.

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

КЭНК!
Слава Роботам!

 Нет комментариев    56   10 мес   VMware   КЭНК

КЭНК: генератор картинок для фона рабочего стола серверов

С недавнего времени на проекте, где сейчас идёт работа, типовая конфигурация для входа на рабочий стол виндовс-серверов — три (!!!) вложенных сессии RDP. С таким уровнем матрёшности начинаешь путаться, где именно сейчас ты тыкаешь мышом, и отважно вводишь в консоли свои «rm -rf». Какое-то время я спасался заданием разного цвета фона рабочего стола вручную, но в итоге решил это максимально быстро автоматизировать, конечно же в стиле КЭНК.

Представляю вниманию интернетов скрипт на powershell, генерящий на рабочий стол текущего пользователя файл bmp, внутри — квадрат с рандомным тусклым цветным фоном и рандомной яркой цветной надписью (преставляющей собой имя хоста) по диагонали. Квадрат отлично подходит для задания в качестве фоновой картинки мозаикой, не мозолит глаза, а особо в нём мне нравится что имя хоста попадает в плитку-предпросмотр Desktop в новом вовесьэкранном меню Пуск (где часто и возникает путаница, а собственно на каком хосте сейчас идёт работа).

Быстро решить задачу автоматической установки картинки в качестве фона не удалось — поэтому эта часть задачи перекладывается на оператора.

https://github.com/alexbatishchev/kenk-bgimage

КЭНК!
Слава Роботам!

 24   10 мес   автоматизируй это   КЭНК

Кровавый Энтерпрайз На Коленке

Мне очень нравится найденное в интернетах определение термина Энтерпрайз (часто употребляемого в юмористическом ключе в связке «Кровавый Энтерпрайз»):

«Периодически меня разные люди спрашивают, так в чём же отличие enterprise (как правило спрашивают про ПО) от всего остального. Я для себя это сформулировал следующим образом. Как ни странно, не цена и не vendor lock. Enterprise продукт может выглядеть как собачье говно, местами смердеть индусским кодом, что-то делать неэффективно, что-то очень неэффективно, но он всегда идёт от запросов бизнеса и решает какую-то бизнес-задачу. Не enterprise — нет никаких гарантий, что люди шли от задачи а не хрен пойми от чего. Если это opensource — то обязательно будет желание показать „какие мы охрененные и впереди планеты всей“.»

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

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

Думаю, пора перестать стесняться этих решений и выложить их в сеть.

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

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

КЭНК!
Слава Роботам!

 1 комментарий    55   10 мес   КЭНК

Заставляем FastStone Image Viewer создавать базу превьюшек

Есть чудесный, удобный, привычный, бесплатный инструмент — программа для просмотра и редактирования изображений FastStone Image Viewer. Оный продукт умеет запоминать базу превьюшек и позволяет дичайше удобно быстро и турбореактивно ходить по хранилищу фоток. Но превьюшки фасстон создает (и пересоздает) при открытии папки, а значит при массовом обновлении коллекции фоток (или например при переустановке системы) придется потерпеть при открытии каждой новой папки. А кнопки «посмотреть всю иерархию папок и построить превью» у него нет, и автоматом, в отличие от почившей Пикасы например, оно это делать не умеет.

В дополнение к вышесказанному есть ленивый программист и павершел.

За 15 минут на коленке, из говна и палок слеплен скрипт, ползающий по файловой системе и запускающий FastStone на просмотр всех папок по очереди — ну а превьюхи при таком раскладе оно уже построит само.
Криво, ресурсоёмко, неоптимально, работает. Приводить код не буду, он тривиален.

С новым годом, человеки!
/ иллюстрация к этому посту лениво найдена в гугле /