nodediscover(8) -- List or manage confluent node discovery ========================================================= ## SYNOPSIS `nodediscover rescan` `nodediscover [options] list` `nodediscover [options] assign` `nodediscover [options] rescan` `nodediscover [options] clear` ## 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. **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**. ## 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`