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
Вывод
Понимание того, как пакеты «влезают» в интерфейсы и почему сервер «тупит» при свободном процессоре — это ваш страховой полис. Без этого вы будете бесконечно докупать RAM и ядра там, где нужно было просто поправить один параметр в sysctl или заменить «уставший» NVMe. Спокойствие админа в 2026-м стоит на трех слонах: мониторинг задержек, контроль износа железа и правильный MTU.

#собеседование_AF #networking #mtu #load_average #nvme #sysadmin #troubleshooting #admin_future
🔥2
🐧 Linux: XDP — Аннигиляция пакетов на входе в «Цифровую крепость»

Привет, коллеги! Сегодня четверг, 12 марта 2026 года, и если ваш сетевой стек до сих пор захлебывается от входящего мусора, пока iptables задумчиво перебирает цепочки правил, у меня для вас плохие новости. В эпоху 400-гигабитных каналов и повсеместного IPv6 классический путь пакета через всё ядро Linux — это непозволительная роскошь.

Техническая суть:
Мы переходим на XDP (eXpress Data Path). Это база для современного сетевого админа. XDP позволяет запускать eBPF-код прямо в контексте драйвера сетевой карты, до того, как ядро вообще начнет создавать структуру `sk_buff`.

Под капотом: Пакет перехватывается на уровне RX-очереди. Мы можем либо пробросить его дальше (XDP_PASS), либо мгновенно аннигилировать (XDP_DROP), либо отправить обратно (XDP_TX). Это дает нам производительность, близкую к DPDK, но без необходимости писать драйверы в пользовательском пространстве и терять интеграцию с ОС.


Практика:

В 2026-м мы не пишем байт-код руками. Используем современные обертки для быстрой фильтрации DDoS на подлете:


# 1. Устанавливаем xdp-tools (стандарт для современных дистрибутивов)
# 2. Вешаем фильтр, который будет дропать всё, что не соответствует нашим ACL
# на уровне драйвера (native mode) или программно (skb mode)

xdp-loader load eth0 ./drop_malicious_traffic.o --mode native

# 3. Мониторим статистику прохождения пакетов через eBPF-карты
bpftool map dump name xdp_stats_map

# Пример простейшего правила для xdp-filter (современная замена многим задачам iptables)
xdp-filter load eth0 -p ipv6 --ip 2001:db8:dead:beef::/64 -a drop



Зачем это нужно:
Экономия ресурсов CPU. Пока
nftables
тратит циклы на разбор каждого заголовка, XDP просто «срезает» ненужное на входе. Это единственный способ держать аптайм, когда на твой ARM-кластер прилетает «привет» от ботнета в пару терабит.

#linux #xdp #ebpf #networking #highload #admin_future
👍1👎1😁1🤡1
🪟 Windows: SecretManagement — Смерть паролей в открытом коде

Коллеги, на дворе 2026 год. Если при проверке ваших PowerShell-скриптов безопасник находит переменную `$password = "12345"`, он имеет полное право заблокировать вашу учетку до конца квартала. Скрыть пароль в base64 — это не защита, это костыль из прошлого десятилетия.

Техническая суть:
Используем нативный модуль Microsoft.PowerShell.SecretManagement. Это абстрактный слой, который позволяет скриптам запрашивать секреты, не зная, где они лежат: в локальном зашифрованном Vault, в KeePassXC или в корпоративном HashiCorp Vault.

Под капотом: Модуль отделяет логику скрипта от реализации хранилища. Скрипт просит «дай мне пароль от сервиса X», а SecretManagement сам идет в зарегистрированное расширение (Extension Vault) и достает его. В памяти скрипта секрет живет только в виде объекта `SecureString`.

Практика:

Настраиваем локальное защищенное хранилище и используем его в автоматизации:


# 1. Устанавливаем необходимые модули
Install-Module Microsoft.PowerShell.SecretManagement, Microsoft.PowerShell.SecretStore -Force

# 2. Регистрируем локальный защищенный сейф (требует мастер-пароль или привязку к сессии)
Register-SecretVault -Name LocalSafe -ModuleName Microsoft.PowerShell.SecretStore -DefaultVault

# 3. Сохраняем секрет один раз (интерактивно)
Set-Secret -Name "Service_DB_Prod" -Secret "MySuperSecurePassword2026!"

# 4. В скрипте теперь только чистая логика:
$dbSecret = Get-Secret -Name "Service_DB_Prod" -AsPlainText # Используйте plain text только для передачи в API!
Invoke-Sqlcmd -ServerInstance "DB-SRV-01" -Password $dbSecret -Query "SELECT 1"



Зачем это нужно:
Ваши `.ps1` файлы теперь абсолютно чисты. Их можно спокойно пушить в Git, передавать коллегам и не бояться, что при увольнении придется ротировать сотню паролей, которые вы «где-то там» прописали.


#windows #powershell #security #automation #secretmanagement #admin_future
👍1
🚀 Skills: Инфраструктурный нигилизм. Почему «надежность» больше не цель

Помните, как мы гордились серверами с аптаймом в 500 дней? В 2026 году такой сервер — это позор и огромная дыра в безопасности. Если ваша система не перезагружалась полтора года, значит, она не видела патчей ядра, обновлений микрокода ARM и критических фиксов библиотек.

Техническая суть:
Главный навык админа сегодня — не «поддержать жизнь», а «уметь убить и воскресить». Мы переходим от концепции надежности железа к концепции Resilience (упругости). Инфраструктура должна быть эфемерной.

Под капотом: Мы внедряем **Immutability** (неизменяемость). Конфигурация сервера не правится руками через SSH. Если нужно изменить один параметр в `sysctl`, вы меняете его в коде (IaC), пересобираете образ и пересоздаете инстанс.


Практика:

Ваш рабочий день должен начинаться не с проверки мониторинга «всё ли зеленое», а с проверки «пройдет ли сегодня автоматический редеплой 10% инфраструктуры».


# Пример декларативного описания состояния (Inspec / Goss)
# Мы проверяем не "как долго оно работает", а "соответствует ли оно стандарту 2026 года"

file:
/etc/ssh/sshd_config:
exists: true
contains:
- "Protocol 2"
- "PermitRootLogin no"
- "PubkeyAuthentication yes"
- "KexAlgorithms curve25519-sha256@libssh.org" # Квантово-устойчивые алгоритмы

command:
check_kernel_version:
exec: "uname -r"
exit-status: 0
stdout:
- "6.12" # Мы не сидим на старье



Зачем это нужно:

Это избавляет вас от «дрейфа конфигураций» (configuration drift). Когда у вас 1000 серверов, вы не можете быть уверены, что на 734-м какой-то стажер не поправил конфиг руками в три часа ночи. Только полная пересборка гарантирует идентичность и предсказуемость.


Вывод: Ваша ценность как инженера — в скорости восстановления системы с нуля, а не в умении годами латать дырявое корыто.

#skills #iac #observability #resilience #devops #admin_future
🎓 Собеседование сисадмина. Выпуск #9: Storage & Security (Неудаляемые данные и Zero Trust)

Привет, коллеги! Сегодня четверг, 12 марта 2026 года, и если вы думаете, что бэкап на соседний сервер спасет вас от современного шифровальщика, то вы либо оптимист, либо еще не сталкивались с ИИ-червями, которые первым делом вычищают корзины и снапшоты. В эпоху «цифровой крепости» данные должны быть не просто скопированы, они должны быть «забетонированы».
Разберем три вопроса, которые проверяют, насколько вы готовы к суровой реальности 2026-го.


Вопрос 1: «Что такое Immutable Backups (неизменяемые бэкапы) и как реализовать WORM-политику без покупки ленточных библиотек?»
Ответ новичка: «Это когда мы ставим атрибут read-only на файлы. Можно просто убрать права на запись у пользователя».
Ответ инженера:
В 2026-м «права пользователя» не значат ничего, если злоумышленник получил root или скомпрометировал гипервизор. Неизменяемость (Immutability) должна быть на уровне протокола хранения.
Мы используем Object Lock в S3-совместимых хранилищах (например, MinIO или отечественные облака).
Режим Compliance Mode (WORM — Write Once Read Many) гарантирует, что даже владелец аккаунта или «рут» не сможет удалить файл до истечения Retention-периода.
На уровне Linux-серверов это реализуется через XFS/ZFS snapshots с блокировкой удаления на уровне ядра или использование файловых атрибутов append-only (chattr +a), которые в связке с eBPF-мониторингом делают удаление данных невозможным без физического доступа к консоли.

Вопрос 2: «Почему переход на HTTP/3 (QUIC) — это не только про скорость, но и про головную боль для админа в 2026 году?»
Ответ новичка: «Это просто новая версия протокола, она быстрее работает на ARM-процессорах и лучше грузит сайты».
Ответ инженера:
Главная засада в том, что HTTP/3 работает поверх UDP, а не TCP.
Для админа это означает полный пересмотр правил фаервола (нужно открывать 443/UDP) и проблемы с классическими балансировщиками, которые привыкли к TCP-сессиям.
Connection Migration: QUIC позволяет клиенту менять IP (например, при переходе с Wi-Fi на 6G) без разрыва TLS-сессии. Для систем мониторинга и безопасности это выглядит как магия или атака, если не настроить корректное отслеживание ID соединений.
В 2026-м мы также обязаны учитывать отечественные TLS-сертификаты, которые в связке с QUIC иногда требуют специфического тюнинга MTU, чтобы пакеты не дропались на DPI.

Вопрос 3: «Концепция Zero Trust внутри локальной сети: зачем нам микросегментация, если у нас и так всё за фаерволом?»
Ответ новичка: «Если сеть закрыта извне, то внутри все свои. Достаточно разделить на VLAN для бухгалтерии и админов».
Ответ инженера:
Периметра больше не существует. Любой «умный» чайник или китайский ARM-терминал на складе — это потенциальная точка входа.
Zero Trust подразумевает, что мы не доверяем никому по умолчанию, даже серверу в соседней стойке.
Мы внедряем микросегментацию на уровне L7 через Service Mesh (например, Cilium с eBPF).
Вместо правил «IP A может ходить к IP B», мы пишем политики «Сервис А (подтвержденный сертификатом) может дергать только метод GET /api/v1 у Сервиса B». Всё остальное — drop по умолчанию. Это предотвращает горизонтальное перемещение (lateral movement) хакера по сети.


Практический пример: Включаем «бетон» для бэкапа
Если вы используете MinIO в своем контуре для хранения архивов, настройте корзину так, чтобы ее не удалил даже взбесившийся админ:

# 1. Создаем корзину с поддержкой Object Locking (в 2026-м это стандарт)
mc mb --with-lock myminio/backups-2026

# 2. Устанавливаем политику неизменяемости на 30 дней
# В режиме COMPLIANCE даже root не сможет удалить файл
mc retention set compliance 30d myminio/backups-2026

# 3. Проверяем статус файла
mc stat myminio/backups-2026/db_dump_march.tar.gz

# Вывод покажет:
# Object-Lock-Retain-Until-Date: 2026-04-11 12:00:00
# Любая попытка 'mc rm' выдаст 'Access Denied' до этой даты.
🔥31
Собеседование в 2026-м — это проверка не на знание команд, а на архитектурную паранойю. Вы должны уметь строить системы, которые выживут, даже если половина вашей инфраструктуры захвачена. Бэкап, который можно удалить — это не бэкап, а иллюзия. Сеть без Zero Trust — это проходной двор.


Золотое правило: Всегда говорите про Audit Log. Фраза «Я настрою экспорт логов доступа к бэкапам в неизменяемое внешнее хранилище» — это автоматический пропуск на следующий этап.

#собеседование_AF #security #storage #minio #quic #zerotrust #sysadmin #admin_future
🐧 Linux: Смерть динозавров. Почему ты должен забыть про `ifconfig` и `netstat` в 2026-м

Привет, коллеги! Сегодня пятница, 13-е, и самое время провести экзорцизм — изгнать из твоих пальцев привычку вводить команды из учебников 20-летней давности. Если ты до сих пор ставишь пакет `net-tools` на свежую ОС, ты добровольно ставишь себе деревянные протезы вместо современных карбоновых манипуляторов. На ARM-серверах и современных ядрах Linux эти утилиты показывают погоду на Марсе, а не реальное состояние стека.

Техническая суть:
Переходим на связку iproute2 (`ip`) и **iproute2-ss** (`ss`).
Под капотом: Старый `netstat` читает информацию из `/proc/net/`, что при большом количестве соединений превращается в пытку для CPU и диска. Современная утилита `ss` (Socket Statistics) использует механизм Netlink, запрашивая данные напрямую у ядра. Это в десятки раз быстрее и точнее, особенно когда у тебя тысячи IPv6-соединений.

Практика:

Заменяем старые привычки на актуальный CLI. Почувствуй скорость:


# 1. Вместо 'ifconfig' — смотрим адреса и статистику ошибок на интерфейсе
ip -c -s link show eth0
ip -6 addr # Только IPv6, только хардкор

# 2. Вместо 'netstat -tulpn' — ищем, кто слушает порты
# -l (listening), -n (numeric), -p (process), -t (tcp), -4/6 (family)
ss -ltnp4

# 3. Киллер-фича: ищем все соединения от конкретного IP, которые тупят
ss -o state established '( dport = :http or sport = :http )'

# 4. Мониторим изменения в сети в реальном времени (кто поднял интерфейс, кто упал)
ip monitor



Зачем это нужно:
Для личного спокойствия. Когда сервер под нагрузкой «приляжет», старый `netstat` может просто зависнуть, пытаясь распарсить `/proc`. `ss` выдаст результат мгновенно, позволив тебе быстро найти и отстрелить проблемный процесс.

#linux #networking #ss #iproute2 #troubleshooting #admin_future
🪟 Windows: CLI-первенство. Управляем сервером без «тяжелых» окон

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

Техническая суть:
Используем PowerShell Remoting (WinRM) через CLI. Это позволяет выполнять команды на сотнях серверов одновременно, не видя перед собой ни одного рабочего стола.

Под капотом: WinRM работает через HTTP/HTTPS (порты 5985/5986). В 2026-м мы настраиваем его на работу по TLS 1.3 с авторизацией по сертификатам. Это безопаснее, быстрее и позволяет автоматизировать рутину через обычные текстовые команды.

Практика:

Забудь про «Пуск -> Выполнить». Открывай терминал:


# 1. Подключаемся к удаленному Server Core узлу (интерактивно)
Enter-PSSession -ComputerName "SRV-DB-01"

# 2. Магия: узнаем свободное место на дисках сразу на всей группе серверов
Invoke-Command -ComputerName "SRV-APP-01", "SRV-APP-02", "SRV-APP-03" -ScriptBlock {
Get-Volume | Select-Object DriveLetter, FileSystemLabel,
@{Name="FreeGB";Expression={[Math]::Round($_.SizeRemaining / 1GB, 2)}}
}

# 3. Перезапускаем службу только если она "висит"
Invoke-Command -ComputerName "SRV-PRINT-01" -ScriptBlock {
Restart-Service -Name "Spooler" -Force
}



Зачем это нужно:
Скорость и масштабируемость. Пока твой коллега ждет прогрузки графики в RDP, ты уже собрал отчет по всем серверам в сегменте и ушел пить кофе.


#windows #powershell #winrm #automation #sysadmin #admin_future
🔥3
🎓 Собеседование сисадмина. Выпуск #10: Крах гипервизоров (Bare-metal ARM & KubeVirt)

Привет, коллеги! Юбилейный выпуск. В 2026 году классические гипервизоры вроде ESXi или Hyper-V окончательно превратились в музейные экспонаты. Лицензионные войны и потребность в дичайшей плотности вычислений привели нас к тому, что мы запускаем виртуальные машины прямо внутри Kubernetes на Bare-metal ARM серверах. Если ты до сих пор считаешь, что виртуалка — это «просто файл .vmdk на СХД», ты застрял в прошлом десятилетии.

Разберем три вопроса, которые проверят твою готовность к жизни в мире без «синих окон» управления гипервизором.

Вопрос 1: «Зачем нам тащить виртуальные машины в Kubernetes через KubeVirt, если можно просто всё контейнеризировать?»

Ответ новичка: «Это чтобы было удобнее смотреть на них в одной панели управления».

Ответ инженера:
Не всё можно (и нужно) запихивать в Docker. У нас полно legacy-софта на старых ядрах, специфических ОС или систем, требующих прямого доступа к ядру.

* KubeVirt позволяет управлять VM как обычными подами. Это дает единый IaC-стек (Terraform/Crossplane): тебе не нужно отдельно описывать сеть для виртуалки и отдельно для контейнера.
* Мы получаем общие механизмы мониторинга, логирования и сетевые политики (Cilium/Calico) для всего парка сразу. В 2026-м инфраструктура должна быть однородной, даже если внутри — зоопарк из систем.


Вопрос 2: «В чем главная проблема производительности при запуске VM на ARM-архитектуре и как мы её решаем?»

Ответ новичка: «ARM просто медленнее, чем x86, поэтому виртуалки на нем тормозят».

Ответ инженера:
Проблема не в скорости ядер (ARM Neoverse в 2026-м рвет конкурентов), а в накладных расходах на эмуляцию устройств и обработку прерываний.

* Чтобы не терять 20-30% мощности, мы используем VirtIO и механизмы Hardware-assisted virtualization (вроде ARM Virtualization Extensions).
* Для сетевого трафика мы пробрасываем устройства через SR-IOV или используем DPDK, чтобы пакеты шли в обход виртуального свитча прямо в гостевую ОС. Это критично для отечественных ARM-кластеров, где мы выжимаем максимум из каждого ватта энергии.


Вопрос 3: «Что такое Cloud-Init и почему без него создание виртуалки в 2026 году считается ручным трудом?»

Ответ новичка: «Это скрипт, который ставит софт после того, как я зашел на сервер по SSH».

Ответ инженера:
Cloud-Init — это стандарт де-факто для автоматической настройки инстанса при первом запуске.

* Виртуалка в KubeVirt — это эфемерная сущность. Мы не заходим на неё «настроить сеть». Cloud-Init получает метаданные, сам создает пользователей, прокидывает SSH-ключи, настраивает статику в IPv6 и монтирует диски.
* Если виртуалка не поднялась через Cloud-Init — мы её прибиваем и пересоздаем. Ручная правка конфигов внутри VM — это путь к «дрейфу конфигурации» и хаосу в мониторинге.


---

Практический пример: Декларативная виртуалка в KubeVirt

Вот так в 2026 году выглядит «создание сервера». Никаких кликов мышкой в vCenter:


# vm-arm64-prod.yaml
apiVersion: kubevirt.io/v1
kind: VirtualMachine
metadata:
name: legacy-app-server
spec:
running: true
template:
spec:
domain:
cpu:
cores: 4 # Оптимизировано под ARM ядра
resources:
requests:
memory: 8Gi
devices:
disks:
- name: containerdisk
disk: {}
- name: cloudinitdisk
disk: {}
volumes:
- name: containerdisk
containerDisk:
image: registry.corp.local/vms/debian-13-arm64:latest
- name: cloudinitdisk
cloudInitNoCloud:
userData: |
#cloud-config
users:
- name: admin_future
ssh_authorized_keys:
- ssh-ed25519 AAAAC3Nza...
runcmd:
- systemctl start specialized-service
Переход на KubeVirt и ARM — это не мода, а экономика. Ты либо управляешь тысячей серверов как одной сущностью, либо тонешь в тикетах на «создание одной маленькой виртуалки». В 2026 году админ — это не «хранитель ключей от серверной», а архитектор автоматизированных фабрик по переработке трафика.


Золотое правило: Если систему нельзя описать одним YAML-файлом — эта система не должна существовать в твоем продакшене.

#собеседование_AF #kubevirt #arm #baremetal #virtualization #kubernetes #admin_future
👍2
🐧 Linux: Быстрее тени. Почему find уходит на пенсию в 2026-м

Привет, коллеги! Понедельник, 16 марта, начинаем неделю с очистки кармы и ускорения пальцев. Если ты до сих пор ждешь по три минуты, пока find / прочешет твои терабайтные NVMe-массивы на ARM-кластере, то у меня для тебя плохие новости: твое время стоит дороже, чем циклы процессора. В 2026-м, когда плотность данных зашкаливает, админ должен находить иголку в стоге сена за миллисекунды.

Техническая суть:
Мы переходим на связку fd и ripgrep (rg).
Под капотом: В отличие от классического find, который последовательно обходит дерево ФС, fd использует многопоточность и по умолчанию игнорирует скрытые папки и .gitignore. А ripgrep — это grep на стероидах, написанный на Rust, который пролетает сквозь бинарные логи и огромные конфиги, используя SIMD-инструкции процессоров ARM и x86. Это не просто «быстрее», это другой уровень отзывчивости системы.

Практика:
Забудь про бесконечное ожидание. Используй современные инструменты для поиска битых конфигов или утечек в логах:


# 1. Найти все файлы .conf в /etc, измененные за последние 10 минут
# Быстрее, чем ты успеешь моргнуть
fd -e conf -t f --changed-within 10m . /etc

# 2. Найти строку "error" во всех логах, игнорируя бинарный мусор
# -z позволяет искать даже в сжатых .gz архивах (must have 2026)
rg -z "critical_error" /var/log/app/

# 3. Киллер-фича: интерактивный поиск через fzf
# Интегрируем fd в fzf для мгновенного перехода к файлу
alias pf="fd -t f | fzf --preview 'bat --color=always {}' | xargs -r vim"


Зачем это нужно:
Для бизнеса это сокращение времени простоя (MTTR). Пока твой коллега смотрит на мигающий курсор find, ты уже нашел проблемную строчку в конфиге, поправил её и ушел обсуждать план миграции на новый сегмент сети.

#linux #performance #rust #cli #sysadmin #admin_future
👍4
🪟 Windows: Детектив событий. Фильтруем Event Log без GUI

Коллеги, признавайтесь, кто до сих пор ждет по пять минут, пока «Просмотр событий» (Event Viewer) соизволит отрисовать список ошибок? В 2026 году в условиях Server Core и жесткой изоляции сегментов, GUI — это непозволительная роскошь. Если ты не умеешь вытаскивать причину падения сервиса одной строкой в PowerShell, ты беззащитен перед лицом инцидента.

Техническая суть:
Используем Get-WinEvent с XML-фильтрацией.
Под капотом: Старый Get-EventLog медленный, потому что он выкачивает все события и только потом их фильтрует. Get-WinEvent умеет отправлять запрос (FilterXML или FilterHashtable) прямо в движок журнала. В 2026-м это единственный способ быстро найти событие среди миллионов записей аудита в «цифровой крепости».

Практика:
Перестань страдать в графическом интерфейсе. Стань мастером запросов:

# 1. Найти 5 последних ошибок в системном журнале (мгновенно)
Get-WinEvent -FilterHashtable @{LogName='System'; Level=2} -MaxEvents 5

# 2. Кто заблокировал учетку? Ищем событие 4740 в журнале Security
# Работает в разы быстрее через FilterHashtable
$filter = @{
LogName = 'Security'
Id = 4740
}
Get-WinEvent -FilterHashtable $filter | Select-Object TimeCreated, Message

# 3. Выгрузка ошибок конкретного приложения за последние 2 часа
$startTime = (Get-Date).AddHours(-2)
Get-WinEvent -FilterXPath "*[System[(Level=2 or Level=3) and TimeCreated[@SystemTime >= '$($startTime.ToUniversalTime().ToString('s'))Z')]]" -LogName "Application"

Зачем это нужно:
Оперативность. В 2026 году требования к безопасности (ИБ) обязывают админа реагировать на подозрительные события в течение минут. Прямые запросы к логам позволяют автоматизировать алертинг и не тратить время на ожидание прогрузки тяжелых консолей управления.

#windows #powershell #eventlog #security #troubleshooting #admin_future
🔥2
🚀 Skills: GitOps Lite. Почему твой /etc должен быть репозиторием

Помнишь то чувство ужаса, когда ты поправил конфиг, сервис упал, а ты забыл, что именно изменил? В 2026 году фраза «я сейчас всё верну как было по памяти» звучит как признание в профнепригодности. Админ сегодня — это не тот, кто много помнит, а тот, кто всё записывает в Git.

Техническая суть:
Концепция Infrastructure as Code (IaC) начинается не с Terraform, а с обычного git init в папке с твоими скриптами или конфигами.
Под капотом: Использование Git дает тебе машину времени. Ты всегда видишь, кто, когда и зачем изменил параметр в nginx.conf или в настройках active_directory. В 2026-м это стандарт: любой аудит безопасности начинается с просмотра истории коммитов в инфраструктурном репозитории.

Практика:
Начни внедрять GitOps на минималках прямо сейчас. Это спасет твою нервную систему:


# 1. Инициализируем репозиторий для критических конфигов
cd /etc/myapp/
git init

# 2. Создаем понятный коммит (забудь про "fix", пиши суть!)
git add .
git commit -m "CHG: Изменен таймаут коннекта к БД для ARM-кластера (Ticket #404)"

# 3. Если всё сломалось — откат за одну секунду
git checkout HEAD^1 config.yaml
systemctl restart myapp

# 4. Просмотр "кто виноват" (blame)
git blame config.yaml

Зачем это нужно:
Личное спокойствие и коллективная ответственность. Когда в команде больше одного человека, Git становится единственным источником правды. Больше никаких config.bak, config.old.2, config_LAST_FINAL. Только чистая история изменений и возможность мгновенного отката.

#skills #git #iac #devops #bestpractices #admin_future
👍2
🐧 Linux: duf — Дисковая статистика здорового человека

Обычный `df -h` в 2026 году на сервере с кучей Docker-контейнеров и смонтированных ARM-разделов превращается в нечитаемую простыню. Пока ты ищешь нужный раздел в этом мусоре, место на диске успевает закончиться окончательно.

Ставь duf (Disk Usage/Free Utility). Она группирует разделы, понимает терминальные темы и рисует понятные прогресс-бары.


Почему это удобно:
Авто-группировка: Отделяет реальные диски от виртуальных (tmpfs, девайсы контейнеров).
Цветовая индикация: Если раздел забит на 90%, ты увидишь это красным цветом сразу, без вчитывания в цифры.
JSON-вывод: Идеально для скриптов, если нужно быстро выкинуть статус дисков в мониторинг.

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

sudo apt install duf
duf


Если нужно посмотреть только «настоящие» железные диски, чтобы не отвлекаться на мусор: duf --only local.

#linux #tools #duf #storage #cleanup
🪟 Windows: tnc — Твой универсальный сетевой швейцарский нож

В 2026-м пытаться проверить доступность порта через `telnet` — это как пытаться зажечь огонь трением палочек. В PowerShell давно есть нативный инструмент `Test-NetConnection` (сокращенно — `tnc`), который делает всё и сразу.

Зачем это нужно:
1. Проверка порта: Не надо гадать, закрыл ли порт фаервол в «цифровой крепости».
2. Трассировка: Сразу показывает маршрут до цели.
3. Диагностика: Выдает детальную инфу, почему пакет не дошел.


Примеры использования:


# Просто проверить, открыт ли порт веб-сервера
tnc 192.168.1.50 -Port 443

# Сделать проверку и сразу увидеть маршрут (TraceRoute)
tnc google.com -TraceRoute

# Проверить только ICMP (старый добрый пинг, но с нормальным объектом на выходе)
tnc 8.8.8.8 -InformationLevel Detailed


Pro Tip: Результат tnc — это объект. Его можно легко засунуть в условие if внутри твоего скрипта авто-деплоя.

#windows #powershell #networking #troubleshooting #tnc
2
🚀 Skills: Постмортем — Как перестать наступать на те же грабли

Сервер упал, ты его поднял за 5 минут — молодец. Но если ты не написал «постмортем» (разбор полетов), через месяц ты снова будешь поднимать его в 3 часа ночи по той же самой причине. В 2026-м цена ошибки в инфраструктуре на ARM-кластерах слишком высока.

Золотые правила хорошего постмортема:
1. Никаких имен: Цель — найти слабое место в системе, а не «наказать Ваню».
2. Хронология: Запиши по минутам: что случилось, когда заметили, когда исправили.
3. Root Cause: Найди корень проблемы. «Забился диск» — это не корень. «Логротейт не отработал из-за ошибки в конфиге» — вот это оно.


Шаблон простого отчета в Markdown:

Инцидент #42: Падение API
Дата: 17.03.2026
Что случилось: Ошибка 502 на фронтенде в течение 15 минут.
Причина: Утечка памяти в новом контейнере, OOM Killer прибил процесс.
Как исправили: Увеличили лимиты RAM, откатили версию образа.
Что сделать, чтобы не повторилось: Настроить алерт на потребление 80% RAM контейнером.


Админ, который пишет такие отчеты, автоматически переходит в категорию инженеров, которым доверяют ключи от самого дорогого продакшена.

#skills #management #postmortem #reliability #career
👍4
🐧 Linux: lnav — Когда логов больше, чем времени на жизнь

Привет, коллеги! Среда, 18 марта. В 2026-м наши ARM-ноды генерируют столько логов, что обычный tail -f превращается в бессмысленный поток символов, от которого рябит в глазах.

Если ты до сих пор пытаешься выцепить ошибку в консоли, просто надеясь на свою реакцию — остановись. Твои глаза заслуживают лучшего.

Используй lnav (The Log File Navigator). Это продвинутый вьювер, который понимает структуру логов «из коробки».

Почему это мастхэв:
• Слияние логов: access.log, error.log и системные логи в одной временной ленте
• Подсветка: ошибки — красным, предупреждения — желтым
• Фильтрация: нажал /, ввел паттерн — убрал шум


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

sudo apt install lnav
# Открываем папку с логами
lnav /var/log/nginx/

Pro Tip: нажми i — увидишь гистограмму. Резкий красный пик = момент, когда всё сломалось.

#linux #tools #lnav #logs #monitoring #admin_future
🪟 Windows: Охота на зависшие службы через PowerShell

Классика: служба зависла в состоянии Stopping. Перезапуск не работает, сервер тупит, ждать нельзя.

Решаем жестко через PowerShell:

$ServiceName = "YourServiceName"
$Service = Get-Service $ServiceName

if ($Service.Status -eq "Stopping" -or $Service.Status -eq "Pending") {
$ServicePID = (Get-CimInstance Win32_Service -Filter "Name='$ServiceName'").ProcessId
Stop-Process -Id $ServicePID -Force
Write-Host "Служба $ServiceName прибита. Можно запускать заново." -ForegroundColor Cyan
} else {
Restart-Service $ServiceName -Force
}

Зачем это:
Экономит время на ребутах. Быстро возвращает систему в строй, если служба зависла на ресурсах или сети.

#windows #powershell #troubleshooting #services #admin_future
🚀 Skills: Информационная гигиена или как не слить прод нейросетям

В 2026 админ без ИИ — как лесоруб без бензопилы. Но если ты вставляешь реальные IP, пароли и имена серверов в чат — ты сам отдаешь доступ.

Как делать правильно:
• Анонимизация: 192.168.1.100 → 10.0.0.x
• Удаление секретов: никаких токенов и ключей
• Обобщение: без реальных имен серверов


Пример запроса:

У меня есть конфиг Nginx (анонимизирован). Почему при proxy_pass через IPv6 появляются 502? MTU 1420.

Вывод:
ИИ — для идей и синтаксиса. Архитектура и доступы — только у тебя.

#skills #ai #security #opsec #bestpractices #admin_future
🎓Собеседование сисадмина. Выпуск #11: Распределенные хранилища (SDS, Ceph, Longhorn)

Привет, коллеги! Продолжаем наш марафон по технологиям 2026 года. В прошлом выпуске мы похоронили классические гипервизоры, но остался вопрос: где хранить данные этих тысяч виртуалок и контейнеров, если мы отказались от проприетарных СХД за десятки миллионов рублей?

В мире отечественных ARM-кластеров и жесткого импортозамещения мы перешли на SDS (Software-Defined Storage). Теперь хранилище — это не дорогая коробка с логотипом вендора, а софт, который объединяет диски обычных серверов в единое пространство.


Разберем три вопроса, которые покажут, понимаешь ли ты, как не потерять данные, когда в стойке одновременно «вылетят» два сервера.

Вопрос 1: «В чем принципиальная разница между классическим SAN/NAS и Software-Defined Storage (SDS)?»

Ответ новичка: «SDS — это когда много дисков в сети. Это дешевле, чем покупать готовый сервер от вендора».

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

1. Масштабируемость: В SAN мы ограничены портами контроллера. В SDS (Ceph, Longhorn) мы просто добавляем новый ARM-узел в кластер, и емкость растет линейно.
2. Отказоустойчивость: В SDS данные размазаны по узлам. Выход из строя целого сервера для нас — штатная ситуация, а не катастрофа.
3. Vendor Lock-in: В 2026-м это критично. Мы не зависим от поставок конкретных запчастей, мы используем любые доступные NVMe накопители.

Вопрос 2: «Что такое Replication Factor и Erasure Coding? Когда что выбирать?»

Ответ новичка: «Репликация — это копии, а Erasure Coding — это как RAID, только сложнее».

Ответ инженера:
Это два способа обеспечить выживание данных.

1. Replication (обычно x3): Мы храним три полные копии каждого блока на разных узлах.
Плюс: Максимальная производительность (чтение очень быстрое) и простота восстановления.
Минус: Огромные траты места (платим за 3 ТБ, получаем 1 ТБ полезного объема). Выбираем для БД и горячих виртуалках.

2. Erasure Coding (EC): Данные разбиваются на фрагменты + контрольные суммы (как в RAID 5/6), которые раскидываются по узлам.
Плюс: Экономия места (коэффициент может быть 1.5 вместо 3).
Минус: Высокая нагрузка на CPU и сеть при записи и восстановлении. Выбираем в 2026-м для холодных данных, архивов и бэкапов.

Вопрос 3: «Как вы будете бороться с проблемой Split-brain в распределенном хранилище?»

Ответ новичка: «Надо настроить мониторинг и быстро чинить сеть».

Ответ инженера:
Мониторинг не лечит, он констатирует смерть. Проблема Split-brain (когда две части кластера думают, что они главные) решается на уровне кворума.

1. Нечетное количество узлов: Минимум 3 (лучше 5) мониторов/контроллеров.
2. Алгоритмы консенсуса: Использование Paxos или Raft. Система не позволит записать данные, если большинство узлов не подтвердило операцию.
3. Fencing: Принудительная изоляция (отключение питания или портов) узла, который ведет себя неадекватно, чтобы он не портил данные в общем сторадже.

---

Практический пример: Проверка здоровья Ceph-кластера

В 2026-м ты не кликаешь в веб-морде, ты смотришь статус через CLI, чтобы понимать реальную нагрузку на OSD (диски):

# Проверить общий статус здоровья
ceph health detail

# Посмотреть распределение данных и нагрузку на диски
ceph osd df tree

# Если видишь статус DEGRADED — проверяем, не идет ли сейчас Recovery (восстановление)
ceph -s

Вывод: Админ, который умеет настраивать Ceph или Longhorn на ARM-серверах, в 2026 году — это элита. Ты больше не зависишь от сервисных контрактов, ты сам строишь фундамент, на котором стоит весь бизнес.

Золотое правило: Данные стоят дороже железа. Всегда проверяй Recovery Traffic Limit, чтобы восстановление одного диска не «положило» всю сеть компании.

#собеседование_AF #sds #ceph #longhorn #storage #nvme #admin_future
👍5