Admin Future
242 subscribers
50 photos
1 video
4 files
87 links
Превращаем эникейщиков в System Architects.
🚀 Твой навигатор в мире IT-инфраструктуры:

▪️ Hard Skills: Linux, Windows, Network, Security
▪️ Tools: Лучший софт и скрытые фишки
▪️ Mindset: Как думать, чтобы платили много


Админ - @maksimshap
Download Telegram
Pets vs Cattle: Главный принцип облачной архитектуры, который должен знать каждый админ

Этот знаменитый афоризм из мира облачных вычислений меняет всё. Он разделяет серверы на два типа и определяет, как вы должны к ним относиться.

Pets (питомцы):

Это серверы, к которым вы относитесь как к домашним любимцам.
У них есть уникальные имена (db-master-01, mail-srv).
Вы их холите и лелеете, ставите обновления вручную, лечите, когда они "болеют".
Если такой сервер падает — это катастрофа, все бегут его поднимать.
Примеры: Контроллер домена, основной сервер баз данных, старый монолитный сервер приложений.

Cattle (скот):

Это серверы, к которым относятся как к стаду.
У них нет имён, только номера (web-worker-001, web-worker-002).
Их никто не лечит. Если один сервер "заболел", его просто "пристреливают" (удаляют), а на его место автоматически приходит новый, созданный из того же образа.
Потеря одного сервера — не событие. Система в целом продолжает работать.
Примеры: Веб-серверы за балансировщиком, воркеры в Kubernetes-кластере, инстансы в Auto Scaling Group.

Взгляд архитектора:
Цель современной архитектуры — превратить как можно больше "питомцев" в "стадо". Это достигается через автоматизацию (Ansible, Terraform), контейнеризацию (Docker, Kubernetes) и проектирование приложений, которые не хранят состояние локально (stateless). Такой подход позволяет строить масштабируемые, отказоустойчивые и легко управляемые системы.

Задайте себе вопрос: сколько в вашей инфраструктуре "питомцев", и что нужно сделать, чтобы их стало меньше?

#architect #cloud #devops #petsvscattle #sre #стратегия
Windows DNS: Построй свою "черную дыру". Создаем DNS Sinkhole для защиты от вредоносов

Когда пользователь кликает на фишинговую ссылку, его компьютер сначала обращается к DNS-серверу, чтобы узнать IP-адрес вредоносного домена. Что если мы можем перехватить этот запрос и отправить пользователя в безопасное место (или в никуда)?

Это и есть DNS Sinkhole (или Blackhole) — один из самых эффективных способов блокировки вредоносной активности на уровне всей сети.

Как это реализовать на Windows DNS Server:

Создаем "черную дыру":
Откройте диспетчер DNS.
Создайте новую зону прямого просмотра (Primary Zone).
Имя зоны — это вредоносный домен, который вы хотите заблокировать (например, malicious-site.com).
Создайте в этой зоне запись типа A с * (звездочка) в качестве имени.
В качестве IP-адреса укажите 127.0.0.1 (localhost) или IP-адрес внутреннего сервера с заглушкой "Доступ заблокирован".

Автоматизируем с PowerShell:
Вручную добавлять тысячи доменов — не вариант. Используем PowerShell и списки блокировки.

PowerShell
# Список доменов для блокировки (в реальности он будет загружаться из файла или URL)
$BlockList = @(
"bad-domain-1.com",
"phishing-site-2.net",
"malware-dist-3.org"
)

# IP-адрес нашей "черной дыры"
$SinkholeIP = "127.0.0.1"

foreach ($Domain in $BlockList) {
Write-Host "Создаю зону для: $Domain"
# Создаём зону
Add-DnsServerPrimaryZone -Name $Domain -ReplicationScope "Forest" -PassThru

# Создаём wildcard A-запись, которая перенаправляет весь трафик
Add-DnsServerResourceRecordA -ZoneName $Domain -Name "*" -IPv4Address $SinkholeIP
}

Этот скрипт можно поставить в Планировщик Задач для автоматического обновления из публичных блэклистов (например, StevenBlack/hosts).

Взгляд архитектора:
DNS Sinkhole — это первый эшелон обороны. Он не требует установки агентов на клиентские машины и защищает все устройства в сети, включая те, которые сложно контролировать (BYOD, IoT). Это проактивный подход к безопасности, который блокирует угрозу еще до того, as она достигнет своей цели.

#windows #security #dns #powershell #architect #гайд
👍4
Linux: Когда top и htop бессильны. Знакомство с perf — скальпелем для анализа производительности

top показывает, какой процесс грузит CPU. perf показывает, какая функция внутри этого процесса грузит CPU. Это инструмент уровня SRE и kernel-разработчиков, но основы его использования должен знать каждый продвинутый админ.

Практический кейс: Веб-сервер Nginx начал потреблять много CPU. Почему?

Собираем данные (профилирование):
Запускаем perf на 10 секунд, чтобы собрать статистику по всей системе с частотой 99 Гц.

Bash
# perf требует прав root или специальной настройки
sudo perf record -F 99 -a -g -- sleep 10

-a — по всей системе, -g — записывать графы вызовов.
В текущей директории будет создан файл perf.data.

Анализируем отчет:
Открываем собранные данные в интерактивном режиме.

Bash
sudo perf report

Вы увидите псевдографический интерфейс, где сможете "проваливаться" внутрь процессов и функций. В нашем случае мы найдем процесс nginx, раскроем его и увидим, что, например, 90% времени CPU тратится на функцию, связанную со сжатием gzip или обработкой SSL.

Другие полезные команды:

sudo perf top — интерактивный режим, похожий на top, но с функциями.

sudo perf stat <command> — запускает команду и показывает детальную статистику по её выполнению (промахи кэша, ошибки страниц и т.д.).

Взгляд архитектора:
perf позволяет находить коренные причины (root cause) проблем с производительностью, а не бороться с симптомами. Умение работать с такими инструментами отличает инженера, который может оптимизировать систему на низком уровне, от админа, который в любой непонятной ситуации просто добавляет CPU.

#linux #performance #sre #perf #monitoring #команды
AI-промпт: "Напиши за меня PowerShell скрипт для аудита локальных администраторов"

Одна из самых частых задач ИБ-аудита — проверить, кто входит в группу локальных администраторов на всех рабочих станциях. Давайте заставим AI сгенерировать для нас готовый к работе скрипт.

Промпт (для ChatGPT/Gemini/Copilot):
Выступи в роли Senior PowerShell-разработчика и эксперта по безопасности Active Directory.

Напиши PowerShell-скрипт, который выполняет следующие действия:
1. Берёт список всех активных компьютеров из указанного Organizational Unit (OU) в Active Directory.
2. Для каждого компьютера из списка получает членов локальной группы "Администраторы" (Administrators).
3. Игнорирует стандартных членов группы (Administrator, Domain Admins).
4. Выводит результат в виде таблицы: Компьютер, Пользователь/Группа.
5. Экспортирует результат в CSV-файл для дальнейшего анализа.
6. Скрипт должен содержать комментарии, объясняющие ключевые шаги.

Предоставь готовый к выполнению код.
Почему это работает:

Роль: Senior PowerShell-разработчик и эксперт по безопасности задают высокий стандарт качества кода и правильность подходов.

Декомпозиция: Мы разбили задачу на 6 четких шагов. AI не нужно додумывать, что мы хотим.
Исключения: Указание "игнорирует стандартных членов" делает результат сразу полезным, отсекая шум.
Формат вывода: Мы просим не просто вывести на экран, а создать CSV-файл, что характерно для реальной задачи.
Результат: Вы получите готовый скрипт на 20-30 строк, который можно сразу использовать. Архитектор не тратит время на написание рутинных скриптов, он тратит время на анализ их результатов.

#ai4admin #powershell #security #activedirectory #automation #промпты
Self-Hosted: Ваша личная IT-империя. Альтернативы SaaS-сервисам

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

Наши коллеги-энтузиасты собрали гигантскую подборку open-source приложений для запуска почти любых сервисов прямо у вас. Почта (Mailu), облачное хранилище (Nextcloud), видеоконференции (Jitsi), менеджер паролей (Vaultwarden), стриминг-платформы (Jellyfin) — всё в одном месте.

Что внутри:

Список self-hosted альтернатив для десятков популярных SaaS.

Ссылки на GitHub и документацию.

Часто — готовые docker-compose.yml для быстрого старта.

Взгляд архитектора:
Это не просто про экономию. Это про суверенитет данных и создание идеального Home Lab. Разворачивая эти сервисы, вы на практике оттачиваете ключевые навыки: работа с Docker, настройка Nginx в роли reverse proxy, конфигурация бэкапов и мониторинга.

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

Забираем бесценную подборку по ссылке:
https://github.com/Atarity/deploy-your-own-saas

#selfhosted #linux #docker #devops #saas #гайд
👍3
Windows: Не отключай Firewall! Управляй им как профи через PowerShell

Самый частый "совет" по решению проблем с сетью в Windows — "отключи брандмауэр". С точки зрения безопасности — это катастрофа. Графический интерфейс файрвола действительно неудобен, но у архитектора есть PowerShell.
Управлять правилами из командной строки — быстро, удобно и, главное, автоматизируемо.
Базовые команды, которые нужно знать:
Проверить статус всех профилей (Domain, Private, Public):
PowerShell

Get-NetFirewallProfile | Format-Table Name, Enabled

Создать простое правило (например, разрешить входящий SSH):
PowerShell

New-NetFirewallRule -DisplayName "Allow SSH In" -Direction Inbound -Protocol TCP -LocalPort 22 -Action Allow -Profile Domain, Private

Найти и временно отключить правило:
PowerShell

# Находим правило по имени
Get-NetFirewallRule -DisplayName "Allow SSH In"

# Отключаем его, не удаляя
Disable-NetFirewallRule -DisplayName "Allow SSH In"

Управлять правилами на удалённом сервере:
Используем CIM-сессии для удалённого выполнения.
PowerShell

$session = New-CimSession -ComputerName WEBSRV01
Get-NetFirewallRule -CimSession $session -DisplayName "Allow-File-And-Printer-Sharing"

Взгляд архитектора:
Брандмауэр — это не помеха, а критический компонент эшелонированной обороны (Defense in Depth). Использование PowerShell позволяет применять Конфигурацию как Код (CaC) к правилам безопасности. Вы можете хранить скрипты с правилами в Git, версионировать их и раскатывать на сотни серверов, гарантируя единый стандарт безопасности по всей инфраструктуре.

#windows #security #powershell #firewall #networking #гайд
Linux & API: Парсим JSON в терминале как боги с помощью jq

curl-нул API и получил в ответ стену текста в формате JSON? Пытаться разобрать это глазами или через grep — прошлый век. Для работы со структурированными данными в терминале есть свой sed и awk — это утилита jq.
jq — это легковесный и сверхмощный обработчик JSON для командной строки.
Установка: sudo apt install jq или brew install jq.
Практический пример с GitHub API:

Получаем и красиво форматируем JSON:

Bash

# Просто передаём вывод curl в jq с фильтром '.' (точка)
curl -s 'https://api.github.com/users/torvalds' | jq '.'
``
Извлекаем одно значение:

Bash

# Получаем значение ключа "name"
curl -s 'https://api.github.com/users/torvalds' | jq '.name'
# Результат: "Linus Torvalds"

Извлекаем несколько значений и создаем свой объект:

Bash

curl -s 'https://api.github.com/users/torvalds' | jq '{user: .login, company: .company, location: .location}'

Работаем с массивами (самое мощное):

Bash

# Получаем список репозиториев и выводим только их имена
curl -s 'https://api.github.com/users/torvalds/repos' | jq '.[ ].name'
`
[ ] — итератор по массиву.

Взгляд архитектора:
jq — это клей для современной автоматизации. Он позволяет строить сложные и надёжные пайплайны в bash-скриптах, которые работают с API облачных провайдеров, системами мониторинга и любыми другими сервисами, говорящими на JSON. Это превращает нечитаемые данные в полезную информацию прямо в терминале.

#linux #jq #json #api #bash #devops #команды
👍2
Проект на выходные: Nginx Proxy Manager. Управляем реверс-прокси и SSL через GUI

Редактировать конфиги Nginx вручную для каждого нового сервиса — рутина, в которой легко ошибиться. Если вы поднимаете много веб-приложений (особенно в своей Home Lab), вам нужен инструмент, который делает это красиво.

Nginx Proxy Manager — это готовое решение в Docker-контейнере, которое даёт вам удобный веб-интерфейс для управления всеми вашими сайтами и реверс-прокси.

Ключевые фичи:

Графический интерфейс: Забудьте про правку конфигов. Добавляйте хосты, настраивайте редиректы и защиту парой кликов.

Бесплатные SSL-сертификаты: Встроенная интеграция с Let's Encrypt. Он сам получит и будет автоматически продлевать сертификаты для ваших доменов.

Списки доступа (Access Lists): Ограничивайте доступ к сервисам по IP или через логин/пароль.

Простая установка: Запускается одной docker-compose командой.

Готовый docker-compose.yml для старта:

YAML

version: '3.8'
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
# Public HTTP Port:
- '80:80'
# Public HTTPS Port:
- '443:443'
# Admin Port:
- '81:81'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt

Запустите docker-compose up -d, откройте http://<ваш_ip>:81 и начните настраивать.

Взгляд архитектора:
Этот инструмент не просто экономит время. Он стандартизирует и защищает ваши точки входа. Best practice (как, например, SSL для всего) становятся настройкой по умолчанию, а не чем-то, что можно забыть. Это идеальный способ навести порядок в зоопарке ваших веб-сервисов.

#linux #docker #nginx #selfhosted #гайд #weekendproject
👍2
Linux: Вы всё ещё просто "листаете" логи? Раскрываем всю мощь less

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

5 трюков, которые ускорят вашу работу:

F (Follow mode): Нажмите Shift + F в открытом файле. less перейдет в режим tail -f и будет показывать новые строки в реальном времени. Чтобы выйти из этого режима и вернуться к поиску, нажмите Ctrl + C.

/ и ? (Поиск): /слово — ищет "слово" от текущей позиции вниз. ?слово — ищет вверх. Клавиши n и N — переход к следующему/предыдущему совпадению.

& (Фильтрация): Введите & и паттерн (например, &ERROR). less скроет все строки, которые не содержат ERROR. Чтобы сбросить фильтр, введите & и нажмите Enter. Это как grep, но без выхода из файла.

m и ' (Метки): Находясь на важной строке (например, начало транзакции), нажмите m и любую букву (например, a). Вы создали метку "a". Теперь, промотав файл на тысячу строк вниз к ошибке, вы можете мгновенно вернуться к метке, нажав ' и ту же букву ('a).

-N (Номера строк): Запускайте less -N your_log_file.log, чтобы видеть номера строк. Незаменимо, когда обсуждаете лог с коллегой.

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

#linux #less #cli #logging #команды #productivity
👍2
Windows & AD: Пятничная чистка. Находим неактивные учетные записи

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

Почему это важно:

Безопасность: Устаревшие аккаунты — цель для злоумышленников.
Соответствие (Compliance): Многие стандарты требуют регулярного отключения неактивных учетных записей.
Гигиена: Чистый AD проще в управлении.
Используем PowerShell для быстрого поиска:
Командлет Search-ADAccount — ваш лучший друг для этой задачи.

Найти неактивные компьютеры (не логинились в домен > 90 дней):

PowerShell

# Просто поиск для отчета
Search-ADAccount -AccountInactive -ComputersOnly -TimeSpan 90.00:00:00 | Select-Object Name, DistinguishedName

Найти неактивных пользователей (не логинились > 90 дней):

PowerShell

Search-ADAccount -AccountInactive -UsersOnly -TimeSpan 90.00:00:00 | Where-Object {$_.Enabled -eq $true} | Select-Object Name, DistinguishedName

Where-Object дополнительно отфильтровывает уже отключенные УЗ.

Следующий шаг: Действие
Найденные учетные записи не стоит сразу удалять. Правильный процесс:
Отключить.
Переместить в специальный OU "Disabled Accounts".
Удалить через 30-60 дней.

PowerShell

# Находим и сразу отключаем неактивные УЗ пользователей
Search-ADAccount -AccountInactive -UsersOnly -TimeSpan 90.00:00:00 | Where-Object {$_.Enabled -eq $true} | Disable-ADAccount -PassThru

-PassThru покажет, какие именно УЗ были отключены.

Взгляд архитектора:
Эта процедура должна быть не разовой акцией, а регулярным, автоматизированным процессом. Создайте на основе этих команд запланированное задание (Scheduled Task), которое будет еженедельно присылать отчёт и, возможно, автоматически отключать учетные записи по истечении определенного срока. Это переход от ручного аудита к автоматизированному управлению жизненным циклом учетных записей.

#windows #activedirectory #powershell #security #audit #гайд
👍2
Docker: Управляй контейнерами красиво прямо в терминале с lazydocker

Команды docker ps, docker logs, docker exec — это база. Но когда у вас запущено 10+ контейнеров, переключаться между ними, смотреть логи и проверять ресурсы становится неудобно.

lazydocker — это терминальный TUI-интерфейс для Docker, который показывает всё на одном экране и управляется мышкой или горячими клавишами. Это htop для мира контейнеров.

Что он умеет:

Интерактивный дашборд: Видите все контейнеры, их статусы, порты и потребление ресурсов в реальном времени.
Быстрый доступ к логам: Выбрали контейнер — тут же видите его логи. Не нужно писать docker logs <id>.
Удобный exec: Зайти в оболочку контейнера — дело двух кликов.
Управление всем: Перезапускайте, останавливайте, удаляйте контейнеры, образы и тома, не покидая интерфейс.
ASCII-графики: Наглядно показывает потребление CPU и памяти.

Установка и запуск:
Bash

# Homebrew (macOS/Linux)
brew install jesseduffield/lazydocker/lazydocker

# Бинарный релиз (Linux)
curl https://raw.githubusercontent.com/jesseduffield/lazydocker/master/scripts/install_update_linux.sh | bash

# Запуск
lazydocker

Взгляд архитектора:
Эффективность — ключевой параметр. lazydocker — это инструмент, который минимизирует "контекстное переключение" (context switching) — вам не нужно держать в голове десяток ID контейнеров и постоянно перепечатывать команды. Он визуализирует состояние системы, позволяя быстрее диагностировать проблемы и управлять сложными docker-compose сборками.

#linux #docker #lazydocker #cli #productivity #гайд
👍2
SSH: Ваш сервер — крепость или проходной двор? Аудит конфигурации с ssh-audit

Мы уже говорили о чистке authorized_keys. Но безопасность SSH — это еще и правильная конфигурация самого сервера (sshd_config). Какие алгоритмы шифрования разрешены? Используются ли устаревшие протоколы?

ssh-audit — это утилита, которая подключается к вашему SSH-серверу и проверяет его конфигурацию на соответствие современным стандартам безопасности.

Установка:
Bash

# pip (Python)
pip install ssh-audit

# Homebrew (macOS)
brew install ssh-audit

Использование:

Bash

# Запускаем аудит удаленного сервера
ssh-audit my-server.com

# Можно указать порт
ssh-audit -p 2222 my-server.com

Что вы увидите в отчете:

[INFO] — Информационные сообщения.
[WARN] — Предупреждения (например, использование CBC-шифров).
[FAIL] — Критические проблемы (например, включен протокол SSHv1 или слабые MAC-алгоритмы).

Для каждого пункта утилита даст рекомендацию, какие строки нужно добавить или изменить в /etc/ssh/sshd_config, чтобы исправить проблему. Например, так:

# Пример рекомендации

(fail) diffie-hellman-group1-sha1 is not recommended
(info) recommend removing the following KEX algorithm(s):
(info) diffie-hellman-group1-sha1

Взгляд архитектора:
Безопасность — это не разовое действие, а непрерывный процесс. ssh-audit — это инструмент для автоматизированного аудита и валидации конфигураций. Его можно встроить в CI/CD пайплайн для проверки образов VM или запускать по расписанию для мониторинга "дрифта" конфигурации на действующих серверах, гарантируя соблюдение единого стандарта безопасности.

#security #ssh #audit #linux #команды
Железный треугольник админа: Стоимость, Фичи, Риски (CFR)

Любое архитектурное решение, от выбора облачного провайдера до внедрения новой системы мониторинга — это компромисс. Чтобы принимать взвешенные решения, а не поддаваться эмоциям ("о, новая блестящая технология!"), используйте "железный треугольник" CFR.

1. Стоимость (Cost):
Это не только цена лицензии или сервера. Сюда входит стоимость внедрения, обучения команды, поддержки и потенциального простоя.

Вопрос: Насколько дороже будет поддерживать это решение через год?

2. Функциональность (Features):
Какие возможности даёт это решение? Насколько оно решает нашу бизнес-задачу? Покрывает ли оно наши потребности на 90% или только на 50%?

Вопрос: Какие фичи нам действительно нужны, а какие — просто "приятный бонус"?

3. Риски (Risks):
Какие угрозы несёт это решение? Это могут быть риски безопасности (новые уязвимости), риски надёжности (молодая технология), риски зависимости от одного поставщика (vendor lock-in) или риски для команды (слишком сложно в поддержке).

Вопрос: Что будет, если компания-разработчик этого ПО завтра закроется?

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

#architect #strategy #devops #sre #decisionmaking
Безопасность: Принцип замка. Строим эшелонированную оборону (Defense in Depth)
Почему одного хорошего файрвола недостаточно для защиты инфраструктуры? Потому что профессионалы в области безопасности мыслят не барьерами, а слоями. Этот принцип называется Defense in Depth, или эшелонированная оборона.
Представьте, что вы защищаете средневековый замок. Ваша защита состоит из множества рубежей:
Ров (The Moat): Это ваш сетевой файрвол на границе периметра. Первая и самая очевидная линия обороны.
Высокие стены (The Walls): Это файрволы на самих серверах и сетевая сегментация. Даже если враг перебрался через ров, он не сможет свободно гулять по всей территории.
Стража на стенах (The Guards): Это системы обнаружения вторжений (IDS/IPS) и инструменты вроде Sysmon. Они ищут подозрительную активность и бьют тревогу.
Замки на каждой двери (The Locks): Это аутентификация и авторизация: надёжные пароли, MFA, принцип наименьших привилегий (IAM) и решения вроде LAPS.
Тайные ходы и сокровищница (The Vault): Это шифрование данных как в хранилище (at rest), так и при передаче (in transit).
Система наблюдения (The Surveillance): Это аудит и централизованный сбор логов (SIEM). Вы должны знать обо всём, что происходит внутри замка.
Взгляд архитектора:
Ключевая идея — любой отдельный слой защиты может быть пробит. Задача архитектора — спроектировать систему так, чтобы взлом одного компонента не приводил к коллапсу всей обороны, а лишь замедлял атакующего и давал вам время на реагирование.
#security #architect #стратегия #cybersecurity #гайд
Linux & macOS: cat на стероидах. Знакомство с bat
Мы постоянно просматриваем файлы в терминале: скрипты, конфиги, логи. Стандартная утилита cat справляется, но выдаёт просто стену текста. bat — это её современная замена, которая делает то же самое, но красиво и удобно.
bat — это cat с подсветкой синтаксиса, нумерацией строк, интеграцией с Git и автоматическим пейджером.
Ключевые фичи:
Подсветка синтаксиса: Просто напишите bat my_script.py или bat docker-compose.yml, и код будет подсвечен как в вашей любимой IDE.
Интеграция с Git: bat показывает изменения в файле прямо в терминале, отмечая добавленные и изменённые строки.
Автоматический пейджер: Если файл не помещается на один экран, bat автоматически передаст вывод в less, так что вы сразу можете использовать поиск и навигацию.
Отображение непечатаемых символов: Помогает при отладке.
Установка:


# Ubuntu/Debian (может называться batcat)
sudo apt install bat
# macOS
brew install bat


На Ubuntu/Debian, возможно, придется использовать команду batcat или создать симлинк ln -s /usr/bin/batcat ~/.local/bin/bat.
Взгляд архитектора:
Это не просто про "красивости". Удобное представление информации снижает когнитивную нагрузку. Когда вы можете мгновенно отличить комментарий от переменной в конфиге, вы работаете быстрее и делаете меньше ошибок. bat — маленький инструмент с огромным влиянием на ежедневную продуктивность.
#linux #macos #cli #bat #productivity #команды
От Админа к Архитектору: Почему soft skills важнее ваших скриптов
Технические навыки позволяют получить работу системного администратора. Но soft skills (гибкие навыки) — это то, что превращает вас в архитектора и лидера. Самый гениальный PowerShell-скрипт бесполезен, если вы не можете объяснить бизнесу, какую проблему он решает.
Три ключевых навыка, которые нужно развивать:
1. Умение документировать:
Инфраструктура, которая существует только в вашей голове, — это бомба замедленного действия. Умение писать понятную документацию, рисовать схемы и описывать процессы (Runbooks) позволяет команде работать слаженно, снижает риски и делает систему поддерживаемой.
2. Эффективная коммуникация:
Способность объяснить сложное техническое решение нетехническому менеджеру. Умение слушать и понимать бизнес-требования, прежде чем предлагать технологию. Способность убедительно аргументировать свою позицию и договариваться с коллегами.
3. Бизнес-мышление:
Админ думает о том, "как" сделать. Архитектор думает о том, "зачем" это делать. Как это решение поможет компании заработать деньги? Как оно снизит риски? Как повлияет на время выхода продукта на рынок? Понимание связи между IT и бизнес-целями — это главный признак архитектурного мышления.
Взгляд архитектора:
Сильный админ решает технические проблемы. Архитектор решает бизнес-проблемы с помощью технологий. Ваши скрипты и знания — это инструменты. Но ваша способность убеждать, объяснять и видеть большую картину — это то, что создаёт настоящую ценность.
#architect #career #softskills #leadership #стратегия
Аудит здоровья Active Directory. Скрипт для утренней проверки

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

Этот PowerShell-скрипт — ваш утренний чек-лист. Он проверит все DC в домене и доложит о проблемах.

Что делает скрипт:

Получает список всех контроллеров домена.

Для каждого запускает dcdiag в быстром режиме (покажет только ошибки).

Запускает repadmin /replsummary для проверки статуса репликации по всему лесу.

Код скрипта:

PowerShell
Import-Module ActiveDirectory

Write-Host "--- Начинаю проверку здоровья Active Directory ---" -ForegroundColor Cyan

# 1. Получаем все контроллеры домена в текущем домене
$DomainControllers = Get-ADDomainController -Filter *

Write-Host "`n[+] Запускаю DCDiag для каждого контроллера..." -ForegroundColor Yellow
foreach ($DC in $DomainControllers) {
Write-Host " - Проверяю $($DC.HostName)..."
$dcdiagResult = dcdiag /s:$($DC.HostName) /q
if ($dcdiagResult) {
# dcdiag /q выводит текст только при наличии ошибок
Write-Host " [ОШИБКИ ОБНАРУЖЕНЫ]:" -ForegroundColor Red
$dcdiagResult | ForEach-Object { Write-Host " $_" }
} else {
Write-Host " [OK] Ошибок не найдено." -ForegroundColor Green
}
}

# 2. Проверяем сводку по репликации
Write-Host "`n[+] Проверяю состояние репликации..." -ForegroundColor Yellow
$replSummary = repadmin /replsummary
if ($replSummary -match "fails") {
Write-Host " [ОШИБКИ РЕПЛИКАЦИИ ОБНАРУЖЕНЫ]:" -ForegroundColor Red
$replSummary
} else {
Write-Host " [OK] Ошибок репликации не найдено." -ForegroundColor Green
}

Write-Host "`n--- Проверка завершена ---" -ForegroundColor Cyan

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

#windows #activedirectory #powershell #security #audit #скрипты
Linux: Почему ping сначала ищет в /etc/hosts? Разбираем nsswitch.conf

Вы изменили DNS-запись, сделали systemd-resolve --flush-caches, но ping упорно резолвит старый IP-адрес. Знакомая ситуация? Чаще всего виновник — это файл /etc/hosts, но почему система смотрит в него раньше, чем в DNS?

Ответ лежит в файле /etc/nsswitch.conf (Name Service Switch). Это главный "диспетчер", который говорит системе, в каком порядке и где искать информацию (имена хостов, пользователей, группы и т.д.).

Разберём на примере:
Откройте файл cat /etc/nsswitch.conf и найдите строку hosts:
# Пример строки из nsswitch.conf
hosts: files dns

hosts: — это "база данных", которую мы настраиваем (имена хостов).

files — означает "сначала посмотри в локальных файлах" (в данном случае, в /etc/hosts).

dns — означает "если в файлах не нашёл, иди к DNS-серверу".

Что это даёт?
Вы можете менять этот порядок. Например, конфигурация hosts: dns files заставит систему сначала обращаться к DNS. Это может быть полезно в некоторых сценариях, но стандарт files dns обеспечивает базовую работу системы даже при недоступности DNS.

Взгляд архитектора:
Понимание фундаментальных механизмов работы ОС — это то, что отличает профессионала. Архитектор не воспринимает систему как "чёрный ящик". Знание о nsswitch.conf позволяет проектировать предсказуемые системы, быстро отлаживать сложные проблемы с разрешением имён и понимать, как интегрировать сервер с централизованными службами аутентификации вроде LDAP или NIS.

#linux #networking #dns #nsswitch #гайд
Управляем версиями: kubectl, terraform, python в одном инструменте. Знакомство с asdf

Проект А требует Terraform v1.7, а новый проект Б — уже v1.8. Ваша команда работает с разными версиями Python. Как управлять этим зоопарком, не засоряя систему и не создавая конфликтов?

asdf — это универсальный менеджер версий для десятков инструментов. Один CLI для управления всеми.

Как это работает — магия в 3 шага:

Устанавливаем плагин для нужного инструмента:

Bash
# Добавляем поддержку Terraform
asdf plugin-add terraform

Устанавливаем нужные версии:

Bash
asdf install terraform 1.7.5
asdf install terraform 1.8.4

Выбираем версию:
Глобально для всей системы:

Bash
asdf global terraform 1.8.4

Локально для текущей директории (главная фича!):

Bash
# Эта команда создаст в папке файл .tool-versions
asdf local terraform 1.7.5

Теперь, когда вы заходите в эту директорию, asdf автоматически активирует нужную версию Terraform.

Взгляд архитектора:
asdf — это инструмент для создания воспроизводимых и изолированных окружений. Файл .tool-versions можно и нужно коммитить в Git-репозиторий вашего проекта. Это гарантирует, что каждый член команды (и ваш CI/CD-пайплайн) будет использовать абсолютно те же версии инструментов, что исключает класс проблем "а у меня на машине работает". Это фундаментальный принцип DevOps.

#devops #cli #asdf #terraform #automation #гайд
Windows: Ваши GPO — это код. Резервное копирование и версионирование групповых политик

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

PowerShell — ваш лучший инструмент для этого:

Сделать бэкап ВСЕХ политик в домене:
Эта одна команда сохранит все ваши GPO в указанную папку. Идеально для ежедневного бэкапа.

PowerShell
# Убедитесь, что папка C:\GPO_Backup существует
Backup-Gpo -All -Path C:\GPO_Backup -Comment "Daily backup $(Get-Date -Format yyyy-MM-dd)"

Восстановить политику из бэкапа:
Если что-то пошло не так, вы можете быстро откатить конкретную GPO.

PowerShell
# Восстанавливаем политику "Default Domain Policy"
Restore-Gpo -Name "Default Domain Policy" -Path C:\GPO_Backup

Сравнить текущую политику с бэкапом:
Самое интересное. Как узнать, что изменилось?

PowerShell
# Генерируем отчеты по текущей и резервной GPO
Get-GPOReport -Name "Firewall Rules Policy" -ReportType Html -Path C:\Temp\Current.html
Get-GPOReport -BackupLocation C:\GPO_Backup -Name "Firewall Rules Policy" -ReportType Html -Path C:\Temp\Backup.html

# Сравниваем два отчета (в браузере или через утилиты сравнения)
Взгляд архитектора:
Бэкап GPO — это не просто страховка. Это основа для управления изменениями (Change Management). Храните резервные копии в системе контроля версий (Git). Это позволит вам видеть, кто, когда и что изменил в политиках, проводить ревью изменений и безопасно откатываться к любой предыдущей версии. Так вы превращаете "магию" GPO в прозрачный и контролируемый процесс.

#windows #powershell #gpo #security #backup #гайд
🔥2
Linux: Когда логи молчат. Диагностика приложений с помощью strace

Ваше приложение падает, не оставляя логов. Или тормозит, хотя top не показывает проблем. Что оно на самом деле делает? Чтобы заглянуть "под капот" любого процесса, есть strace.

strace — это мощнейший инструмент отладки, который перехватывает и показывает все системные вызовы (syscalls), которые делает процесс. Это его общение с ядром Linux: открытие файлов, сетевые соединения, чтение/запись данных.

Практические кейсы:

Посмотреть, какие файлы открывает команда:

Bash
# Запускаем ls и смотрим, какие системные вызовы, связанные с файлами, он делает
strace -e trace=file ls /tmp

Вы увидите вызовы openat, read, close. Незаменимо, когда нужно понять, к какому конфигу обращается программа.

Подключиться к уже запущенному процессу:

Bash
# Находим PID нужного процесса (например, nginx)
pidof nginx

# Подключаемся к главному процессу nginx и смотрим все его системные вызовы
sudo strace -p $(pidof nginx | awk '{print $1}')

Найти причину "зависания":
Если команда "висит", strace покажет, на каком системном вызове она остановилась (например, connect к недоступному хосту или read из пустого сокета).

Взгляд архитектора:
strace — это микроскоп. Он нужен не каждый день, но умение им пользоваться отличает инженера, который может решить практически любую проблему, от того, кто сдаётся, если в логах нет ответа. Это инструмент для поиска коренной причины (root cause), а не для борьбы с симптомами.

#linux #strace #debugging #sre #команды
🔥2