🚀 DevOps Way - Практические гайды

Практические DevOps инструкции, которые реально работают в production!

🐳 Docker & Kubernetes - от основ до продвинутых техник
⚙️ CI/CD Pipeline - автоматизация развертывания
📊 Monitoring & Logging - наблюдаемость систем
🔧 Infrastructure as Code - Terraform, Ansible
🛡️ Security & Best Practices - безопасность DevOps

Каждый гайд проверен на практике и содержит рабочие примеры!

День 0: SSH — один ключ вместо пароля везде

Цель урока После урока вы умеете создать Ed25519 SSH-ключ, подключить его к ssh-agent с автозагрузкой, добавить публичную часть в GitHub и клонировать приватный репозиторий без паролей. Понимаете, почему один ключ работает на десятке сервисов и как через ~/.ssh/config держать рабочий и личный GitHub в одной системе. Параметр Значение Bloom Применение SFIA Уровень 2 Время 30–40 минут Артефакт Рабочий ~/.ssh/id_ed25519 + ~/.ssh/config + автозагрузка агента Проверка ssh -T git@github.com → приветствие от GitHub Теория за 3 минуты Пароль от GitHub вы пишете глазами — и его украдёт любой shoulder-surfing, phishing, случайный скриншот. SSH-ключ этот механизм убирает. ...

16 апреля 2026 · 7 минут · 1298 слов · DevOps Way

Claude Code CLI + RAG + Context Engineering: полный гайд

TL;DR Prompt engineering — это 5% успеха. Context engineering — остальные 95%. Мы построим AI-ассистента, который: Знает вашу документацию (759 файлов → 16,548 чанков) Выполняет команды (tool calling) Работает локально (RTX 3090, никаких облаков) Отвечает за 10-15 секунд Установка Claude Code CLI # Требования: Node.js 18+ node --version # v18.x или выше # Установка через npm npm install -g @anthropic-ai/claude-code # Или через npx (без установки) npx @anthropic-ai/claude-code # Проверка claude --version Первый запуск: ...

5 февраля 2026 · 11 минут · 2288 слов · DevOps Way

🔐 FreeIPA: руководство по установке централизованной системы управления идентификацией

🔒 Категория: Системное администрирование 💡 Цель: Развернуть production FreeIPA с учётом всех подводных камней 🧠 Чему научитесь: Правильная установка FreeIPA Настройка LDAP, Kerberos, DNS, CA Управление пользователями Мониторинг и решение проблем Резервное копирование ⚠️ Требования: RHEL/CentOS Stream/AlmaLinux/Rocky 8-9 Минимум 4GB RAM Статический IP и FQDN Доступ root 📚 Серия статей: Установка FreeIPA (эта статья) NFS + Autofs интеграция Hashicorp Vault интеграция 🏗️ Архитектура FreeIPA graph TB A[FreeIPA Сервер] A --> B[LDAP389 Directory] A --> C[KerberosMIT KDC] A --> D[DNSBIND] A --> E[CADogtag] Компоненты: ...

1 июня 2025 · 6 минут · 1128 слов · DevOps Way

День 1: три состояния Git — где сейчас живёт ваш файл

Цель урока После урока вы понимаете, в каком из трёх состояний живёт каждый ваш файл (working / staging / committed), читаете git status как карту и используете git add -p для осознанных коммитов вместо git add .. Знаете, какой командой вернуть файл из каждого состояния. Параметр Значение Bloom Понимание, Применение SFIA Уровень 2 Время 30–40 минут Артефакт ~/.gitconfig с алиасами s, d, dc + история из 5 осознанных коммитов Проверка git status → nothing to commit, working tree clean; git log --oneline показывает коммиты в формате type(scope): message Теория за 3 минуты У файла в Git три состояния, и каждая команда — это переход между ними. ...

16 апреля 2026 · 8 минут · 1 слово · DevOps Way

💾 FreeIPA + NFS + Autofs: Production-Grade централизованное хранилище

💾 Категория: Системное администрирование 💡 Цель: Настроить безопасное NFS хранилище с автомонтированием 🧠 Чему научитесь: Безопасная настройка NFS (без no_root_squash!) Правильные параметры монтирования (hard vs soft) Autofs с FreeIPA LDAP Kerberos для NFS Решение проблем ⚠️ Требования: FreeIPA настроен (часть 1) RHEL/CentOS Stream/AlmaLinux/Rocky 8-9 Статический IP Root доступ 📚 Серия статей: Установка FreeIPA NFS + Autofs (эта статья) Hashicorp Vault интеграция 🚨 Production vs Лаборатория Параметр ❌ Лаборатория ✅ Production NFS exports no_root_squash root_squash Монтирование /home soft hard,intr DNS chattr +i NetworkManager Kerberos Опционально Обязательно SELinux Permissive Enforcing 🔥 Важно: no_root_squash в production = нарушение безопасности! ...

15 декабря 2025 · 7 минут · 1323 слова · DevOps Way

День 2: reflog и fsck — что спасает после git reset --hard, а что нет

Цель урока После урока вы умеете восстановить потерянный коммит через git reflog, восстановить staged-изменения через git fsck --lost-found и точно знаете, какие операции Git безвозвратно удаляют данные. Понимаете, как reset --hard действует на файл в каждом из трёх состояний (working / staging / committed). Параметр Значение Bloom Применение, частично Анализ SFIA Уровень 2 Время 40–60 минут Артефакт ~/.gitconfig с алиасами safe-reset, recover-staged, tree, undo Проверка Мини-тест + восстановление потерянного коммита за 2 команды Теория: что такое «потеря данных» в Git В Дне 1 вы видели три состояния — working / staging / committed. Сегодня смотрим на них под углом reset’а. ...

16 апреля 2026 · 7 минут · 1373 слова · DevOps Way

День 3: ветки и merge — fast-forward против --no-ff

Цель урока После урока вы умеете создать feature-ветку и слить её в main двумя разными способами (fast-forward и --no-ff), читаете git log --graph, понимаете разницу между тремя стратегиями merge (ff / no-ff / squash) и решаете merge-конфликт по маркерам <<<<<<< ======= >>>>>>>. Параметр Значение Bloom Применение SFIA Уровень 3 Время 40 минут Артефакт ~/.gitconfig с merge.ff = false, merge.conflictStyle = diff3, alias graph Проверка git log --graph показывает два merge-коммита с разной формой; конфликт решён Теория за 3 минуты Ветка в Git — это указатель на коммит. Не копия, не папка, не «параллельный мир». Одна строчка в файле .git/refs/heads/main с SHA. ...

16 апреля 2026 · 9 минут · 1 слово · DevOps Way

🔐 Интеграция Hashicorp Vault с FreeIPA: Управление секретами в DevOps

🏗️ Архитектура интеграции graph TB A[Пользователь] B[Vault Server] C[FreeIPA LDAP] A -->|1. Логин| B B -->|2. Проверка| C C -->|3. OK| B B -->|4. Token| A A -->|5. Секреты| B Процесс аутентификации: Пользователь вводит LDAP учётные данные Vault запрашивает FreeIPA LDAP FreeIPA проверяет учётные данные Vault выдаёт токен доступа Пользователь работает с секретами 💻 Требования Компонент Требования FreeIPA Настроен и работает Vault Server Linux, 2GB RAM Клиенты Vault CLI Сеть Доступ к FreeIPA:389 🚀 Часть 1: Установка Vault Установка на RHEL/CentOS # Репозиторий HashiCorp dnf config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo # Установка dnf install -y vault # Проверка vault --version Конфигурация Vault mkdir -p /etc/vault.d mkdir -p /opt/vault/data cat > /etc/vault.d/vault.hcl << 'EOF' # Vault конфигурация для интеграции с FreeIPA storage "file" { path = "/opt/vault/data" } listener "tcp" { address = "0.0.0.0:8200" tls_disable = 1 } api_addr = "http://192.168.1.30:8200" ui = true EOF chown -R vault:vault /opt/vault /etc/vault.d chmod 640 /etc/vault.d/vault.hcl ⚠️ Важно: tls_disable = 1 только для лаборатории! В production используйте TLS! ...

15 декабря 2025 · 8 минут · 1547 слов · DevOps Way

День 4: rebase vs merge — когда переписать историю, когда сохранить

Цель урока После урока вы умеете перестроить feature-ветку поверх свежего main через git rebase, понимаете разницу между rebase и merge на уровне графа, используете rebase -i для чистки коммитов перед PR (squash / reword / drop) и знаете золотое правило: не ребейсить то, что уже запушено в публичную ветку. Параметр Значение Bloom Применение, частично Анализ SFIA Уровень 3 Время 45 минут Артефакт ~/.gitconfig с pull.rebase = true, rebase.autoStash = true, alias rb, rbi Проверка Feature-ветка успешно ребейзнута поверх main; git log --graph показывает линейную историю Теория: rebase — это не merge git merge соединяет две ветки merge-коммитом, сохраняя факт ветвления: ...

16 апреля 2026 · 11 минут · 2175 слов · DevOps Way

День 5: git hooks — как отловить мусор до коммита

Цель урока После урока вы умеете написать и установить pre-commit и commit-msg hook на чистом bash (без Husky / Node / Python), понимаете почему hooks живут локально и как распространить их на команду через core.hooksPath + папку в репозитории. Можете добавить проверку секретов, trailing whitespace, формата Conventional Commits. Параметр Значение Bloom Применение SFIA Уровень 3 Время 40 минут Артефакт repo/.githooks/pre-commit + commit-msg + core.hooksPath = .githooks Проверка Коммит с секретом блокируется; коммит с кривым сообщением блокируется; git commit --no-verify обходит (и это ожидаемо) Теория: что такое git hook Hook — это исполняемый файл в папке .git/hooks/, который Git вызывает на определённое событие. Если файл есть и имеет бит +x — Git запустит его и смотрит на exit code: 0 — продолжить операцию, не 0 — отменить. ...

16 апреля 2026 · 8 минут · 1633 слова · DevOps Way

День 6: bisect — Git находит сломавший коммит за вас

Цель урока После урока вы умеете найти коммит, внёсший регрессию, за log₂(N) шагов через git bisect; различаете bad, good, skip; умеете автоматизировать поиск через git bisect run с любым тест-скриптом. Параметр Значение Bloom Применение, Анализ SFIA Уровень 2–3 Время 30–40 минут Артефакт test-bisect.sh — тест-детектор под bisect run Проверка Мини-тест + сценарий «найди виновника за 4 шага» Теория за 3 минуты Git-история — это DAG коммитов. Каждый коммит знает, от какого родителя он произошёл. ...

16 апреля 2026 · 6 минут · 1 слово · DevOps Way

День 7: cherry-pick и rerere — перенос коммитов и память Git о конфликтах

Цель урока После урока вы умеете переносить отдельные коммиты между ветками через cherry-pick, различаете случаи, когда это уместно, и когда правильнее merge/rebase. Включили rerere глобально и понимаете, как Git запоминает ваше решение конфликта, чтобы применить его автоматически в следующий раз. Параметр Значение Bloom Применение, Анализ SFIA Уровень 2–3 Время 35–45 минут Артефакт rerere.enabled = true в ~/.gitconfig + алиас pick Проверка Мини-тест + сценарий с повторным конфликтом Теория за 3 минуты git cherry-pick <sha> берёт один коммит с одной ветки и применяет как новый коммит на текущую. Новый коммит имеет другой SHA, но тот же diff и то же сообщение. ...

16 апреля 2026 · 7 минут · 1373 слова · DevOps Way