Текущий статус: Работаю над реализацией второй стадии
Проект демонстрирует эволюционный подход к созданию отказоустойчивых системных сервисов.
- Интеграция в
PATHчерез~/binили/usr/local/bin - Настройка прав доступа и автоматический запуск через
.bashrc - Базовое управление скриптами как системными утилитами
- Создание юнита
name-unit.serviceс конфигурацией зависимостей - Настройка автоматических перезапусков и централизованного логирования
- Обработка взаимодействия с TTY для интерактивных сценариев
- Управление через стандартные команды
systemctl
Fire_Brigade.service— управляющий сервис с самодиагностикой- Каталог инцидентов с маппингом "проблема → сервис-решение"
- Единая система логгирования и аудита действий
- Динамическая установка зависимых сервисов
- Интерактивный ASCII-интерфейс управления
- Systemd (юниты, таймеры, журналы)
- Bash-скриптинг, управление процессами
- Python для сложной логики (планируется)
- Изоляция через отдельных пользователей/групп
- Контроль прав доступа (sudoers, capabilities)
- Централизованное логгирование в journald
- Кастомные логи в
/var/log/fire-brigade/
- Конфигурация как код
- Самовосстанавливающиеся сервисы
- Модульная архитектура
Создание эталонной реализации для развертывания отказоустойчивых системных сервисов в Linux-средах, от простых скриптов до комплексных самовосстанавливающихся систем.
fire-brigade/
├── README.md
├── stage-1/ # Базовые скрипты
│ ├── scripts/
│ └── install.sh
├── stage-2/ # Systemd сервисы
│ ├── services/
│ ├── configs/
│ └── install.sh
├── stage-3/ # Fire Brigade система
│ ├── core/ # Ядро системы
│ ├── modules/ # Модули для обработки инцидентов
│ ├── logs/ # Конфигурация логгирования
│ └── install.sh
└── docs/ # Документация
├── architecture.md
└── api.md
- Linux с systemd (версия 240+ рекомендуется)
- Bash 4.4+
- Права суперпользователя для установки сервисов
git clone https://github.com/yourusername/fire-brigade.git
cd fire-brigade
sudo ./install.shP.S. На данной стадии возможно лишь ручное добавление скриптов в /usr/local/bin в качестве скрипта .sh . А также добавление unit-файла в /etc/systemd/system/ .