This commit removes `--os-baremetal-api-version` from CLI examples, updates some `openstack baremetal` commands to be `baremetal` and removes -uuid from <node-uuid> Story: 2008194 Task: 40964 Change-Id: I4421e98afdee9ed97506cb7e5d69da966cffd963
7.2 KiB
SNMP driver
The SNMP hardware type enables control of power distribution units of the type frequently found in data centre racks. PDUs frequently have a management ethernet interface and SNMP support enabling control of the power outlets.
The SNMP power interface works with the pxe-boot
interface for
network deployment and network-configured boot.
Note
Unlike most of the other power interfaces, the SNMP power interface
does not have a corresponding management interface. The SNMP hardware
type uses the noop
management interface instead.
List of supported devices
This is a non-exhaustive list of supported devices. Any device not listed in this table could possibly work using a similar driver.
Please report any device status.
Manufacturer | Model | Supported? | Driver name |
---|---|---|---|
APC | AP7920 | Yes | apc_masterswitch |
APC | AP9606 | Yes | apc_masterswitch |
APC | AP9225 | Yes | apc_masterswitchplus |
APC | AP7155 | Yes | apc_rackpdu |
APC | AP7900 | Yes | apc_rackpdu |
APC | AP7901 | Yes | apc_rackpdu |
APC | AP7902 | Yes | apc_rackpdu |
APC | AP7911a | Yes | apc_rackpdu |
APC | AP7921 | Yes | apc_rackpdu |
APC | AP7922 | Yes | apc_rackpdu |
APC | AP7930 | Yes | apc_rackpdu |
APC | AP7931 | Yes | apc_rackpdu |
APC | AP7932 | Yes | apc_rackpdu |
APC | AP7940 | Yes | apc_rackpdu |
APC | AP7941 | Yes | apc_rackpdu |
APC | AP7951 | Yes | apc_rackpdu |
APC | AP7960 | Yes | apc_rackpdu |
APC | AP7990 | Yes | apc_rackpdu |
APC | AP7998 | Yes | apc_rackpdu |
APC | AP8941 | Yes | apc_rackpdu |
APC | AP8953 | Yes | apc_rackpdu |
APC | AP8959 | Yes | apc_rackpdu |
APC | AP8961 | Yes | apc_rackpdu |
APC | AP8965 | Yes | apc_rackpdu |
Aten | all? | Yes | aten |
CyberPower | all? | Untested | cyberpower |
EatonPower | all? | Untested | eatonpower |
Teltronix | all? | Yes | teltronix |
BayTech | MRP27 | Yes | baytech_mrp27 |
Software Requirements
- The PySNMP package must be installed, variously referred to as
pysnmp
orpython-pysnmp
Enabling the SNMP Hardware Type
Add
snmp
to the list ofenabled_hardware_types
inironic.conf
. Also updateenabled_management_interfaces
andenabled_power_interfaces
inironic.conf
as shown below:[DEFAULT] enabled_hardware_types = snmp enabled_management_interfaces = noop enabled_power_interfaces = snmp
To set the default boot option, update
default_boot_option
inironic.conf
:[DEFAULT] default_boot_option = netboot
Note
Currently the default value of
default_boot_option
isnetboot
but it will be changed tolocal
in the future. It is recommended to set an explicit value for this option.Note
It is important to set
boot_option
tonetboot
as SNMP hardware type does not support setting of boot devices. One can also configure a node to boot usingnetboot
by setting itscapabilities
and updating Nova flavor as described below:baremetal node set --property capabilities="boot_option:netboot" <node> openstack flavor set --property "capabilities:boot_option"="netboot" ironic-flavor
Restart the Ironic conductor service.
service ironic-conductor restart
Ironic Node Configuration
Nodes configured to use the SNMP hardware type should have the
driver
field set to the hardware type
snmp
.
The following property values have to be added to the node's
driver_info
field:
snmp_driver
: PDU manufacturer driver name orauto
to automatically choose ironic snmp driver based onSNMPv2-MIB::sysObjectID
value as reported by PDU.snmp_address
: the IPv4 address of the PDU controlling this node.snmp_port
: (optional) A non-standard UDP port to use for SNMP operations. If not specified, the default port (161) is used.snmp_outlet
: The power outlet on the PDU (1-based indexing).snmp_version
: (optional) SNMP protocol version (permitted values1
,2c
or3
). If not specified, SNMPv1 is chosen.snmp_community
: (Required for SNMPv1/SNMPv2c unlesssnmp_community_read
and/orsnmp_community_write
properties are present in which case the latter take over) SNMP community name parameter for reads and writes to the PDU.snmp_community_read
: SNMP community name parameter for reads to the PDU. Takes precedence over thesnmp_community
property.snmp_community_write
: SNMP community name parameter for writes to the PDU. Takes precedence over thesnmp_community
property.snmp_user
: (Required for SNMPv3) SNMPv3 User-based Security Model (USM) user name. Synonym for now obsoletesnmp_security
parameter.snmp_auth_protocol
: SNMPv3 message authentication protocol ID. Valid values include:none
,md5
,sha
for all pysnmp versions and additionallysha224
,sha256
,sha384
,sha512
for pysnmp versions 4.4.1 and later. Default isnone
unlesssnmp_auth_key
is provided. In the latter casemd5
is the default.snmp_auth_key
: SNMPv3 message authentication key. Must be 8+ characters long. Required when message authentication is used.snmp_priv_protocol
: SNMPv3 message privacy (encryption) protocol ID. Valid values include:none
,des
,3des
,aes
,aes192
,aes256
for all pysnmp version and additionallyaes192blmt
,aes256blmt
for pysnmp versions 4.4.3+. Note that message privacy requires using message authentication. Default isnone
unlesssnmp_priv_key
is provided. In the latter casedes
is the default.snmp_priv_key
: SNMPv3 message privacy (encryption) key. Must be 8+ characters long. Required when message encryption is used.snmp_context_engine_id
: SNMPv3 context engine ID. Default is the value of authoritative engine ID.snmp_context_name
: SNMPv3 context name. Default is an empty string.
The following command can be used to enroll a node with the
snmp
hardware type:
baremetal node create \
--driver-info snmp_driver=<pdu_manufacturer> \
--driver snmp <ip_address> \
--driver-info snmp_address=<outlet_index> \
--driver-info snmp_outlet=<community_string> \
--driver-info snmp_community= --properties capabilities=boot_option:netboot