essrun command
Runs the IBM Elastic Storage® System (ESS) deployment command to create and deploy a working ESS cluster.
Synopsis
essrun { -N NODE-LIST | NODE-GROUP } [--offline] [-v] [-h]
{ config | healthcheck | update | timeset | firewall
| security | selinux | sudo | admincentral | network | cluster
| filesystem | vdisk | gui | cesvm }
Availability
Available with IBM Storage Scale System. [Only available in the management container]
Description
The essrun command runs the ESS deployment to create and deploy a working ESS cluster. It can be used to run the following Ansible® roles in ESS.
config: Configure requirements for ESShealthcheck: General health check status of the node(s)update: Update node to the latest ESS packages
timeset: Time check option for ESS 5000
firewall: Firewall security option for ESSsecurity: Security option for ESSselinux: SELinux security option for ESSsudo: Sudo security option for ESSadmincentral: AdminCentral security option for ESSnetwork: Create a high-speed network in ESScluster: Create an ESS clusterfilesystem: Create a file system on ESSvdisk: Create a vdiskset on ESSgui: Configure or modify GUI setup for ESS Legacycesvm: Manage CES VM in ESS.
Parameters
- -N NODE-LIST | NODE-GROUP
- Specifies hosts with host names separated by comma or the name of the node group.
- --offline
- Run program on all nodes specified with the -N option.
- -v | -V
- Shows verbose output.
- -h | --help
- Displays usage information about this script and exits.
To display usage information for the roles available with essrun, use
-hor--helpwith the role name. For example, to display usage information for thefirewallrole, use essrun firewall --help.
Subcommand help
- config
- Shows general health check status of the
node(s).Usage:

essrun config [-h] [-p] { load }
- -p
- Prompts for password used for root login to node(s).
- load
- Detects the node type of specified nodes, and configures passwordless SSH, creates node definitions, and creates VPD files.
- -h | --help
- Displays usage information about this subcommand and exits.
- healthcheck
- Shows general health check status of the
node(s).Usage:
essrun healthcheck [-h]- -h | --help
- Displays usage information about this subcommand and exits.
- update
- Updates nodes to the latest ESS
packages.Usage:
essrun update [-h] [--precheck | --offline | --serial { n | all }] [--include-firmwares | --ofed-only] [--silent]- --precheck
- Dry-run of an update. It executes primary checks for the nodes defined in -N and has to be run before actual update.
- --offline
- Run the update on all nodes specified with the -N option in the offline mode. If --offline is not specified, the command is run in the online mode (default behavior).
- --ofed-only
- Updates the OFED only. These updates are only done offline. This command option forces the reinstall of OFED.
- --include-firmwares
- Tries to update a storage enclosure and all drive firmware on I/O nodes (mmchfirmware).
- -s | --silent
- Run the update silently.
- --serial { n | all }
- Provides number for defining how many hosts Ansible should manage at a single time during online update. The default value is 1.
- -h | --help
- Displays usage information about this subcommand and exits.
timeset
Time check option for ESS
5000.Usage:essrun timeset [-h] [--server-ip 192.168.1.1] [--server-network 192.168.1.0/24] {client,server}- --server-ip 192.168.1.1
- Provides NTP Server IP address. It is needed for client option.
- --server-network 192.168.1.0/24
- Provides NTP Server network. It is needed for server option.
- -h | --help
- Displays usage information about this subcommand and exits.

- firewall
- Configures firewall security options for
ESS.Usage:
essrun firewall [-h] { enable | disable }- enable
- Enables the firewall.
- disable
- Disables the firewall.
- -h | --help
- Displays usage information about this subcommand and exits.
- security
- Configures security options for
ESS.Usage:
essrun -N NODE-LIST security [-h] { enable | disable | verify }- enable
- Enables security.
- disable
- Disables security.
- verify
- Verifies the security status.
- -h | --help
- Displays usage information about this subcommand and exits.
- selinux
- Configures SELinux security options for
ESS.Usage:
essrun -N NODE-LIST security [-h] { permissive | enable | disable }- permissive
- Enables SELinux security in the permissive mode.
- enable
- Enables SELinux security in the enforcing mode.
- disable
- Disables SELinux security.
- -h | --help
- Displays usage information about this subcommand and exits.
sudo
Configures SUDO security options for
ESS.Usage:essrun sudo [-h] [--user SUDO_USER] [--group SUDO_GROUP] [--sudo-password ] { enable | disable | disable_root | enable_root}- --user SUDO_USER
- Specifies the SUDO user name.
- --group SUDO_GROUP
- Specifies the SUDO group name.
- --sudo-password
- Provides the sudo password for the node (s).
- enable
- Enables SUDO.
- disable
- Disables SUDO.
- disable_root
- This option is required for SUDO disable_root.
- enable_root
- This option is required for SUDO enable_root.
- -h | --help
- Displays usage information about this subcommand and exits.

- admincentral
- Configures Admin Central related security options for
ESS.Usage:
essrun admincentral [-h] { enable | disable }- enable
- Enables Admin Central mode.
- disable
- Disables Admin Central mode.
- -h | --help
- Displays usage information about this subcommand and exits.
- network
- Creates a high-speed network for
ESS.Usage:
essrun network [-h] --suffix=SUFFIX- --suffix=SUFFIX
- Specifies the suffix of the high-speed network. You must add it separated by "=" and with no blank spaces.
- -h | --help
- Displays usage information about this subcommand and exits.
- cluster
- Creates an ESS
cluster.Usage:
essrun cluster [-h] [--name CLUSTER-NAME] [--suffix=SUFFIX] [--add-ems EMS-NODE | --add-nodes NODE-LIST]- --name CLUSTER-NAME
- Specifies the cluster name. The default cluster name is
test01. - --suffix=SUFFIX
- Specifies the suffix of the high-speed network. You must add it separated by "=" and no blank
spaces. For example,
--suffix=-hs. - --add-ems EMS-NODE
- Specifies the name of the ESS Management Server (EMS) node to be added.
- --add-nodes NODE-LIST
- Specifies the names of the ESS I/O nodes in a comma-separated list.
- -h | --help
- Displays usage information about this subcommand and exits.
- filesystem
- Creates a file system on
ESS.Usage:
essrun filesystem [-h] [--name FS_NAME] [--code RaidCode] [--bs BlockSize] [--size {n% | n | nK | nM | nG | nT}] --suffix=SUFFIX [--rg-only | --ces]- --name FS-NAME
- Specifies the file system name. The default file system name is
fs5k. The default file system name for CES iscesSharedRoot. - --code RaidCode
- Specifies the RAID code. The default RAID code is
8+2p. - --bs BlockSize
- Specifies the block size. The default block size is
16M. - --size {n% | n | nK | nM | nG | nT}
- Specifies the vdiskset size. The default vdiskset size is
100%. - --suffix=SUFFIX
- Specifies the suffix of the high-speed network. You must add it separated by "=" and with no
blank spaces. For example,
--suffix=-hs.
--rg-only
Use this flag if you want to create recovery groups only.
- --ces
- Use this flag if you want to create a CES file system.
- -h | --help
- Displays usage information about this subcommand and exits.
- vdisk
- Creates a vdiskset on
ESS.Usage:
essrun vdisk [-h] [--name VS_NAME] [--code RaidCode] [--bs BlockSize] [--size {n% | n | nK | nM | nG | nT}] --suffix=SUFFIX [--extra-vars "mmvdisk vdisk define options"]- --name VS-NAME
- Specifies the vdiskset name. The default vdiskset name is
5k. - --code RaidCode
- Specifies the RAID code. The default RAID code is
8+2p. - --bs BlockSize
- Specifies the block size. The default block size is
16M. - --size {n% | n | nK | nM | nG | nT}
- Specifies the vdiskset size. The default vdiskset size is
100%. - --suffix=SUFFIX
- Specifies the suffix of the high-speed network. You must add it separated by "=" and with no
blank spaces. For example,
--suffix=-hs. - --extra-vars "mmvdisk vdisk define options"
- Provide "mmvdisk vdisk define" options in quotation marks. For
example,
.--extra-vars "--DA DA1 --nsd-usage dataAndMetadata --storage-pool system" - -h | --help
- Displays usage information about this subcommand and exits.
gui
Configure the GUI for
ESS.Usage:essrun gui [-h] {--configure | --add-to-host}- -h | --help
- Displays usage information about this subcommand and exits.
- --configure
- Performs all initial configuration for GUI setup.
- --add-to-hosts
- Adds node(s) to the hosts.yml file for GUI setup in EMS.

- cesvm
- Create a virtual machine (VM) on
ESS.Usage:
essrun cesvm [-h] (--create | --delete) [--vm-name VNAME] --number-of-mellanox-device-passthru {1,2}- -h | --help
- Displays usage information about this subcommand and exits.
- --create
- Creates CES VM on I/O node.
- --delete
- Deletes CES VM on I/O node.
- -vm-name VNAME
- Shows user-defined VM name. Default name is
<Node Name>-essvm. - --number-of-mellanox-device-passthru {1,2}
- Specifies the number of Mellanox cards that want to pass inside VM with a minimum of one and maximum of two cards. Second and third cards are passed to the VM with respective number of card value.
Exit status
- 0
- Successful completion.
- nonzero
- A failure has occurred.
Security
You must have root authority to run this command.
Examples
- essrun config
-
- Fix SSH keys between essio1 and essio2 nodes (Every node that you define with the
-N flag). It also creates or fixes the inventory to run an online
update.
# essrun -N essio1,essio2 config load -pThe example given below shows config load prompt for password input.
ESS UNIFIED v6.2.0.0 CONTAINER root@cems0:/ # essrun -N essio3 config load -p [INFO] 2023-02-21T04:35:31.613625 Going to ask for the node password. All the nodes must have the same password [INFO] 2023-02-21T04:35:31.613655 Be aware that the password will not be prompted into the screen and you will not see it on it Password:
- Fix SSH keys between essio1 and essio2 nodes (Every node that you define with the
-N flag). It also creates or fixes the inventory to run an online
update.
- essrun update
-
- Run the update subcommand with the --offline option on the
nodes
ess3kaandess3kb.# essrun -N ess3ka,ess3kb update --offline - Run an update (top nodes first, one by one, then bottom nodes, one by one). If
only one building block is in the cluster, the result is same as doing an online
update.
# essrun -N essio1,essio2,essio3,essio4 update --serial 1 - Run an online update and stop between the top group (first node) and the bottom group (second
node).
A sample output is as follows:# essrun -N essio1,essio2 update[INFO] '2021-05-05T22:08:41.664490' Will stop for manual health check. [INFO] '2021-05-05T22:08:41.664490' If you want to continue with next group type 'y'. If you want to cancel update type 'n'. Update finished in group ess5k_group_A, do you want to continue? (y/n): y [INFO] '2021-05-05T22:08:41.664490' Continuing with next group... - Run an update on all nodes specified with
-N.
# essrun -N essio1,essio2 update --offline
Run an update on all nodes specified with -N one by
one.# essrun -N essio1,essio2 update --serial 1 --offline
- Run the update subcommand with the --offline option on the
nodes
- essrun timeset
-
- Enable timeset from the
container.
# essrun -N NodeList timeset enable - Check the status of the Chrony
timeset.
# essrun -N NodeList timeset verify - Disable timeset from the
container.
# essrun -N NodeList timeset disable
- Enable timeset from the
container.
- essrun selinux
-
- Enable SELinux on the ems1 node in the permissive
mode.
# essrun -N ems1 selinux permissiveNote: Restart the node after this command completes for the changes to take effect. - Enable SELinux on the ems1 node in the enforcing
mode.
# essrun -N ems1 selinux enableNote: Restart the node after this command completes for the changes to take effect. - Disable SELinux on the ems1
node.
# essrun -N ems1 selinux enableNote: Restart the node after this command completes for the changes to take effect.
- Enable SELinux on the ems1 node in the permissive
mode.
- essrun network
-
- Create network bonds with name
bond0. Infiniband or Ethernet, whichever is available is used. If both are available you are promoted forethorib.# essrun -N essio1,essio2 network --suffix=HighSpeedSuffix - Create network bonds with name
bond0with the specified netmask.# essrun -N essio1,essio2 network --suffix=HighSpeedSuffix --netmask {/24 | /25 | ...}
- Create network bonds with name
- essrun filesystem
-
- Create a file system with the
managementnetwork. Your cluster must belong to that same net block for using this command.# essrun -N essio1,essio2 filesystem - Create a file system with the
high-speednetwork. Your cluster must belong to that same net block for using this command.# essrun -N essio1,essio2 filesystem --suffix=HighSpeedSuffix - Create a file system with custom RAID code, block size, and
size.
# essrun -N essio1,essio2 filesystem --suffix=HighSpeedSuffix --code { 8+2p | 8+3p | ... } --bs { 8M | 16M | ... } --size { n% | n | nK | nM | nG | nT } - Create recovery groups only in the cluster. You need to create vdisk and add it manually to your
desired file
system.
# essrun -N essio1,essio2 filesystem --suffix=HighSpeedSuffix --rg-onl
- Create a file system with the
- essrun vdisk
-
- Create a vdisk of the specified name with the
managementnetwork. Your cluster must belong to that same net block for using this command.# essrun -N essio1,essio2 vdisk --name VdiskName - Create a vdisk with the
high-speednetwork. Your cluster must belong to that same net block for using this command.# essrun -N essio1,essio2 vdisk --suffix=HighSpeedSuffix - Create a vdisk with custom RAID code, block size, name, and
size.
# essrun -N essio1,essio2 vdisk --nameVdiskName --suffix=HighSpeedSuffix --code { 8+2p | 8+3p | ... } --bs { 8M | 16M | ... } --size { n% | n | nK | nM | nG | nT } - Create a vdisk with default RAID code, block size, and size. This command creates vdisk with the
defined NSD
usage.
# essrun -N essio1,essio2 vdisk --nameVdiskName --suffix=HighSpeedSuffix --extra-vars “{--declustered-array / --nsd-usage / --storage-pool}”
- Create a vdisk of the specified name with the
- essrun gui
-
- Configure the GUI for the first time in a Power9 EMS and two I/O nodes. The nodes can be ESS
5000, ESS 3000, or ESS 3200
nodes.
# essrun -N ems1,essio1,essio2 gui --configure - Configure or add the new nodes into GUI in a Power9 EMS. The nodes can be ESS 5000, ESS 3000, or
ESS 3200
nodes.
# essrun -N ess32001a,ess32001b gui --add-to-hosts
- Configure the GUI for the first time in a Power9 EMS and two I/O nodes. The nodes can be ESS
5000, ESS 3000, or ESS 3200
nodes.
- essrun cesvm
-
- Create
VM
# essrun -N essio3,essio4 cesvm --create --number-of-mellanox-device-passthru 1 - Delete
VM
# essrun -N essio3,essio4 cesvm –delete --number-of-mellanox-device-passthru 1
Note: You can run the virsh command to do any kind of administration upon VM after creating or deleting the VM. - Create
VM
Location
Available only in the container at: /opt/ibm/ess/deploy/bin