AgentSkillsCN

supermicro-saa

使用SAA(SuperServer自动化助手)管理Supermicro服务器的指南。在执行服务器管理任务时使用,包括固件更新、BIOS/BMC配置、系统健康监测、电源管理、存储管理,以及Supermicro服务器上的安全操作。

SKILL.md
--- frontmatter
name: supermicro-saa
description: Guide for using SAA (SuperServer Automation Assistant) to manage Supermicro servers. Use when performing server management tasks including firmware updates, BIOS/BMC configuration, system health monitoring, power management, storage management, and security operations on Supermicro servers.

SAA Server Management Guide

Overview

SAA (SuperServer Automation Assistant) is Supermicro's official CLI tool for automating server management tasks. It supports both in-band (local OS) and out-of-band (BMC/CMM) operations, single or multiple system management.

For complete command reference, see SAA Help Reference

Usage Modes

Single System Out-Of-Band (OOB)

Operates on single BMC/CMM remotely:

bash
saa -i <BMC_IP> -u <USER> -p <PASSWORD> -c <COMMAND> [OPTIONS]

Single System In-Band

Operates on local OS (no -i option). In-Band mode requires root privileges to access hardware interfaces directly.

Note: Only commands that access hardware require sudo. Help queries (-h) do not need sudo. Before executing In-Band commands, ask user for <SUDO_PASSWORD>. Never store or log the password.

bash
echo <SUDO_PASSWORD> | sudo -S saa -c <COMMAND> [OPTIONS]

Single System Remote In-Band

Operates on remote OS via SSH:

bash
# Remote_INB: Direct OS access
saa -I Remote_INB --oi <OS_IP> --ou <OS_USER> --op <OS_PASSWORD> -c <COMMAND> --remote_saa /path/to/saa

# Remote_RHI: Through Redfish Host Interface
saa -I Remote_RHI --oi <OS_IP> --ou <OS_USER> --op <OS_PASSWORD> -u <BMC_USER> -p <BMC_PASS> -c <COMMAND> --remote_saa /path/to/saa

Multiple Systems Management

Replace -i with -l for batch operations:

bash
saa -l <IP_LIST_FILE> -u <USER> -p <PASSWORD> -c <COMMAND> [OPTIONS]

Global Options

OptionDescription
-hShow help information
-vVerbose output
-iBMC/CMM IP address
-lSystem list file for batch operations
-uBMC/CMM user ID
-pBMC/CMM password
-fPassword file (more secure than -p)
-cCommand name
-IInterface: Redfish_HI, Remote_INB, Remote_RHI
--portCustom ports (format: "RMCP:623,HTTPS:443")
--batch_countConcurrent executions for batch operations
--show_multi_fullShow status of all systems in batch
--journal_levelLog level (0-6: silent to verbose)

Command Categories

Health Management

  • CheckOOBSupport, CheckAssetInfo, CheckSystemUtilization
  • CheckSensorData, SystemPFA, MemoryHealthCheck
  • ChassisIntrusion, AlertManage, CheckSelfTest, SuperDiag

BIOS Management

  • GetBiosInfo, UpdateBios, GetCurrentBiosCfg, ChangeBiosCfg
  • LoadDefaultBiosCfg, SetBiosPassword, GetDmiInfo, ChangeDmiInfo
  • GetBootOption, SetBootOption, SetHttpBoot

BMC Management

  • GetBmcInfo, UpdateBmc, GetBmcCfg, ChangeBmcCfg
  • GetBmcLANCfg, ChangeBmcLANCfg, SetBmcPassword
  • GetBmcUserList, SetBmcUserList, BmcReset

Power Management

  • GetPowerStatus, SetPowerAction, GetPsuInfo, UpdatePsu
  • PowerPolicy, CpuPowerManage, DcmiManage

Storage Management

  • GetRaidControllerInfo, GetRaidCfg, ChangeRaidCfg
  • GetNvmeInfo, ControlNVMe, GetSmartData
  • GetPMemInfo, GetVROCCfg, ChangeVROCCfg

Firmware Updates

  • UpdateBios, UpdateBmc, UpdateCpld, UpdateGpu
  • GetFirmwareInventoryInfo

Event Logs

  • GetEventLog, ClearEventLog
  • GetMaintenEventLog, ClearMaintenEventLog

Virtual Media

  • MountIsoImage, UnmountIsoImage
  • MountFloppyImage, UnmountFloppyImage, GetVmInfo

Security Management

  • SecureBootManage, BiosRotManage, BmcRotManage
  • GetLockdownMode, SetLockdownMode
  • TpmManage, GetTpmInfo, Attestation
  • SecureEraseDisk, SecureEraseRaidHdd

GPU Management

  • GetGpuInfo, UpdateGpu, DiagGpuStatus, GetGpuLog, GpuPowerManage

Common Examples

Get System Information

bash
# Get BIOS info (OOB)
saa -i 192.168.1.100 -u ADMIN -p ADMIN -c GetBiosInfo

# Get firmware inventory
saa -i 192.168.1.100 -u ADMIN -p ADMIN -c GetFirmwareInventoryInfo

# Get BMC info (In-Band)
echo <SUDO_PASSWORD> | sudo -S saa -c GetBmcInfo

Health Monitoring

bash
# Check sensor data (temperature, fan, voltage)
saa -i 192.168.1.100 -u ADMIN -p ADMIN -c CheckSensorData

# Check system utilization
saa -i 192.168.1.100 -u ADMIN -p ADMIN -c CheckSystemUtilization

# Get event log
saa -i 192.168.1.100 -u ADMIN -p ADMIN -c GetEventLog

Power Control

bash
# Get power status
saa -i 192.168.1.100 -u ADMIN -p ADMIN -c GetPowerStatus

# Power actions: on, off, cycle, reset
saa -i 192.168.1.100 -u ADMIN -p ADMIN -c SetPowerAction --action on
saa -i 192.168.1.100 -u ADMIN -p ADMIN -c SetPowerAction --action cycle

Firmware Updates

bash
# Update BIOS (OOB)
saa -i 192.168.1.100 -u ADMIN -p ADMIN -c UpdateBios --file BIOS.bin

# Update BMC
saa -i 192.168.1.100 -u ADMIN -p ADMIN -c UpdateBmc --file BMC.bin

# Update BIOS (In-Band, local)
echo <SUDO_PASSWORD> | sudo -S saa -c UpdateBios --file BIOS.bin

Configuration Management

bash
# Export BIOS configuration
saa -i 192.168.1.100 -u ADMIN -p ADMIN -c GetCurrentBiosCfg --file bios_cfg.txt

# Apply BIOS configuration
saa -i 192.168.1.100 -u ADMIN -p ADMIN -c ChangeBiosCfg --file bios_cfg.txt

# Export/Import BMC configuration
saa -i 192.168.1.100 -u ADMIN -p ADMIN -c GetBmcCfg --file bmc_cfg.txt
saa -i 192.168.1.100 -u ADMIN -p ADMIN -c ChangeBmcCfg --file bmc_cfg.txt

Multiple Systems (Batch Operations)

bash
# Update BIOS across fleet
saa -l servers.txt -u ADMIN -p ADMIN -c UpdateBios --file BIOS.bin

# Check health across fleet with full status
saa -l servers.txt -u ADMIN -p ADMIN -c CheckSensorData --show_multi_full

Getting Command Help

Always check command-specific options before use:

bash
saa -h -c <COMMAND>

# Examples
saa -h -c UpdateBios
saa -h -c SetPowerAction
saa -h -c ChangeBmcCfg

IP List File Format

For multiple systems management (-l option):

code
# Single IPs
192.168.1.100
192.168.1.101

# IP range
192.168.1.102-110

# With credentials per line (optional)
192.168.1.100,ADMIN,password123

Best Practices

  1. Get help first: Run saa -h -c <COMMAND> before using unfamiliar commands
  2. Test on single system: Before batch operations, verify on one server
  3. Use password files: Use -f password.txt instead of -p in scripts for security
  4. Backup configurations: Export configs before making changes
  5. Check compatibility: Verify firmware versions match your hardware platform
  6. Monitor batch jobs: Use --show_multi_full to track multi-system progress

Troubleshooting

  • Connection failed: Verify BMC IP, credentials, and network connectivity
  • Permission denied: Check BMC user has sufficient privileges
  • Command not supported: Some commands are platform-dependent (see user guide)
  • Special characters in password: Quote the password or use -f option

Reference Files

  • SAA Help Reference - Complete saa -h output with all commands
  • Command Help Directory - Detailed help for each command (217 files)
    • Example: ./reference/commands/UpdateBios.txt for UpdateBios command details
    • Each file contains: description, required/optional arguments, usage modes, and examples

Scripts

  • export_help.sh - Script to regenerate all help documentation

    bash
    # Regenerate help files (default: ./reference)
    ./scripts/export_help.sh
    
    # Specify custom output directory
    ./scripts/export_help.sh /path/to/output