Готовый к эксплуатации инструмент автоматизации на Python, предназначенный для массовой конфигурации, управления и харденинга (повышения безопасности) серверов YADRO VEGMAN Rx20 G2 через Redfish API.
Эта утилита оптимизирует рутинные операции системных инженеров, устраняя необходимость ручных изменений через веб-интерфейс BMC и позволяя управлять целыми серверными парками одновременно.
- Пакетное выполнение (Batch): Одновременное выполнение операций на множестве серверов по спискам IP-адресов.
- Харденинг и безопасность BMC: Автоматизация базовых настроек безопасности, включая конфигурацию LDAP, управление локальными пользователями и ротацию паролей за один проход.
- Информативный консольный интерфейс: Удобный, интуитивно понятный CLI-интерфейс с отслеживанием прогресса в реальном времени, структурированными таблицами и цветовым логированием.
- Генерация отчетов: Автоматическое создание простых отчетов и списков инвентаризации в формате
.xlsx. - Вендорозависимая оптимизация: Скрипт адаптирован и протестирован специально под эндпоинты и схемы Redfish API серверов YADRO VEGMAN Rx20 G2.
- Язык: Python 3.8+
- Библиотеки:
httpx— для создания быстрых асинхронных/синхронных Redfish HTTP-запросов.typer— для построения удобного и красивого CLI-интерфейса командной строки.rich— для продвинутого форматирования терминала, статус-баров и таблиц.openpyxl— для генерации файлов инвентаризации и отчетов Excel.
-
Клонируйте репозиторий:
git clone https://github.com/skaryleet/Vegman-Rx20G2-batcher.git cd Vegman-Rx20G2-batcher -
Установите необходимые зависимости:
для macOS используйте venv:
python3 -m venv .venv->source .venv/bin/activatepip install -r requirements.txt
- Подготовьте файл инвентаря в формате .csv, указав IP-адреса BMC, учетные данные и необходимые параметры.
Формат таблицы:
ip,hostname
10.15.0.1,dc15-srv-01
10.16.0.1,dc16-srv-01-
Запустите инструмент как модуль:
python -m scripts.start -
Пример вывода:
Usage: python -m scripts.start [OPTIONS] COMMAND [ARGS]...
╭─ Options ───────────────────────────────────────────────────────────╮
│ --help Show this message and exit. │
╰─────────────────────────────────────────────────────────────────────╯
╭─ Commands ──────────────────────────────────────────────────────────╮
│ cpu │
│ drop-bmc │
│ dimm │
│ raid │
│ bios-dump │
│ bios-apply │
│ health │
│ fans-set │
│ accounts-list │
│ accounts-roles │
│ account-create │
│ account-passwd │
│ account-role │
│ account-enable │
│ account-delete │
│ all │
╰─────────────────────────────────────────────────────────────────────╯
На каждое действие можно запросить
--helpи получить актуальную информацию о том, что скрипт желает получить для своей работы
Поддерживаются переменные BMC_USER и BMC_PASS в которых можно задать логин и пароль, соответственно
Этот инструмент выполняет административные действия в BMC серверов (такие как изменение настроек аутентификации и учетных записей).
- Обязательно тестируйте конфигурации на тестовом стенде перед запуском массовых задач в продуктивной среде.
- Убедитесь, что учетные данные и чувствительные токены хранятся безопасно и никогда не попадут в историю коммитов Git.
Алексей Стариков — Infrastructure Engineer / Systems Engineer
- Telegram: @skaryleet
Глеб Сергеев — Junior Infrastructure Engineer