Skip to main content

Welcome to Nornir SQL inventory plugin!

If your device inventory is spread across SQL database tables and you would like to use it as Nornir inventory, you may consider looking on this project.



Installation

Install from pypi

pip install nornir-sql

Install from GitHUB

pip install git+https://github.com/realvitya/nornir_sql.git

Simple example

from nornir import InitNornir

host_query = """\
SELECT ciname AS name, ip AS hostname, region AS 'data.region'
FROM host_table
WHERE status='deployed'
"""

inventory = {
    "plugin": "SQLInventory",
    "options": {
        "sql_connection": "sqlite:///inventory.db",
        "hosts_query": hosts_query,
    }
}

nr = InitNornir(inventory=inventory)
print(nr.inventory.hosts['FW1']['region'])

Configuration

This plugin is based on SQLAlchemy and supports all databases that SQLAlchemy does.

These configuration options can be used:

  1. sql_connection: SQLAlchemy connection string
    Format: {driver}://[user]:[password]@{DBSERVER}/{DATABASE}
    SQLite example:
    sqlite:///somedb.db
    MSSQL example with domain user authentication:
    mssql+pymssql://ACME\\dbuser:verysecret@DBSRV1/INFRA
  2. hosts_query: Select statement which returns hosts inventory elements.
    The select must return at minimum the name field!
    Field names must match the expected Nornir inventory elements!
    The data elements are expected in data.[element] format. Quotation is needed!
    If groups are returned, the following groups_query also has to be specified!
  3. groups_query: Select statement which returns groups inventory elements.
    Same requirements apply as for the hosts_query.
  4. groups_file: path to a YAML file containing group definitions. Format is that same as used by SimpleInventory
    This parameter is ignored when groups_query or groups are specified!
    Using this parameter requires group assignments outside of this plugin! Check docs!
  5. groups: group definition as dict. Same restrictions and features apply as by using groups_file!
    Ignored when groups_query is specified!
    Using this parameter requires group assignments outside of this plugin! Check docs!
  6. defaults: This is a dictionary which contains inventory elements. These will be applied to hosts.

Metadata

Release files for nornir-sql 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for nornir-sql 0.1.0
File Size Uploaded
nornir_sql-0.1.0.tar.gz 5.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for nornir-sql 0.1.0
File Interpreter ABI Platform
nornir_sql-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 12.5 kB

Release files / nornir_sql-0.1.0.tar.gz

Download URL nornir_sql-0.1.0.tar.gz
Size 5.9 kB
Tags Source
SHA-256 checksum
How to use checksums
1ea59fd72dd0c97ef64d30eeb0c213bcef20316552661a2d17f5127ca3b6e6b4
BLAKE2b-256 checksum
How to use checksums
0c2f8b6bf1c597dd18bf8d737ec9b806acc78d68e9bde14b2d5d07513a72543e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Release files / nornir_sql-0.1.0-py3-none-any.whl

Download URL nornir_sql-0.1.0-py3-none-any.whl
Size 6.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5673594d7175d6c60c15fcbffe548550cf885bb488b450b3597361937abdbc29
BLAKE2b-256 checksum
How to use checksums
9444e8c49466b55297166e228ad963d4ca2f586c6328bc635b00d02d9cd6255b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

0.0.4

2 release files

0.0.3

1 release file

0.0.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page