aeAdmin - Configuration
Desktop Shortcut
Typical installations will have a desktop shortcut that runs aeAdmin from the latest software branch installed on the system with a custom aeAdmin.cfg referenced.
Target:
E:\CM\software\%AECHELON_SOFTWARE_DIR%\bin\optimized-x64\aeAdmin.exe --cfg custom\integ\aeAdmin\aeAdmin.cfg
Start In:
E:\CM\data
Elevated Permissions for EDID Management
To support EDID management from the DISPLAY SETTINGS tab, aeAdmin must be run as an Administrator. You can still run as non-administrator, but loading, locking, and clearing EDIDs will not work.
To update the Desktop Shortcut to run as Administrator:
Open the shortcut Properties window
Go to the Compatibility tab
Check the “Run this program as an administrator” box
Click OK
Config Files
aeAdmin.cfg
This is the root config file for aeAdmin. Most settings are configured in this file, and all other configuration files used by aeAdmin are referenced here.
Users can specify the config location with the --cfg command line argument as shown in the Desktop Shortcut example.
If the --cfg argument is not specified, then the default location is used: custom\integ\aeAdmin\aeAdmin.cfg
Environment Variables
System environment variables can be used within the config file by enclosing them in the % symbol: %env_var%
The most commonly used environment variables are %AECHELON_SOFTWARE_DIR% and %AECHELON_DEVICE_CFG%
Macros
Some macros may be used to simplify token definitions. These are essentially shorthand/keywords that get expanded to their appropriate values. There are two types of macros: General and Node. General macros can be used in any token, while Node macros can only be used for tokens that define commands run on nodes listed in the CLUSTER tab.
Macro | Type | Token | Description |
|---|---|---|---|
$(SW_DIR) | General | SoftwareDir | Path to the currently active software branch on the IG. |
$(BIN_DIR) | General | BinDir | Path to where to find binaries on the IG. |
$(TOOLS_DIR) | General | ToolsDir | Path to where to find tools on the IG. |
$(DATA_DIR) | General | DataDir | Path to the root data directory on the IG. |
$(NODE_NAME) | Node | n/a | Will be replaced by the selected node's computer name when running a node command on the CLUSTER tab. |
$(NODE_IPMI_IP) | Node | n/a | Will be replaced by the selected node's IPMI IP address when running a node command on the CLUSTER tab. |
$(NODE_IG_IP) | Node | n/a | Will be replaced by the selected node's domain IP address when running a node command on the CLUSTER tab. |
$(FILE_PATH) | Node | n/a | Will be replaced by the user-selected file name when running either the Save or Load display configuration commands on the CLUSTER tab. |
$(HW_VER) | General | n/a | The current hardware version string as parsed from the ImageVersion file (e.g. "8.0", "9.0", "10.0"). |
Tokens
Token Name | Default Value | Description |
|---|---|---|
Macro Definition Tokens | ||
SoftwareDir | E:\CM\software\%AECHELON_SOFTWARE_DIR% | Defines the value used by the $(SW_DIR) macro for use in other token definitions. |
BinDir | E:\CM\software\%AECHELON_SOFTWARE_DIR%\bin\optimized-x64 | Defines the value used by the $(BIN_DIR) macro for use in other token definitions. |
ToolsDir | E:\CM\tools | Defines the value used by the $(TOOLS_DIR) macro for use in other token definitions. |
DataDir | E:\CM\data | Defines the value used by the $(DATA_DIR) macro for use in other token definitions. |
General Configuration Tokens | ||
LogLevel | INFO | How much information to log in the aeAdmin console (PROFILE, DEBUG, INFO, WARNING, ERROR). |
DefaultWorkingDir | $(DATA_DIR) | The default working directory for any external commands run by aeAdmin. |
DatabaseIdsConfigFile | $(DATA_DIR)\custom\integ\aeAdmin\databaseIdsCfg.json | Path to the database IDs configuration JSON file. |
AdminGuiCfgFile | $(DATA_DIR)\custom\integ\aeAdmin\AdminGUI.cfg | Path to the legacy AdminGui.cfg file used for discovering nodes in a legacy cluster environment. |
NodePortsFile | $(DATA_DIR)\custom\integ\aeAdmin\NodePorts.txt | Path to the legacy NodePorts.txt file used for discovering nodes in a legacy cluster environment. |
ImageVersionFile | C:\pc-nova\IMAGE_VERSION.txt | Path to the IMAGE_VERSION file containing the current systems version info. |
HostModeEnabled | ON | ON|OFF. Enables or disables the host mode controls. When enabled, the "Host Mode" button toggles whether or not aeAdmin listens to the host for database loading commands. |
HostModeRestartDelay | 3000 | Time in milliseconds to wait before starting the IG after receiving a new host command. |
CIGIConfigFile | $(DATA_DIR)\custom\config_host_if_cigi.cfg | Path to the config_host_if_cigi.cfg file used when HostModeEnabled ON. aeAdmin uses the IPs and ports defined in this file to listen to the host for database ID changes. |
StopIGViaShmem | ON | ON|OFF. When ON, aeAdmin will attempt cleanly stop the IG via shared memory when the Stop IG button is pressed. If this fails, aeAdmin will fallback to calling the StopIGCommand. When OFF, aeAdmin will just run the StopIGCommand to kill the IG. ON is the recommended mode to allow nova to properly cleanup, write logs, vectors cache, etc. |
StopIGCommand | taskkill /F /IM nova.exe | The command to run when the Stop IG button is pressed and StopIGViaShmem is OFF. |
InvalidateCacheCommand | The command to run when the "Invalidate Cache" button is pressed. | |
RunViewerCommand | $(BIN_DIR)\viewer.exe custom\override_viewer.cfg VIEWER | The command to run when the "Start Viewer" button is pressed. If set to "" the button will be hidden from users. |
RunSyncTestCommand | "" | The command to run when the "Sync Test" button is pressed. If set to "" the button will be hidden from users. |
RunOTWFATCommand | "" | The command to run when the "Run OTW FAT" button is pressed. If set to "" the button will be hidden from users. |
RunNVGFATCommand | "" | The command to run when the "Run NVG FAT" button is pressed. If set to "" the button will be hidden from users. |
RunSensorFATCommand | "" | The command to run when the "Run SENSOR FAT" button is pressed. If set to "" the button will be hidden from users. |
Generic1Command - Generic5Command | "" | Five tokens to allow users to optionally define generic commands. For example, users may want to add a button that runs a script to configure the simulators display configuration. If set to "" the buttons will be hidden from users. |
Generic1Text - Generic5Text | Button 1 - Button 5 | The text to display for each "generic" command button. |
PSCommand_GetNovaProcessIDs | (Get-Process 'nova').ID | Powershell command used to determine if the IG is currently running or not. It not recommended to change this, but left configurable to account for future Powershell/Windows updates that may change the behavior of this command. |
PSCommand_GetUDPPortsByPID | Netstat -p UDP -ano | findstr %1 | Powershell command used to determine if the IG is currently running with the CIGI ports bound or not. %1 is replaced with the PID(s) returned by the PSCommand_GetNovaProcessIDs command. This tells aeAdmin if we're running CIGI mode or standalone mode. It not recommended to change this token, but left configurable to account for future Powershell/Windows updates that may change the behavior of this command. |
Cluster Tab Tokens | ||
PSCommand_IPMIDiscover | $(TOOLS_DIR)\80IPMIdiscover.ps1 | Powershell command to run to discover nodes in a legacy cluster environment. The command should populate the IPMI Layout file which is then parsed by aeAdmin to populate the cluster table. |
IPMILayoutFile | $(TOOLS_DIR)\IPMILayout.txt | Path to the IPMI Layout file. This file is typically created by the IPMIDiscover script, but may be static if SkipIPMIDiscover is ON. |
SkipIPMIDiscover | OFF | ON|OFF. Whether or not to run the PSCommand_IPMIDiscover command. If OFF, then a static IPMI Layout file needs to exist. This is typically reserved for test/debug situations and not recommented for normal operation. |
IGConfigFile | $(DATA_DIR)\custom\IG_CONFIG\burn-in\igconfig.ccfg | Path to an igconfig.ccfg file. This is used to determine if we are in a multi-nucleus environment. |
MultiNucleusStaticLayoutEnable | OFF | ON|OFF. By default, aeAdmin will look at igconfig.ccfg to figure out any remote computers in a multi-nucleus environment. Alternatively, users can define a static multi-nucleus layout file. This may be useful when you want to exclude certain remote computers from showing up on the cluster tab. |
MultiNucleusLayoutFile | $(DATA_DIR)\custom\integ\aeAdmin\nucleusLayout.cfg | Path to a nucleus layout file used when MultiNucleusStaticLayoutEnable is ON. |
Cluster Tab Node Command Tokens | ||
NodePowerOnCommand | $(SW_DIR)\data\integ\aeAdmin\scripts\aeAdminFunctions.ps1 PowerOn -computerName $(NODE_NAME) -impiAddress $(NODE_IPMI_IP) | Command run whenever the Power On button is pressed for each node selected in the cluster table. If set to "" the button will be hidden from users. |
NodePowerOffCommand | $(SW_DIR)\data\integ\aeAdmin\scripts\aeAdminFunctions.ps1 PowerOff -computerName $(NODE_NAME) | Command run whenever the Power Off button is pressed for each node selected in the cluster table. If set to "" the button will be hidden from users. |
NodeRestartCommand | $(SW_DIR)\data\integ\aeAdmin\scripts\aeAdminFunctions.ps1 Restart -computerName $(NODE_NAME) | Command run whenever the Restart button is pressed for each node selected in the cluster table. If set to "" the button will be hidden from users. |
NodeReimageCommand | Start-Process powershell "$(TOOLS_DIR)\80ImageNode.ps1 $(REIMAGE_SHUTDOWN_ONLY) $(NODE_NAMES)" | Command run whenever the Reimage button is pressed for each node selected in the cluster table. If set to "" the button will be hidden from users. |
NodeRemovePopupsCommand | $(SW_DIR)\data\integ\aeAdmin\scripts\aeAdminFunctions.ps1 KillProcess -computerName $(NODE_NAME) -process WerFault.exe | Command run whenever the Remove Popups button is pressed for each node selected in the cluster table. If set to "" the button will be hidden from users. |
NodeScreenshotCommand | $(SW_DIR)\data\integ\aeAdmin\scripts\aeAdminFunctions.ps1 TakeScreenshot -computerName $(NODE_NAME) | Command run whenever the Take Screenshot button is pressed for each node selected in the cluster table. If set to "" the button will be hidden from users. |
NodeSaveDisplayCfgCommand | $(SW_DIR)\data\integ\aeAdmin\scripts\aeAdminFunctions.ps1 SaveDisplayCfg -computerName $(NODE_NAME) -filePath $(FILE_PATH) | Command run whenever the Save Display Config button is pressed for each node selected in the cluster table. If set to "" the button will be hidden from users. |
NodeLoadDisplayCfgCommand | $(SW_DIR)\data\integ\aeAdmin\scripts\aeAdminFunctions.ps1 LoadDisplayCfg -computerName $(NODE_NAME) -filePath $(FILE_PATH) | Command run whenever the Load Display Config button is pressed for each node selected in the cluster table. If set to "" the button will be hidden from users. |
NodeLaunchTightVNCCommand | $(SW_DIR)\data\integ\aeAdmin\scripts\aeAdminFunctions.ps1 LaunchTightVnc -computerName $(NODE_NAME) | Command run whenever the Launch TightVNC button is pressed for each node selected in the cluster table. If set to "" the button will be hidden from users. |
NodeStatusCommand | ping -l 5000 -n 1 $(NODE_NAME) | Command run automatically every 10 seconds to determine whether each node in the cluster table is online or offline. Not recommended to change this command. |
Display Settings Tab Tokens | ||
GpuEnumerationFile | C:\Tools\gpuEnumeration.csv | Path to the GPU enumeration file used by the display settings tab. This file is generated by running aeDisplay.exe --enumerateGpus. It is typically created once in the factory for each Nucleus hardware version. In rare cases, it may be necessary to regenerate the file on a device with unique hardware characteristics different from the factory defaults. |
DisplayCfgExcludedComputers | ““ | A semi-colon separated list of remote computer names to exclude from the Display Settings tab. Wildcards are accepted; for example, “GN*” could be used to exclude all desksides/workstations. |
NodeDefaultDisplayCfgDirectory | $(DATA_DIR)\custom\IG_CONFIG\%AECHELON_DEVICE_CFG% | Default directory to save or load display config files. Used by both the Display Settings tab for Nucleus display config files and Cluster tab for legacy cluster display configuration files. |
ServicePort | 7777 | The port on which aeAdminSvc is running on each device |
ServiceRootPath | aeAdmin | The root request path |
ServiceAuthToken | Base64 encoded User:Pass for Aechelon user | The Base64-encoded User:Pass authentication token for Basic HTTP authentication |
EdidManagementEnabled | ON | ON|OFF. Whether or not to enable the EDID management capabilities. |
EdidDefaultDir | $(TOOLS_DIR)\edid | The default directory to save or load EDID files. |
Database IDs Config
Typically named databaseIdsCfg.json. The path to the Database IDs config file is defined by the DatabaseIdsConfigFile token.
This config file defines a JSON list of the database configurations aeAdmin can run. The list populates the Database Selection dropdown on the IG tab. The configurations can be run manually, or launched remotely by ID if Host Mode is enabled.
Each database in the list should define the following JSON parameters:
Parameter | Description |
|---|---|
id | The ID that hosts can use to load this database configuration. |
description | Text describing the database configuration. Shown in the aeAdmin GUI list. |
cmd | The command to run when this database configuration is started (either manually or by a host). |
workingDir | The working directory in which to run the command. Typically the system's root data dir. |
Example Database IDs Config File
This example shows two database configurations. ID=1 to load Global DOD in CIGI mode and ID=101 to load Global DOD in standalone mode.
{
"ids" : [
{
"id" : "1",
"description" : "GLOBAL CIGI",
"cmd" : "cmd /c $(TOOLS_DIR)\\runcfg.vbs -sw %AECHELON_SOFTWARE_DIR% custom\\IG_CONFIG\\%AECHELON_DEVICE_CFG% DB_OVERLAY\\DB_GLOBAL_COMM_V2\\global_comm_v2.cfg custom\\ovrd_host_cigi.cfg",
"workingDir" : "$(DATA_DIR)"
},
{
"id" : "101",
"description" : "GLOBAL STANDALONE",
"cmd" : "cmd /c $(TOOLS_DIR)\\runcfg.vbs -sw %AECHELON_SOFTWARE_DIR% custom\\IG_CONFIG\\%AECHELON_DEVICE_CFG% DB_OVERLAY\\DB_GLOBAL_COMM_V2\\global_comm_v2.cfg custom\\ovrd_host_standalone_spy.cfg",
"workingDir" : "$(DATA_DIR)"
}
]
}
Image Version File
Typically called IMAGE_VERSION.txt and created in factory. The path to the image version file is defined by the ImageVersionFile token.
This config file is used by aeAdmin to figure out if it is running on a legacy cluster, nucleus, or deskside. If this file is missing, aeAdmin assumes it is running on a deskside.
Additionally, the hardware version #.# (e.g. 8.0, 9.0, 10.0) is parsed to use with the $(HW_VER) alias. This can be used to reference hardware-specific file paths as seen with the GpuEnumerationFile token.
aeAdminFunctions.ps1
This file contains several powershell functions used by various aeAdmin commands. Typically, this file should not be edited, but may be necessary for unique configurations. The baseline aeAdminFunctions.ps1 is located at $(SW_DIR)\data\integ\aeAdmin\scripts\aeAdminFunctions.ps1
Multi-Nucleus Layout File
By default, aeAdmin will parse the IGConfigFile to determine the computers in a Nucleus cluster. Alternatively, users can configure a static list of computers in the cluster using the MultiNucleusStaticLayoutEnable and MultiNucleusLayoutFile tokens. This may be useful for testing or when a system has multiple igconfig files with different computers in them, and parsing igconfig doesn't provide a complete picture of the entire cluster. The path to the file is defined by the MultiNucleusStaticLayoutFile token. The file should contain a line for each computer name and IP address.
Example Multi-nucleus Layout File
NU0123-1 192.168.1.11
NU0123-2 192.168.1.12
NU0123-3 192.168.1.13