Скилл Tech

Автоматизация инфраструктуры

Пакетное выполнение SSH, матрицы пинга, проверки здоровья ваших серверов. Для инфраструктурных операций на нескольких серверах.

Обзор

Infrastructure Automation предоставляет переиспользуемые паттерны для SSH-операций на вашем серверном парке. Включает инвентарь серверов с публичными и Tailscale IP, шаблоны пакетного выполнения, тесты связности Tailscale-меша и скрипты проверки HTTP-здоровья сервисов PROD.

Инвентарь серверов

Шаблонная таблица ролей серверов (например, web, prod, db) с публичными IP, Tailscale IP и строками SSH-подключения. Заполняется из вашего приватного инвентаря и проверяется перед использованием; реальные адреса в поставляемый skill не записываются.

Пакетное выполнение SSH

Запуск команды на всех (или выбранных) серверах с нужными флагами: -o BatchMode=yes предотвращает зависание на интерактивных запросах, -o ConnectTimeout=5 предотвращает зависание на недоступных хостах. Ключи хостов добавляются в ~/.ssh/known_hosts один раз, отдельным шагом bootstrap, до любой пакетной автоматизации; доступность по mesh проверяется для каждого узла заранее, а недоступные узлы переходят на публичный IP или откладываются с записью в лог.

Матрица пинга (Tailscale)

Тест связности N-к-N между всеми устройствами Tailscale-меша. Каждый сервер пингует Tailscale IP остальных, формируя матрицу латентностей. Полезно при диагностике и проверке новых узлов.

Проверки здоровья

Проверка всех PROD-сервисов по портам: curl к эндпоинту /health каждого сервиса, отчёт HTTP-статуса или UNREACHABLE. Также шаблоны для статуса Docker-контейнеров, Tailscale-статуса, использования диска и валидации конфигов nginx.

Правила безопасности

  • Никогда не запускайте деструктивные команды пакетно — по одному серверу с явным подтверждением
  • Всегда используйте BatchMode=yes
  • Сначала проверьте команду на одном сервере
  • SSH-сессии должны быть короткими — запустить и выйти
  • Логируйте все операции для аудита
  • Метки сервисов (launchd/systemd) для runbook берите из живой проверки, а не по памяти или из заглушек