Skip to main content

nornir_sql

Project description

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.

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_sql-0.1.0.tar.gz (5.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nornir_sql-0.1.0-py3-none-any.whl (6.6 kB view details)

Uploaded Python 3

File details

Details for the file nornir_sql-0.1.0.tar.gz.

File metadata

  • Download URL: nornir_sql-0.1.0.tar.gz
  • Upload date:
  • Size: 5.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for nornir_sql-0.1.0.tar.gz
Algorithm Hash digest
SHA256 1ea59fd72dd0c97ef64d30eeb0c213bcef20316552661a2d17f5127ca3b6e6b4
MD5 336916956acdbe2ad6bc391eb9602105
BLAKE2b-256 0c2f8b6bf1c597dd18bf8d737ec9b806acc78d68e9bde14b2d5d07513a72543e

See more details on using hashes here.

File details

Details for the file nornir_sql-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: nornir_sql-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 6.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for nornir_sql-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5673594d7175d6c60c15fcbffe548550cf885bb488b450b3597361937abdbc29
MD5 8cf8d9278732f6bf9395c0bf914464fe
BLAKE2b-256 9444e8c49466b55297166e228ad963d4ca2f586c6328bc635b00d02d9cd6255b

See more details on using hashes here.

Supported by

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