mirror of
https://github.com/xcat2/confluent.git
synced 2024-11-29 13:00:03 +00:00
a6090877ff
This provides a self-evident entry point from CLI to extending the discovery to affluent switches that support it. This function will work with newer affluent and Lenovo XCC2 systems.
153 lines
8.8 KiB
Markdown
153 lines
8.8 KiB
Markdown
nodediscover(8) -- List or manage confluent node discovery
|
|
=========================================================
|
|
|
|
## SYNOPSIS
|
|
|
|
`nodediscover rescan`
|
|
`nodediscover [options] list`
|
|
`nodediscover [options] assign`
|
|
`nodediscover [options] rescan`
|
|
`nodediscover [options] clear`
|
|
`nodediscover [options] subscribe`
|
|
`nodediscover [options] unsubscribe`
|
|
|
|
## 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 (-n) node running affluent with system discovery support.
|
|
|
|
## 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`
|