opsmill / infrahub-sync

Infrahub Sync: A Python package for flexible data synchronization between Infrahub and various platforms like Netbox, Nautobot with a Typer-based CLI.
Apache License 2.0
0 stars 3 forks source link

Infrahub Logo

Infrahub Sync

Infrahub by OpsMill acts as a central hub to manage the data, templates and playbooks that powers your infrastructure. At its heart, Infrahub is built on 3 fundamental pillars:

Introduction

Infrahub Sync is a versatile Python package that synchronizes data between a source and a destination system. It builds on the robust capabilities of diffsync to offer flexible and efficient data synchronization across different platforms, including Netbox, Nautobot, and Infrahub. This package features a Typer-based CLI for ease of use, supporting operations such as listing available sync projects, generating diffs, and executing sync processes.

Features

Requirements

Requirements

Documentation

Please refer to the Infrahub Sync documentation.

Project Structure

.
├── LICENSE.txt
├── README.md
├── examples
│   ├── infrahub_to_peering-manager
│   │   ├── config.yml
│   │   ├── infrahub
│   │   │   ├── __init__.py
│   │   │   ├── sync_adapter.py
│   │   │   └── sync_models.py
│   │   │
│   │   └── peeringmanager
│   │       ├── __init__.py
│   │       ├── sync_adapter.py
│   │       └── sync_models.py
│   │
│   ├── ipfabric_to_infrahub
│   │   ├── config.yml
│   │   ├── infrahub
│   │   │   ├── __init__.py
│   │   │   ├── sync_adapter.py
│   │   │   └── sync_models.py
│   │   │
│   │   └── ipfabricsync
│   │       ├── __init__.py
│   │       ├── sync_adapter.py
│   │       └── sync_models.py
│   │
│   ├── librenms_to_infrahub
│   │   ├── config.yml
│   │   ├── infrahub
│   │   │   ├── __init__.py
│   │   │   ├── sync_adapter.py
│   │   │   └── sync_models.py
│   │   │
│   │   └── librenms
│   │       ├── __init__.py
│   │       ├── sync_adapter.py
│   │       └── sync_models.py
│   │
│   ├── nautobot-v1_to_infrahub
│   │   ├── config.yml
│   │   ├── infrahub
│   │   │   ├── __init__.py
│   │   │   ├── sync_adapter.py
│   │   │   └── sync_models.py
│   │   │
│   │   └── nautobot
│   │       ├── __init__.py
│   │       ├── sync_adapter.py
│   │       └── sync_models.py
│   │
│   ├── nautobot-v2_to_infrahub
│   │   ├── config.yml
│   │   ├── infrahub
│   │   │   ├── __init__.py
│   │   │   ├── sync_adapter.py
│   │   │   └── sync_models.py
│   │   │
│   │   └── nautobot
│   │       ├── __init__.py
│   │       ├── sync_adapter.py
│   │       └── sync_models.py
│   ├── netbox_to_infrahub
│   │   ├── config.yml
│   │   ├── infrahub
│   │   │   ├── __init__.py
│   │   │   ├── sync_adapter.py
│   │   │   └── sync_models.py
│   │   │
│   │   └── netbox
│   │       ├── __init__.py
│   │       ├── sync_adapter.py
│   │       └── sync_models.py
│   │
│   ├── observium_to_infrahub
│   │   ├── config.yml
│   │   ├── infrahub
│   │   │   ├── __init__.py
│   │   │   ├── sync_adapter.py
│   │   │   └── sync_models.py
│   │   │
│   │   └── observium
│   │       ├── __init__.py
│   │       ├── sync_adapter.py
│   │       └── sync_models.py
│   │
│   └── peering-manager_to_infrahub
│       ├── config.yml
│       ├── infrahub
│       │   ├── __init__.py
│       │   ├── sync_adapter.py
│       │   └── sync_models.py
│       │
│       └── peeringmanager
│           ├── __init__.py
│           ├── sync_adapter.py
│           └── sync_models.py
│
├── infrahub-sync
│   ├── infrahub_sync
│   │   ├── __init__.py
│   │   ├── adapters
│   │   │   ├── infrahub.py
│   │   │   ├── ipfabricsync.py
│   │   │   ├── librenms.py
│   │   │   ├── nautobot.py
│   │   │   ├── netbox.py
│   │   │   ├── observium.py
│   │   │   ├── peeringmanager.py
│   │   │   ├── rest_api_client.py
│   │   │   └── utils.py
│   │   │
│   │   ├── cli.py
│   │   ├── generator
│   │   │   ├── __init__.py
│   │   │   └── templates
│   │   │       ├── diffsync_adapter.j2
│   │   │       └── diffsync_models.j2
│   │   │
│   │   └── utils.py
│   │
│   └── tests
│       └── __init__.py
│
├── poetry.lock
├── potenda
│   └── potenda
│       └── __init__.py
│
└── pyproject.toml