Configuring Infiniband Switches
- Depending on the number of ports available on your Infiniband switch, they can be classified into:
EDR Switches (36 ports)
HDR Switches (40 ports)
Input the configuration variables into the network/infiniband_edr_input.yml
or network/infiniband_hdr_input.yml
as appropriate:
Name |
Default, Accepted values |
Required? |
Purpose |
---|---|---|---|
enable_split_port |
false, true |
required |
Indicates whether ports are to be split |
ib_split_ports |
optional |
Stores the split configuration of the ports. Accepted formats are comma-separated (EX: “1,2”), ranges (EX: “1-10”), comma-separated ranges (EX: “1,2,3-8,9,10-12”) |
|
snmp_trap_destination |
optional |
The IP address of the SNMP Server where the event trap will be sent. If this variable is left blank, SNMP will be disabled. |
|
snmp_community_name |
public |
The “SNMP community string” is like a user ID or password that allows access to a router’s or other device’s statistics. |
|
cache_directory |
Cache location used by OpenSM |
||
log_directory |
The directory where temporary files of opensm are stored. Can be set to the default directory or enter a directory path to store temporary files. |
||
mellanox_switch_config |
optional |
By default, the list is empty. |
|
ib 1/(1-xx) config |
“no shutdown” |
Indicates the required state of ports 1-xx (depending on the value of 1/x) |
|
save_changes_to_startup |
false, true |
Indicates whether the switch configuration is to persist across reboots |
Before you run the playbook
Before running network/infiniband_switch_config.yml
, ensure that SSL Secure Cookies are disabled. Also, HTTP and JSON Gateway need to be enabled on your switch. This can be verified by running:
show web (To check if SSL Secure Cookies is disabled and HTTP is enabled)
show json-gw (To check if JSON Gateway is enabled)
In case any of these services are not in the state required, run:
no web https ssl secure-cookie enable (To disable SSL Secure Cookies)
web http enable (To enable the HTTP gateway)
json-gw enable (To enable the JSON gateway)
When connecting to a new or factory reset switch, the configuration wizard requests to execute an initial configuration:
(Recommended) If the user enters ‘no’, they still have to provide the admin and monitor passwords.
If the user enters ‘yes’, they will also be prompted to enter the hostname for the switch, DHCP details, IPv6 details, etc.
Note
When initializing a factory reset switch, the user needs to ensure DHCP is enabled and an IPv6 address is not assigned.
All ports intended for splitting need to be connected to the network before running the playbook.
Running the playbook
If enable_split_port
is true, run:
cd network
ansible-playbook infiniband_switch_config.yml -i inventory -e ib_username="" -e ib_password="" -e ib_admin_password="" -e ib_monitor_password="" -e ib_default_password="" -e ib_switch_type=""
If enable_split_port
is false, run:
cd network
ansible-playbook infiniband_switch_config.yml -i inventory -e ib_username="" -e ib_password="" -e ib_switch_type=""
Where
ib_username
is the username used to authenticate into the switch.Where
ib_password
is the password used to authenticate into the switch.Where
ib_admin_password
is the intended password to authenticate into the switch afterinfiniband_switch_config.yml
has run.Where
ib_monitor_password
is the mandatory password required while running the initial configuration wizard on the Inifiniband switch.Where
ib_default_password
is the password used to authenticate into factory reset/fresh-install switches.Where
ib_switch_type
refers to the model of the switch: HDR/EDR
Note
ib_admin_password
andib_monitor_password
have the following constraints:Passwords should contain 8-64 characters.
Passwords should be different than username.
Passwords should be different than 5 previous passwords.
Passwords should contain at least one of each: Lowercase, uppercase and digits.
The inventory file should be a list of IPs separated by newlines. Check out the
switch_inventory
section in Sample Files