Ansible Inventory plugin for nornir.
In most cases installation via pip is the simplest and best way to install nornir_ansible.
pip install nornir_ansible
In your nornir configuration, set the inventory plugin value to AnsibleInventory
---
inventory:
plugin: AnsibleInventory
options:
hostsfile: "inventory.yaml"
The hostsfile
inventory option argument should point to a valid Ansible inventory file, in this case a yaml style
inventory such as:
---
all:
vars:
ansible_python_interpreter: "/usr/bin/python3"
username: "vrnetlab"
password: "VR-netlab9"
children:
sea:
hosts:
sea-eos-1:
ansible_host: "172.18.0.14"
sea-nxos-1:
ansible_host: "172.18.0.12"
children:
arista-eos:
hosts:
sea-eos-1:
vars:
platform: "eos"
cisco-nxos:
hosts:
sea-nxos-1:
vars:
platform: "nxos"
Initialize your nornir object and validate the appropriate inventory plugin was loaded, and the inventory file was parsed:
>>> from nornir import InitNornir
>>> nr = InitNornir(config_file="config.yaml")
>>> print(nr.config.inventory.plugin)
<class 'nornir_ansible.plugins.inventory.ansible.AnsibleInventory'>
>>> print(nr.inventory.hosts)
{'sea-eos-1': Host: sea-eos-1, 'sea-nxos-1': Host: sea-nxos-1}
>>>