Simple Device Inventory Output Module
devices output module creates lab devices inventory as a dictionary of hosts in YAML format (default name: netlab-devices.yml).
For every lab device, the devices output module:
Adds device-specific group variables (under defaults.devices.device.group_vars) to device data;
Adds provider-specific group variables (under defaults.providers.provider.devices.device.group_vars) to device data;
Renames mgmt.ip attribute to ansible_host to be consistent with the Ansible inventory naming convention.
The resulting data structure is almost identical to the output of ansible-inventory command taking in account group variable inheritance.
A single formatting modifier can be used to modify the information in the device inventory:
pools – Add addressing pool information as a all.vars.pools key.
Example
Sample lab topology
provider: clab
defaults:
device: eos
nodes:
- name: s1
- name: s2
device: frr
links:
- s1-s2
Resulting netlab-devices.yml inventory (created with netlab create –devices:
# Netlab Devices inventory created from ['topology.yml', 'package:topology-defaults.yml']
#
---
s1:
ansible_become: true
ansible_become_method: enable
ansible_connection: network_cli
ansible_host: clab-X-s1
ansible_network_os: eos
ansible_ssh_pass: admin
ansible_user: admin
box: ceos:4.25.1F
device: eos
hostname: clab-X-s1
id: 1
interface_name: eth%d
kind: ceos
links:
- ifindex: 1
ifname: Ethernet1
ipv4: 10.1.0.1/30
linkindex: 1
name: s1 -> s2
neighbors:
s2:
ifname: eth1
ipv4: 10.1.0.2/30
provider_ifname: eth1
remote_id: 2
remote_ifindex: 1
type: p2p
loopback:
ipv4: 10.0.0.1/32
mgmt:
ifname: Management0
ipv4: 192.168.121.101
mac: 08-4F-A9-00-00-01
s2:
ansible_connection: docker
ansible_host: clab-X-s2
ansible_network_os: frr
box: frrouting/frr:v7.5.0
device: frr
hostname: clab-X-s2
id: 2
kind: linux
links:
- ifindex: 1
ifname: eth1
ipv4: 10.1.0.2/30
linkindex: 1
name: s2 -> s1
neighbors:
s1:
ifname: Ethernet1
ipv4: 10.1.0.1/30
remote_id: 1
remote_ifindex: 1
type: p2p
loopback:
ipv4: 10.0.0.2/32
mgmt:
ifname: eth0
ipv4: 192.168.121.102
mac: 08-4F-A9-00-00-02