Skip to main content

Nornir CLI

Project description

Code style: black PyPI License: MIT Docs

nornir_cli


Documentation: https://timeforplanb123.github.io/nornir_cli


nornir_cli is CLI tool based on Nornir framework, Nornir Plugins and Click

Features

  • Manage your custom nornir runbooks

    • Create and manage your own runbook collections
    • Add your custom nornir runbooks to runbook collections and run it for any hosts directly from the CLI
    • Or use nornir_cli for inventory management only, and take the result in your nornir runbooks. By excluding getting and filtering the inventory in your runbooks, you will make them more versatile.
  • Manage Inventory

    Get Inventory, filter Inventory, output Inventory and save Inventory state from the CLI. This is really useful for large, structured Inventory - for example, NetBox with nornir_netbox plugin.

  • Run Nornir Plugins

    Run Tasks based on Nornir Plugins from the CLI, check result and statistic

  • Build a chain of nornir_cli commands

    Initialize Nornir, filter Inventory and start Task/Tasks chains or runbook/runbooks chains in one command

  • Json input. Json output

    Json strings are everywhere! Ok, only in command options

  • Custom Multi Commands with click

    nornir_cli based on click Custom Multi Commands, so you can easily add your custom command by following some principles

  • Simple CLI network orchestrator

    nornir_cli is a simple CLI orchestrator that you can use to interact with the SoT and manage your network

Quick Start

Install

Please, at first, check the dependencies in pyproject.toml and create new virtual environment if necessary and then:

with pip:

pip install nornir_cli

with git:

git clone https://github.com/timeforplanb123/nornir_cli.git
cd nornir_cli
pip install .
# or
poetry install

with Docker:

git clone https://github.com/timeforplanb123/nornir_cli.git
cd nornir_cli
docker build -t timeforplanb123/nornir_cli .
docker run --rm -it timeforplanb123/nornir_cli sh

# nornir_cli --version
nornir_cli, version 0.3.0

Simple Example

config.yaml

# Simple Nornir configuration file
inventory:
    plugin: SimpleInventory
    options:
        host_file: "inventory/hosts.yaml"

hosts.yaml

# Single host inventory
dev_1:
    hostname: 10.1.0.1
    username: username 
    password: password
    # huawei is just an example here
    platform: huawei

nornir_cli

# As instance, let's run netmiko_send_command

$ nornir_cli nornir-netmiko init netmiko_send_command --command_string "display clock"

netmiko_send_command************************************************************
* dev_1 ** changed : False *****************************************************
vvvv netmiko_send_command ** changed : False vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv INFO
2021-03-17 14:04:22+03:00
Wednesday
Time Zone(Moscow) : UTC+03:00
^^^^ END netmiko_send_command ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

dev_1                                             : ok=1               changed=0               failed=0

OK      : 1
CHANGED : 0
FAILED  : 0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nornir_cli-0.3.0.tar.gz (13.4 kB view hashes)

Uploaded Source

Built Distribution

nornir_cli-0.3.0-py3-none-any.whl (15.3 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page