Skip to content

Basic User Interface

SAA is a binary executable written in C++. Running it on Windows or Linux/FreeBSD is similar; this guide only shows Linux examples.

To display general usage information:

[SAA_HOME]# ./saa

To display usage information for a specific command:

[SAA_HOME]# ./saa -h -c <command name>

Example:

[SAA_HOME]# ./saa -h -c UpdateBios

General Options

Option Description or Usage
-h Shows help information
-v Displays verbose output on the screen
-I <InterfaceName> (case sensitive) Supported interfaces: Redfish_HI (executes in-band commands through Redfish Host Interface), Remote_INB (executes in-band commands on remote systems), Remote_RHI (executes in-band commands through Redfish Host Interface on remote systems)
-i <BMC/CMM IP address or host name> (case sensitive) BMC/CMM address for OOB usage
-l <BMC/CMM system list file name> System list file for managing multiple systems
-u <BMC/CMM user ID> BMC/CMM username
-p <BMC/CMM user password> BMC/CMM password
-f <BMC/CMM user password file> Reads the first line of the password file as the password
-c <command name> The SAA command to execute
--oi <OS IP address> Remote in-band OS IP address
--ou <OS user ID> Remote in-band OS username
--op <OS user password> Remote in-band OS password
--os_key <OS private key> Remote in-band OS private key (public key authentication)
--os_key_pw <OS private key password> Remote in-band OS private key password
--batch_count <number> Number of executions in a single batch (multiple systems only)
--version Shows version information
--port <BMC/CMM/Command port(s)> Format is RMCP:623,HTTPS:443. Supports RMCP (BMC/CMM OOB usage) and HTTPS (BMC/CMM Redfish usage); overwrites ports in the .saarc file. Some commands support additional optional ports — check each command's help message
--no_banner Hides the version and copyright banner
--no_progress Hides the progress message
--journal_level <level> Sets the SAA journal level: 0 silent, 1 fatal, 2 error, 3 warning, 4 information, 5 debug, 6 verbose
--journal_path <path> Sets the SAA journal path
--rc_path <path> Sets the .saarc file path
--show_multi_full Shows the intermediate status of all managed systems (multiple system management only)
--remote_saa <path> Sets the remote SAA path (remote in-band usage)
--remote_saa_rc <path> Sets the .saarc file path on the remote system (remote in-band usage)

Customizing SAA Configurations

Two methods customize execution configuration: command options and the .saarc file. A command option takes precedence over the .saarc file — a parameter in .saarc is overwritten by the corresponding command option. The default configuration applies when neither is set or valid.

Setting Name Default Value Description Customizable Via
journal_level 0 0: silent, 1: fatal, 2: error, 3: warning, 4: information, 5: debug, 6: verbose Command option and .saarc
journal_path Linux: ~/journal/supermicro/saa/; Windows: %HomePath%\journal\supermicro\saa\ Sets the journal output path. Invalid when journal_level is 0 (silent) Command option and .saarc
confirm_timeout 300 Confirm flag polling timeout, in seconds .saarc only
udp_timeout 240 Timeout for checking UDP connections, in seconds (1-240) .saarc only
tcp_timeout 240 Timeout for checking TCP connections, in seconds (1-240) .saarc only
thread_count 50 Thread count for concurrent executions on multiple systems .saarc only
multi_retry_count 2 Retry count for executions on multiple systems .saarc only
ipv6_file_name_switch 0 0: disable, 1: enable. Replaces : with alternate characters when a file name contains an IPv6 address .saarc only
cache_path %WorkingDirectory% Cache file path for ServiceCalls .saarc only
https_port 443 Managed system HTTPS port .saarc only
certificate None Certificate file(s) to verify customized and signed RoT firmware images .saarc only
rmcp_port 623 Managed system RMCP port for CMM/BMC connection Command option and .saarc
post_timeout 1200 POST complete polling timeout .saarc only
config_default_action none Default action of the XML config file generated by GetBmcCfg/GetCmmCfg. Values: none, change (case insensitive) Command option and .saarc
hostinterface_enable on Enables the host interface used by SAA .saarc only
Network_controller RNDIS Sets the Redfish Host Interface USB connection to CDC_ECM or RNDIS .saarc only
db_path Linux: ./GO_SNMP/default.db; Windows: .\GO_SNMP\default.db Location of the SQLite database file read by AlertManage .saarc only
ESXi_driver /vmfs/volumes/datastore1/Supermicro-vmware-sum-driver_1.0-0.0.0001_21624800.zip ESXi driver absolute path .saarc only
max_upload_speed 1000 Maximum upload speed for uploading firmware files in multiple-node mode, in Mbps. 0 means unlimited .saarc only
vm_port 623 Managed system Virtual Media port .saarc only
ikvm_port 5900 Managed system IKVM Server port .saarc only
oob_reboot_delay_time 0 Out-of-band reboot delay time, in seconds .saarc only
redfish_only off Pure Redfish flag .saarc only
command usage log enable Enables the saa.log file .saarc only

!!! note For the reboot option, SAA reboots or powers up the managed system after successfully executing the command. If the SAA command throws an exception, the system may not reboot or power up — after execution, verify that the reboot completed correctly.

!!! note When a BIOS file is uploaded via BMC, SAA continuously checks for a successful BIOS update after rebooting. If no "success" message is received within confirm_timeout seconds, SAA stops polling and reports that the file is "being updated," meaning the system needs more time to boot. Increase confirm_timeout if this occurs frequently.

!!! note thread_count limits SAA's maximum concurrent execution count to prevent overloading a system during multiple-node operations. For example, a thread count of 50 runs 50 working threads simultaneously.

!!! note Accessing cache files on mounted file systems with the ServiceCalls command is not supported — ensure the target path is not within a mounted directory.

!!! note The https_port setting applies to both OOB Redfish and Redfish Host Interface usage. The certificate file only supports X.509 in PEM and DER formats.

There are three ways to specify the .saarc file, in priority order:

  1. The --rc_path command option (highest priority)
  2. A .saarc file in the current directory
  3. A .saarc file in the user home directory (lowest priority)

Rename the bundled saarc.sample file to .saarc and place it in the current directory or the user home directory as needed.

!!! note On Windows, copy the SAA configuration file and rename it to .saarc using Command Prompt. On ESXi, there is no user home directory, so /vmfs/volumes/datastore1 is used instead.

Example .saarc contents:

# Please copy this file to the SAA execution directory or user home directory and
# rename to .saarc
# The SAA execution directory will be read first and the user home directory has
# second priority.
# Please remove "#" to activate a customized configuration

# set SAA journal level
# 0: silent, 1: fatal, 2: error, 3: warning, 4: information, 5: debug, 6: verbose
#journal_level = 0

# set SAA journal path
#journal_path = /home/administrator/journal/supermicro/test

# set cache file path for ServiceCalls
#cache_path = /home/administrator/cache/supermicro/test

# set confirm flag polling timeout (seconds)
#confirm_timeout = 300

# set the checking timeout for udp connection in seconds (1-240)
#udp_timeout = 240

# set thread count for multiple systems usage
#thread_count = 50

# set retry count for multiple systems usage
#multi_retry_count = 2

# set managed system https port
#https_port = 443

# set managed system RMCP port for CMM/BMC connection
#rmcp_port = 623

# set post complete polling timeout
#post_timeout = 1200

# set the default action of XML config file that GetBmcCfg and GetCmmCfg generated
# Acceptable value (case insensitive): none, change
#config_default_action = none

# set the host interface enable by SAA
#hostinterface_enable = on

# set Redfish Host Interface USB connection to CDC_ECM or RNDIS
#Network_controller = RNDIS

# replace ':' with '-' when file name contains an IPv6 address
#ipv6_file_name_switch = 0

# set certificate file for verifying customized signed RoT firmware images
#certificate = /home/administrator/cert/public.cert

# set snmp sqlite file path
#db_path = ./GO_SNMP/default.db

The syntax is name=value, where name is the parameter name defined by SAA and value is the configured value. If a value is invalid, SAA ignores it. All parameters are deactivated by default; remove the leading # on a line to activate that setting.

Managing a Single System

OOB

For managing a system through the OOB channel, the -i, -u, and -p options are used for BMC login authentication.

Single System OOB: saa -i <IP or host name> -u <username> -p <password> -c <command> [command options]

Example:

[SAA_HOME]# ./saa -i 192.168.34.56 -u ADMIN -p PASSWORD -c GetBmcInfo

Alternatively, use -f to specify a user password file, avoiding the need to enter the password manually each time:

Single System OOB: saa -i <IP or host name> -u <username> -f <password file> -c <command> [command options]

Example:

[SAA_HOME]# ./saa -i 192.168.34.56 -u ADMIN -f Password.txt -c GetBmcInfo

In-Band

For managing a system through the In-Band channel, use the -c option to execute a command and do not use the -l, -i, -u, -p, or -f options. See Appendix B, "Management Interface and License Requirements," for the in-band supported commands and their node product key requirements.

Single System In-Band: saa -c <command> [command options]

Example:

[SAA_HOME]# ./saa -c GetBmcInfo

Redfish Host Interface

The Redfish Host Interface can be used by software running on a computer system to access the Redfish Service used to manage the system. Some commands support the Redfish Host Interface.

Single System: saa -I Redfish_HI -u <username> -p <password> -c <command> [command options]

Example:

[SAA_HOME]# ./saa -I Redfish_HI -u <username> -p <password> -c GetBmcInfo

!!! note The Redfish Host Interface is not enabled by default on Linux. To enable it on Linux/FreeBSD, run Linux_enable_RHI.sh or FreeBSD_setup_RHI.sh from the /script folder in the SAA release package. For SUSE 12, if RHI still doesn't work after Linux_enable_RHI.sh, also run SuSE12_Firewall_WhiteList.sh from /script/SUSE to add RHI to the firewall whitelist. For ESXi systems, see Installing Redfish Host Interface.

Unlike standard in-band operation, Redfish Host Interface requires a <username> and <password> to access the managed system.

AuthNone Authentication

SAA supports AuthNone authentication for the in-band Redfish Host Interface. As a BMC OEM feature, AuthNone authentication requires OEM BMC firmware support. All SAA commands supporting -I Redfish_HI can be executed without a BMC username and password:

Single System: saa -I Redfish_HI -c <command> [command options]

Example:

[SAA_HOME]# ./saa -I Redfish_HI -c GetBmcInfo

BootStrapping Account Feature

SAA also supports a bootstrapping account feature for the in-band Redfish Host Interface, allowing all -I Redfish_HI commands to run without entering a BMC username and password. If AuthNone authentication is not supported by the managed system, a bootstrapping account is created and recorded in a cache file, and SAA uses that account to log in and run the command.

Single System: saa -I Redfish_HI -c <command> [command options]

Example:

[SAA_HOME]# ./saa -I Redfish_HI -c GetBmcInfo

Auto-Activating Redfish Host Interface

On Intel X14 systems, the Redfish Host Interface (RHI) is disabled by default to achieve the lowest power consumption with Package C-state PC6 enabled. For SAA commands that require RHI, SAA can automatically activate RHI before running the command, then deactivate it afterward if SAA was the one that activated it. The automatic flow:

  1. Check the RHI status. If deactivated, activate RHI.
  2. If the RHI connection is not available, run the OS-specific script/shell command to enable RHI:
    • Linux: Linux_enable_RHI.sh (SUSE additionally: SuSE12_Firewall_WhiteList.sh)
    • Windows: no action needed
    • FreeBSD: FreeBSD_setup_RHI.sh
    • ESXi: esxcli network
  3. If the RHI connection is available, proceed with the SAA command flow directly.
  4. If the RHI connection is still not available, stop the process and contact Supermicro for support.
  5. At the end of SAA command execution, deactivate RHI if it was activated in step 1.
  6. On SUSE, Clear_SuSE12_Firewall_disable_RHI.sh runs to remove RHI from the firewall whitelist.

On GB200 systems, RHI is not configured by default due to system-specific constraints. To configure RHI manually, fill in the BMC host IP, username, and password in the GB200_enable_RHI.sh script.

Pure Redfish Mode IPMI Raw Command Exception List

In in-band pure Redfish mode, some IPMI raw commands are still required to make the necessary RHI connection. Contact Supermicro for details.

Remote In-Band

Remote In-Band mode securely executes commands and transfers files between operating systems over the network using SSH. SAA acts as an SSH client and connects to an SSH server on the remote system for remote management.

Remote In-Band supports two authentication methods:

  1. Password-Based Authentication — authenticate using the OS username and password.
  2. Public Key Authentication — authenticate using an SSH private key. If the private key is encrypted, the private key password is also required.

Remote In-Band Options

Use -I Remote_INB for plain remote in-band, or -I Remote_RHI for remote in-band through Redfish Host Interface (which additionally requires the BMC username and password since it uses -I Redfish_HI under the hood on the remote system).

To generate an SSH key pair for public key authentication:

ssh-keygen -f <path_to_keys>

Transfer the public key to the remote system:

ssh-copy-id -i <path_to_public_key> <username>@<hostname_or_IP>

Customizing Remote SAA Configurations

The remote SAA path and .saarc file can be customized in three ways, in priority order:

  1. Use the --remote_saa command option to specify the path to the remote SAA executable.
  2. Rename remoteSaarc.sample to .remoteSaarc and copy it to the appropriate location.
  3. If neither of the above is used, place the remote SAA configuration in a default location.

Using Remote In-Band Mode

[SAA_HOME]# ./saa -I Remote_INB --oi 192.168.34.57 --ou root --op 111111 -c RemoteExec --remote_cmd "ls ~/supermicro/saa_remote_inband/ -l | grep test.sh" --file test.sh
[SAA_HOME]# ./saa -I Remote_RHI -u ADMIN -p Password --oi 192.168.34.57 --ou root --op 111111 -c GetBmcInfo --remote_saa /root/saa

Console Output

SuperServer Automation Assistant 1.0.0 (2023/08/18) (x86_64)
Copyright(C) 2023 Super Micro Computer, Inc. All rights reserved.
Start Remote In-Band execution on 192.168.34.56:
================================================================================
Console Output from the Remote Managed System 192.168.34.56
================================================================================
End Remote In-Band execution on 192.168.34.56.

Supported Commands

Remote In-Band mode currently supports the following commands:

BIOS Management: GetBiosInfo, UpdateBios, GetDefaultBiosCfg, GetCurrentBiosCfg, ChangeBiosCfg, LoadDefaultBiosCfg, SetBiosPassword, GetDmiInfo, ChangeDmiInfo, EditDmiInfo, EraseOAKey, GetBiosPostCode

BMC Management: GetBmcInfo, UpdateBmc, GetBmcCfg, ChangeBmcCfg, DownloadBmcCfg, UploadBmcCfg, GetBmcLANCfg, ChangeBmcLANCfg, SetBmcPassword, GetKcsPriv, GetLockdownMode, LoadDefaultBmcCfg, BmcReset, GetBmcUserList, SetBmcUserList, BmcHostName

Applications: RemoteExec

Transferring Files

When a Remote In-Band command involves a file transfer, SAA creates a new file (randomly named with 8 characters) in the saa_remote_inband/yyyy-mm-dd_hh-mm-ss folder under the user directory on the remotely managed system. A saa.log file is also created there — see SAA Logs. The log file is saved on the managing system to remote_inband/yyyy-mm-dd_hh-mm-ss_suffix with an IP address suffix.

Example transferring a file with --file <file>:

[SAA_HOME]# ./saa -I Remote_INB --oi 192.168.34.56 --ou root --op 111111 -c <command> --file <file> --remote_saa /root/saa

Console output:

SuperServer Automation Assistant 1.0.0 (2023/08/18) (x86_64)
Copyright(C) 2023 Super Micro Computer, Inc. All rights reserved.
Start Remote In-Band execution on 192.168.34.56:
Sending file 'sample.txt' to '/root/saa_remote_inband/2022-11-18_14-09-58/sample.txt' on 192.168.34.56.
============================================================================
Console Output from the Remote Managed System 192.168.34.56
============================================================================

Managing Multiple Systems

To manage multiple systems, SAA provides the -l option to concurrently execute commands on systems enumerated in a system list file. When managing a large number of systems, the --batch_count option divides the systems into multiple batches, each with a separate log file.

Multiple Systems OOB: saa -l <system list file> [-u <username> -p <password>] -c <command> [command options]

Managed systems are enumerated row-by-row in the system list file, in one of two formats:

  • Format 1: BMC_IP_or_HostName
  • Format 2: BMC_IP_or_HostName Username Password

For Format 1, -u and -p must be specified on the command line. For Format 2, -u and -p can be omitted from the command line — the username/password in the system list file overrides any -u/-p given on the command line.

Example:

[SAA_HOME]# ./saa -l SList.txt -u ADMIN -p PASSWORD -c GetDmiInfo --file DMI.txt --overwrite

SList.txt:

192.168.34.56
192.168.34.57 ADMIN1 PASSWORD1

For the first system (192.168.34.56), SAA uses -u ADMIN -p PASSWORD from the command line. For the second (192.168.34.57), SAA uses the username/password from the list file (ADMIN1/PASSWORD1).

Multiple Systems Remote In-Band: saa {-I Remote_INB | -I Remote_RHI} -l <system list file> -c <command> [command options] [--remote_saa <remote SAA path>]

For Remote_INB, the system list file supports two formats:

  • Format 1 (Password-Based): OS_IP_or_HostName OS_Username OS_Password
  • Format 2 (Public Key): OS_IP_or_HostName OS_Username OS_PrivateKey OS_Privatekey_Password (leave the password field empty if there is none)

For Remote_RHI, the system list file supports:

  • Format 1 (Password-Based): OS_IP_or_HostName OS_Username OS_Password BMC_Username BMC_Password
  • Format 2 (Public Key): OS_IP_or_HostName OS_Username OS_PrivateKey OS_Privatekey_Password BMC_Username BMC_Password

The options --oi, --ou, --op, --os_key, --os_key_pw, -u, and -p must be specified in the system list file for multiple-system remote in-band usage.

Example:

[SAA_HOME]# ./saa {-I Remote_INB | -I Remote_RHI} -l SList.txt -u ADMIN -p PASSWORD -c GetBmcInfo

SList.txt for Remote_INB:

192.168.34.56 root 111111
192.168.34.57 root /root/pvt_key 111111

SList.txt for Remote_RHI:

192.168.34.56 root 111111
192.168.34.57 root /root/pvt_key 111111 ADMIN PASSWORD1

!!! note Repeated managed system IPs or names in the system list file are not allowed. SAA limits its maximum concurrent execution count to avoid overloading — the default thread_count in .saarc is 50. See Customizing SAA Configurations.

!!! note Different formats apply to the system list file for the ActivateProductKey, SetBiosPassword, RemoteExec, and CpuOnDemand (actions 2, 3, and 4) commands — see their individual command pages.

Input Output Controls for Multiple Systems

File Input

SAA uses the input file specified on the command line (via --file) to manage multiple systems.

Example:

[SAA_HOME]# ./saa -l SList.txt -u ADMIN -p PASSWORD -c UpdateBios --file Supermicro_BIOS.bin

SList.txt:

192.168.34.56
192.168.34.57

SAA uses the single input file Supermicro_BIOS.bin to concurrently update BIOS on both listed systems.

File Output

When SAA outputs files for managed systems, each system gets one individual output file. The output file name is the name specified via --file, appended with . and the BMC/CMM_IP_or_Hostname from the system list file.

Example:

[SAA_HOME]# ./saa -l SList.txt -u ADMIN -p PASSWORD -c GetDmiInfo --file DMI.txt

SList.txt:

192.168.34.56
192.168.34.57

DMI information from the two systems is written to DMI.txt.192.168.34.56 and DMI.txt.192.168.34.57 respectively.

!!! note SAA only supports a single input file for managed systems in one command.

Screen Output

When execution begins, progress output is continuously written to a log file created at invocation. When execution finishes, the final status for each managed system is shown on screen row-by-row: "Index", "System Name", "Elapsed", "Status" (WAITING, RUNNING, SUCCESS, FAILED, INCOMPLETE, RETRY, IGNORED, or CANCEL), and "Exit Code". A status summary is shown before and after the status list. SAA then exits with the exit code of the concurrent executions.

Press <ENTER> during execution to see the current status before completion — this shows only systems in RUNNING or RETRY state. Use --show_multi_full to see the current status of all managed systems.

When using --batch_count for a large number of systems, the screen output shows only the status summary and log name per batch — see individual system status in the log output.

Example:

[SAA_HOME]# ./saa -l SList.txt -u ADMIN -p PASSWORD -c GetDmiInfo --file DMI.txt
[SAA_HOME]# ./saa -l SList.txt -u ADMIN -p PASSWORD -c GetDmiInfo --file DMI.txt --show_multi_full
[SAA_HOME]# ./saa -l SList.txt -u ADMIN -p PASSWORD -c GetDmiInfo --file DMI.txt --batch_count 2

Sample screen output:

SuperServer Automation Assistant 1.0.0 (2024/03/06) (x86_64)
Copyright(C) 2024 Super Micro Computer, Inc. All rights reserved.
Start to do GetDmiInfo for systems listed in SList.txt
Multi system log file created:
 SList.txt.log_2024-03-06_15-50-43_5228
Press ENTER to see the current execution (Index: 1 ~ 3) status:
---------------------------------Current Status---------------------------------
Executed Command:
 ./saa -u ***** -p ***** -l SList.txt -c GetDmiInfo --file DMI.txt
Summary:
 3 EXECUTIONS ( WAITING: 0 RUNNING: 2 SUCCESS: 1 FAILED: 0 INCOMPLETE: 0 RETRY: 0 IGNORED: 0 CANCEL: 0 )
Status List:
 Index | System Name | Elapsed | Status | Exit Code
 2 | 192.168.34.57 | 00:00:03 | RUNNING |
 3 | 192.168.34.58 | 00:00:03 | RUNNING |
Summary:
 3 EXECUTIONS ( WAITING: 0 RUNNING: 2 SUCCESS: 1 FAILED: 0 INCOMPLETE: 0 RETRY: 0 IGNORED: 0 CANCEL: 0 )
--------------------------------------------------------------------------------
----------------------------------Final Results---------------------------------
Executed Command:
 ./saa -u ***** -p ***** -l SList.txt -c GetDmiInfo --file DMI.txt
Summary:
 3 EXECUTIONS ( WAITING: 0 RUNNING: 0 SUCCESS: 3 FAILED: 0 INCOMPLETE: 0 RETRY: 0 IGNORED: 0 CANCEL: 0 )
Status List:
 Index | System Name | Elapsed | Status | Exit Code
 1 | 192.168.34.56 | 00:00:03 | SUCCESS | 0
 2 | 192.168.34.57 | 00:00:05 | SUCCESS | 0
 3 | 192.168.34.58 | 00:00:05 | SUCCESS | 0
Summary:
 3 EXECUTIONS ( WAITING: 0 RUNNING: 0 SUCCESS: 3 FAILED: 0 INCOMPLETE: 0 RETRY: 0 IGNORED: 0 CANCEL: 0 )
--------------------------------------------------------------------------------
Please check output message:
SList.txt.log_2024-03-06_15-50-43_5228

With --batch_count 2 against three systems, SAA creates one log file per batch and reports each batch's summary separately when finished.

Log Output

When SAA executes against managed systems, a log file is created and continuously updated with execution messages for each system. The log file name (shown on screen) is the system list file name appended with .log_, the date/time (yyyy-mm-dd_hh-mm-ss), the process ID (_PID), and a batch number (_logNumber) if --batch_count was used. The log file lists "Last Update Time," "Execution parameters," "Summary," and "Status List" sections for all systems, and an "Execution Message" section with per-system output.

The SList.log file is saved to /var/log/supermicro/SAA if that directory exists; otherwise it is saved in the same folder as the system list file.

Example log contents:

--------------------------------Last Update Time-------------------------------
2024-03-06_15:57:47
Process finished.
------------------------------Execution parameters-----------------------------
Executed Command:
 ./saa -l SList.txt -u ADMIN -p ***** -c GetDmiInfo --file DMI.txt
-----------------------------------Summary-------------------------------------
 2 EXECUTIONS ( WAITING: 0 RUNNING: 0 SUCCESS: 2 FAILED: 0 INCOMPLETE: 0 RETRY: 0 IGNORED: 0 CANCEL: 0 )
---------------------------------Status List-----------------------------------
Index |System Name |Start Time |End Time |Elapsed |Status |Exit Code
1 |192.168.34.56 |10-02_15:57:40 |10-02_15:57:42 |00:00:02|SUCCESS |0
2 |192.168.34.57 |10-02_15:57:40 |10-02_15:57:47 |00:00:07|SUCCESS |0
-------------------------------Execution Message-------------------------------
System Name
 192.168.34.56
Message
SuperServer Automation Assistant 1.0.0 (2024/03/06) (x86_64)
Copyright(C) 2024 Super Micro Computer, Inc. All rights reserved.