Skip to content

skaryleet/Vegman-Rx20G2-batcher

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Vegman Rx20 G2 Batcher

Готовый к эксплуатации инструмент автоматизации на 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.

📦 Установка

  1. Клонируйте репозиторий:

    git clone https://github.com/skaryleet/Vegman-Rx20G2-batcher.git
    cd Vegman-Rx20G2-batcher
  2. Установите необходимые зависимости:

    для macOS используйте venv: python3 -m venv .venv -> source .venv/bin/activate

    pip install -r requirements.txt

📖 Использование

  1. Подготовьте файл инвентаря в формате .csv, указав IP-адреса BMC, учетные данные и необходимые параметры.

Формат таблицы:

ip,hostname
10.15.0.1,dc15-srv-01
10.16.0.1,dc16-srv-01
  1. Запустите инструмент как модуль: python -m scripts.start

  2. Пример вывода:

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

Глеб Сергеев — Junior Infrastructure Engineer

About

Утилита автоматизации рутины для серверов YADRO VEGMAN Rx20 G2

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages