nodediscover(8) - List or manage confluent node discovery
  1. nodediscover(8)
  2. nodediscover(8)

NAME

nodediscover - List or manage confluent node discovery

SYNOPSIS

nodediscover rescan
nodediscover [options] list
nodediscover [options] assign
nodediscover [options] rescan
nodediscover [options] clear
nodediscover [options] subscribe [switch]
nodediscover [options] unsubscribe [switch]
nodediscover [options] register [Addresses, e.g. 192.168.1.2 or 192.168.1.0/24 or 192.168.1.1-192.168.1.28]

DESCRIPTION

nodediscover provides streamlined access to the confluent discovery data and assignment. Nodes are detected through either an active scan (as occurs at service startup and on request by nodediscover rescan) or through passive detection (as a target comes online, it may attempt to register with the network).

nodediscover list provides the currently known data in tabular format. The data may be filtered by various parameters, as denoted in the options below.

nodediscover assign performs manual discovery, assigning an entry to a node identity or, using -i, using a csv file to assign nodes all at once. For example, a spreadsheet of serial numbers to desired node names could be used. Note that if you see that the host is unreachable, it may be due to the IP address on the endpoint having changed since last detected. In such a case, it may help to clear and try assign again.

nodediscover rescan requests the server to do an active sweep for new devices. Generally every effort is made to passively detect devices as they become available (as they boot or are plugged in), however sometimes an active scan is the best approach to catch something that appears to be missing.

nodedsicover clear requests the server forget about a selection of detected device. It takes the same arguments as nodediscover list.

nodediscover subscribe and unsubscribe instructs confluent to subscribe to or unsubscribe from the designated switch running affluent with system discovery support.

nodediscover register instructs confluent to perform a remote probe of an address, subnet, or range of IP addresses.

CSV FORMAT

The CSV format used by nodediscover consists of one header describing the columns followed by the data. The available columns are:

  • node: The name desired for the node in confluent
  • groups: A comma delimited list of groups to put the node into (using normal CSV escape rules for the commas)
  • mac: The mac address of the node
  • serial: The serial number of the node
  • uuid: The uuid of the node
  • bmc: The name or ip address that should be assigned to the BMC, regardless of current address
  • bmc_gateway: IP address of gateway, if desired
  • bmcuser: The desired username for the BMC to have as administrator
  • bmcpass: The desired password for the BMC to require

Note that node is the only mandatory field. To identify the systems, one of mac, serial, or uuid should be specified, it is pointless to provide more than one of these columns. Other attributes if not provided may be defined through nodeattrib or group inherited. It is possible to define nodes without ever providing a BMC ip, in which case IPv6 will be used automatically if possible.

One example of a valid CSV file would be: node,serial,bmc,bmcuser,bmcpass n1,06DPMDF,172.30.204.1,admin,Passw0rd12 n2,J30002HG,172.30.204.2,admin,Passw0rd12

Which would use the serial number to assign the name and other three values to the nodes.

OPTIONS

  • -m MODEL, --model=MODEL: Operate with nodes matching the specified model number
  • -s SERIAL, --serial=SERIAL: Operate against the system matching the specified serial number
  • -u UUID, --uuid=UUID: Operate against the system matching the specified UUID
  • -n NODE, --node=NODE: Operate with the given nodename
  • -e MAC, --ethaddr=MAC: Operate against the system with the specified MAC address
  • -f FIELDS, --fields=FIELDS: Request a custom set of fields. The available fields are:
    Node: The node name if a correlation has been identified
    Model: The model number
    Serial: The serial number
    UUID: The UUID as it should appear in DMI
    Type: Device type (e.g. lenovo-xcc, pxe-client, etc)
    IP: The confirmed working IP addresses associated with the record
    Mac: Mac address of the relevant network interface
    Switch: The nearest detected switch to the entry
    Port: Port of the switch that most closely connects to the network interface
    Advertised IP: IP addresses that may not have been confirmed, but are advertised
  • -o ORDER, --order=ORDER: Order output by given field. Field names are the same as documented in the -f argument.
  • -t TYPE, --type=TYPE: Operate against the system of the specified type
  • -c, --csv: Use CSV formatted output
  • -i IMPORT.CSV, --import=IMPORT.CSV: Import bulk assignment data from given CSV file
  • -d STATE, --discoverystate=STATE: Indicate devices with a particular state. The states are listed below
  • discovered: The device has been identified and has also had discovery activities performed, including any relevant certificate exchanges and deploying user and network configuration.
  • identified: The device has been identified as to what node it is supposed to be, however no active changes to the attributes or device configuration has been performed. This is generally discovery awaiting approval due to discovery.policy specifying a strict security model.
  • unidentified: A device has been sensed, but no node identity has been established at all. It provides data that can be used for nodediscover assign, as well as current IP addresses that can be used for manual efforts as possible.

EXAMPLES

Listing all detected Lenovo IMMv2 systems on a local network
# nodediscover list -t lenovo-imm2
` Node| Model| Serial| UUID| Mac Address| Type| Current IP Addresses ----------|----------|----------|------------------------|------------|--------|-------------------------------- r2| 5463AC1| 06DPMDF|5f7133b8-c8cb-11e4-99a9-40f2e9b91018|40:f2:e9:b9:10:1d| lenovo-imm2| 172.30.204.1,fe80::42f2:e9ff:feb9:101d%eth1 | 7906AC1| 06PBX15|e98d483d-2759-11e1-8ffd-5cf3fc11249c|5c:f3:fc:11:24:9f| lenovo-imm2| 172.30.3.12,fe80::5ef3:fcff:fe11:249f%eth1 n1| 8737AC1| 23XXH41|14dd3ba6-5c38-11e1-931a-5cf3fc6e4680|5c:f3:fc:6e:13:e1| lenovo-imm2| 172.30.3.1,fe80::5ef3:fcff:fe6e:13e1%eth1 n7| 8737AC1| 23XXH32|79d2ce28-5cd5-11e1-8c86-5cf3fc6e46b0|5c:f3:fc:6e:13:f9| lenovo-imm2| 172.30.3.7,fe80::5ef3:fcff:fe6e:13f9%eth1 n8| 8737AC1| 23XXH49|551a8438-5cd5-11e1-8d6c-5cf3fc6e4708|5c:f3:fc:6e:14:25| lenovo-imm2| 172.30.3.8,fe80::5ef3:fcff:fe6e:1425%eth1 n3| 8737AC1| 23XXH30|1dd7f7b3-5da5-11e1-baf0-5cf3fc6e4738|5c:f3:fc:6e:14:3d| lenovo-imm2| 172.30.3.3,fe80::5ef3:fcff:fe6e:143d%eth1 n4| 8737AC1| 23XXH35|45b81dae-5d9b-11e1-8337-5cf3fc6e4858|5c:f3:fc:6e:14:cd| lenovo-imm2| 172.30.3.4,fe80::5ef3:fcff:fe6e:14cd%eth1 n11| 8737AC1| 23XXH12|31d90128-5c37-11e1-bdb7-5cf3fc6e4920|5c:f3:fc:6e:15:31| lenovo-imm2| 172.30.3.11,fe80::5ef3:fcff:fe6e:1531%eth1 n13| 8737AC1| 23XXH44|e23a138a-5cd3-11e1-8f3d-5cf3fc6e4950|5c:f3:fc:6e:15:49| lenovo-imm2| 172.30.3.13,fe80::5ef3:fcff:fe6e:1549%eth1 | 8737AC1| 23XXH29|5cd1216b-5c37-11e1-ba0c-5cf3fc6e49c8|5c:f3:fc:6e:15:85| lenovo-imm2| 172.30.3.9,fe80::5ef3:fcff:fe6e:1585%eth1 | 8737AC1| 23ZYT44|f4bf48ca-71f0-11e1-b274-5cf3fc6e4f10|5c:f3:fc:6e:18:29| lenovo-imm2| 172.30.3.10,fe80::5ef3:fcff:fe6e:1829%eth1 hpcedr| 7915AC1| 06DRHL5|a64e3014-d7e3-11e1-8d21-6cae8b1dff32|6c:ae:8b:1d:ff:36| lenovo-imm2| 172.30.254.250,fe80::6eae:8bff:fe1d:ff36%eth1 | 8737AC1| 06YRWC3|3af85a51-7efd-11e3-8599-000af7482e00|6c:ae:8b:32:cb:c5| lenovo-imm2| 172.30.3.6,fe80::6eae:8bff:fe32:cbc5%eth1 | 8737AC1| 06YRWB7|b230f62e-7efd-11e3-9773-000af7482980|6c:ae:8b:32:cd:01| lenovo-imm2| 172.30.3.5,fe80::6eae:8bff:fe32:cd01%eth1 | 8737AC1| 06YRWC7|09586005-7efe-11e3-9f03-000af7482df0|6c:ae:8b:32:cd:a5| lenovo-imm2| 172.30.3.2,fe80::6eae:8bff:fe32:cda5%eth1`
Manually assign a single node according to serial number
[root@odin ~]# nodediscover assign -s 06PBX15 -n n12
Assigned: n12
Bulk execute discovery based on spreadsheet
[root@odin ~]# nodediscover assign -i import.csv
Defined r2
Discovered r2
Defined c1
Discovered c1
  1. October 2023
  2. nodediscover(8)