Nautobot Digital Twin¶
An app for Nautobot that creates and manages disposable lab environments ("digital twins") from Nautobot source-of-truth data.
What this app does¶
- Builds topology definitions from Nautobot
Location,Device,Interface, andCabledata. - Deploys and destroys labs using containerlab (SSH to a lab host).
- Supports Golden Config integration:
- deploy with intended config files,
- push intended config to running labs,
- execute "generate intended config" and push in one workflow.
- Adds Location Job Buttons for quick start/stop operations.
Installation¶
Install from PyPI:
Enable it in nautobot_config.py:
PLUGINS = [
"nautobot_digital_twin",
]
PLUGINS_CONFIG = {
"nautobot_digital_twin": {
"BACKEND": "containerlab",
"CONTAINERLAB_SSH_HOST": "172.16.6.128",
"CONTAINERLAB_SSH_PORT": 22,
"CONTAINERLAB_SSH_USER": "clab",
"CONTAINERLAB_SSH_PASSWORD": "clab",
}
}
Run post-upgrade and restart services:
Optional: create/update Location job buttons:
Key settings¶
Common PLUGINS_CONFIG["nautobot_digital_twin"] settings:
BACKEND: must becontainerlab(only supported backend)LOCATION_TYPE_NAME: Location type where Start/Stop buttons are shownCONTAINERLAB_SSH_*: credentials/host for remote containerlab serverCONTAINERLAB_PLATFORM_MAP: map platform names to node kind/imageREMOVE_CONFIG_LINES/REPLACE_CONFIG_PATTERNS/PLATFORM_ADD_CONFIG_LINES: intended-config filtering pipelineDIGITAL_TWIN_AUTO_DESTROY_MINUTES: automatic cleanup timer
See the full docs for all available options.
Documentation¶
- User Guide: User Guide
- Admin Guide: Admin Guide
- Developer Guide: Developer Guide
- Release Notes: Release Notes
Development¶
This repository includes:
- GitHub CI and release workflows (lint, test, docs build, PyPI publish).
- MkDocs configuration (
mkdocs.yml) and Read the Docs config (.readthedocs.yaml).
Run docs locally:
Support¶
- Open an issue in this repository.
- For Nautobot community help, join
#nautoboton Network to Code Slack.