236 lines
7.8 KiB
Markdown
236 lines
7.8 KiB
Markdown
<!--
|
|
~ Copyright (c) 2023-2024 Arista Networks, Inc.
|
|
~ Use of this source code is governed by the Apache License 2.0
|
|
~ that can be found in the LICENSE file.
|
|
-->
|
|
|
|
# Retrieving Inventory Information
|
|
|
|
The ANTA CLI offers multiple entrypoints to access data from your local inventory.
|
|
|
|
## Inventory used of examples
|
|
|
|
Let's consider the following inventory:
|
|
|
|
```yaml
|
|
---
|
|
anta_inventory:
|
|
hosts:
|
|
- host: 172.20.20.101
|
|
name: DC1-SPINE1
|
|
tags: ["SPINE", "DC1"]
|
|
|
|
- host: 172.20.20.102
|
|
name: DC1-SPINE2
|
|
tags: ["SPINE", "DC1"]
|
|
|
|
- host: 172.20.20.111
|
|
name: DC1-LEAF1A
|
|
tags: ["LEAF", "DC1"]
|
|
|
|
- host: 172.20.20.112
|
|
name: DC1-LEAF1B
|
|
tags: ["LEAF", "DC1"]
|
|
|
|
- host: 172.20.20.121
|
|
name: DC1-BL1
|
|
tags: ["BL", "DC1"]
|
|
|
|
- host: 172.20.20.122
|
|
name: DC1-BL2
|
|
tags: ["BL", "DC1"]
|
|
|
|
- host: 172.20.20.201
|
|
name: DC2-SPINE1
|
|
tags: ["SPINE", "DC2"]
|
|
|
|
- host: 172.20.20.202
|
|
name: DC2-SPINE2
|
|
tags: ["SPINE", "DC2"]
|
|
|
|
- host: 172.20.20.211
|
|
name: DC2-LEAF1A
|
|
tags: ["LEAF", "DC2"]
|
|
|
|
- host: 172.20.20.212
|
|
name: DC2-LEAF1B
|
|
tags: ["LEAF", "DC2"]
|
|
|
|
- host: 172.20.20.221
|
|
name: DC2-BL1
|
|
tags: ["BL", "DC2"]
|
|
|
|
- host: 172.20.20.222
|
|
name: DC2-BL2
|
|
tags: ["BL", "DC2"]
|
|
```
|
|
|
|
## Obtaining all configured tags
|
|
|
|
As most of ANTA's commands accommodate tag filtering, this particular command is useful for enumerating all tags configured in the inventory. Running the `anta get tags` command will return a list of all tags that have been configured in the inventory.
|
|
|
|
### Command overview
|
|
|
|
```bash
|
|
Usage: anta get tags [OPTIONS]
|
|
|
|
Get list of configured tags in user inventory.
|
|
|
|
Options:
|
|
-u, --username TEXT Username to connect to EOS [env var: ANTA_USERNAME;
|
|
required]
|
|
-p, --password TEXT Password to connect to EOS that must be provided. It
|
|
can be prompted using '--prompt' option. [env var:
|
|
ANTA_PASSWORD]
|
|
--enable-password TEXT Password to access EOS Privileged EXEC mode. It can
|
|
be prompted using '--prompt' option. Requires '--
|
|
enable' option. [env var: ANTA_ENABLE_PASSWORD]
|
|
--enable Some commands may require EOS Privileged EXEC mode.
|
|
This option tries to access this mode before sending
|
|
a command to the device. [env var: ANTA_ENABLE]
|
|
-P, --prompt Prompt for passwords if they are not provided. [env
|
|
var: ANTA_PROMPT]
|
|
--timeout FLOAT Global API timeout. This value will be used for all
|
|
devices. [env var: ANTA_TIMEOUT; default: 30.0]
|
|
--insecure Disable SSH Host Key validation. [env var:
|
|
ANTA_INSECURE]
|
|
--disable-cache Disable cache globally. [env var:
|
|
ANTA_DISABLE_CACHE]
|
|
-i, --inventory FILE Path to the inventory YAML file. [env var:
|
|
ANTA_INVENTORY; required]
|
|
--tags TEXT List of tags using comma as separator:
|
|
tag1,tag2,tag3. [env var: ANTA_TAGS]
|
|
--help Show this message and exit.
|
|
```
|
|
|
|
### Example
|
|
|
|
To get the list of all configured tags in the inventory, run the following command:
|
|
|
|
```bash
|
|
anta get tags
|
|
Tags found:
|
|
[
|
|
"BL",
|
|
"DC1",
|
|
"DC2",
|
|
"LEAF",
|
|
"SPINE"
|
|
]
|
|
|
|
* note that tag all has been added by anta
|
|
```
|
|
|
|
!!! note
|
|
Even if you haven't explicitly configured the `all` tag in the inventory, it is automatically added. This default tag allows to execute commands on all devices in the inventory when no tag is specified.
|
|
|
|
## List devices in inventory
|
|
|
|
This command will list all devices available in the inventory. Using the `--tags` option, you can filter this list to only include devices with specific tags. The `--connected` option allows to display only the devices where a connection has been established.
|
|
|
|
### Command overview
|
|
|
|
```bash
|
|
Usage: anta get inventory [OPTIONS]
|
|
|
|
Show inventory loaded in ANTA.
|
|
|
|
Options:
|
|
-u, --username TEXT Username to connect to EOS [env var:
|
|
ANTA_USERNAME; required]
|
|
-p, --password TEXT Password to connect to EOS that must be
|
|
provided. It can be prompted using '--prompt'
|
|
option. [env var: ANTA_PASSWORD]
|
|
--enable-password TEXT Password to access EOS Privileged EXEC mode.
|
|
It can be prompted using '--prompt' option.
|
|
Requires '--enable' option. [env var:
|
|
ANTA_ENABLE_PASSWORD]
|
|
--enable Some commands may require EOS Privileged EXEC
|
|
mode. This option tries to access this mode
|
|
before sending a command to the device. [env
|
|
var: ANTA_ENABLE]
|
|
-P, --prompt Prompt for passwords if they are not
|
|
provided. [env var: ANTA_PROMPT]
|
|
--timeout FLOAT Global API timeout. This value will be used
|
|
for all devices. [env var: ANTA_TIMEOUT;
|
|
default: 30.0]
|
|
--insecure Disable SSH Host Key validation. [env var:
|
|
ANTA_INSECURE]
|
|
--disable-cache Disable cache globally. [env var:
|
|
ANTA_DISABLE_CACHE]
|
|
-i, --inventory FILE Path to the inventory YAML file. [env var:
|
|
ANTA_INVENTORY; required]
|
|
--tags TEXT List of tags using comma as separator:
|
|
tag1,tag2,tag3. [env var: ANTA_TAGS]
|
|
--connected / --not-connected Display inventory after connection has been
|
|
created
|
|
--help Show this message and exit.
|
|
```
|
|
|
|
|
|
!!! tip
|
|
In its default mode, `anta get inventory` provides only information that doesn't rely on a device connection. If you are interested in obtaining connection-dependent details, like the hardware model, please use the `--connected` option.
|
|
|
|
### Example
|
|
|
|
To retrieve a comprehensive list of all devices along with their details, execute the following command. It will provide all the data loaded into the ANTA inventory from your [inventory file](../usage-inventory-catalog.md).
|
|
|
|
```bash
|
|
anta get inventory --tags SPINE
|
|
Current inventory content is:
|
|
{
|
|
'DC1-SPINE1': AsyncEOSDevice(
|
|
name='DC1-SPINE1',
|
|
tags=['SPINE', 'DC1'],
|
|
hw_model=None,
|
|
is_online=False,
|
|
established=False,
|
|
disable_cache=False,
|
|
host='172.20.20.101',
|
|
eapi_port=443,
|
|
username='arista',
|
|
enable=True,
|
|
enable_password='arista',
|
|
insecure=False
|
|
),
|
|
'DC1-SPINE2': AsyncEOSDevice(
|
|
name='DC1-SPINE2',
|
|
tags=['SPINE', 'DC1'],
|
|
hw_model=None,
|
|
is_online=False,
|
|
established=False,
|
|
disable_cache=False,
|
|
host='172.20.20.102',
|
|
eapi_port=443,
|
|
username='arista',
|
|
enable=True,
|
|
insecure=False
|
|
),
|
|
'DC2-SPINE1': AsyncEOSDevice(
|
|
name='DC2-SPINE1',
|
|
tags=['SPINE', 'DC2'],
|
|
hw_model=None,
|
|
is_online=False,
|
|
established=False,
|
|
disable_cache=False,
|
|
host='172.20.20.201',
|
|
eapi_port=443,
|
|
username='arista',
|
|
enable=True,
|
|
insecure=False
|
|
),
|
|
'DC2-SPINE2': AsyncEOSDevice(
|
|
name='DC2-SPINE2',
|
|
tags=['SPINE', 'DC2'],
|
|
hw_model=None,
|
|
is_online=False,
|
|
established=False,
|
|
disable_cache=False,
|
|
host='172.20.20.202',
|
|
eapi_port=443,
|
|
username='arista',
|
|
enable=True,
|
|
insecure=False
|
|
)
|
|
}
|
|
```
|