NetBox plugin for FreeIPA integration - manage hosts, DNS zones and records
Project description
NetBox FreeIPA Plugin
NetBox plugin for integration with FreeIPA identity management system. View and manage FreeIPA enrolled hosts, DNS zones, and records directly from NetBox.
Features
- View enrolled hosts from FreeIPA
- DNS zones and records management
- Detailed host information (FQDN, SSH keys, descriptions)
- Automatic background synchronization (hosts, DNS zones, and DNS records)
- Manual sync option via Web UI and API
- REST API support
- Filtering and search
- High-performance bulk operations for large installations
Compatibility
NetBox v4.0 or later (v4.2+ recommended for automatic background synchronization)
Installation
pip install netbox-freeipa
Configuration
Edit /opt/netbox/netbox/netbox/configuration.py:
PLUGINS = ['netbox_freeipa']
PLUGINS_CONFIG = {
'netbox_freeipa': {
'freeipa_host': 'ipa.example.com',
'freeipa_username': 'admin',
'freeipa_password': 'your-password',
# Optional settings:
'freeipa_verify_ssl': True,
'sync_interval': 300, # seconds
'auto_sync_enabled': True,
}
}
Run migrations and restart:
cd /opt/netbox/netbox
python manage.py migrate
sudo systemctl restart netbox netbox-rq
Important: For automatic background synchronization to work, ensure the netbox-rq worker is running:
# Check status
sudo systemctl status netbox-rq
# View worker logs
sudo journalctl -u netbox-rq -f
Usage
Navigate to Plugins > FreeIPA in NetBox menu to access:
- Hosts - View and manage FreeIPA enrolled hosts
- DNS Zones - View DNS zones from FreeIPA
- DNS Records - View DNS records associated with zones
Automatic Synchronization
The plugin automatically synchronizes all data (hosts, DNS zones, and records) every 5 minutes by default (configurable via sync_interval). Check the Jobs section in NetBox admin to monitor synchronization status.
REST API
# List hosts
curl -H "Authorization: Token YOUR_TOKEN" \
https://netbox.example.com/api/plugins/freeipa/hosts/
# List DNS zones
curl -H "Authorization: Token YOUR_TOKEN" \
https://netbox.example.com/api/plugins/freeipa/dns-zones/
# List DNS records
curl -H "Authorization: Token YOUR_TOKEN" \
https://netbox.example.com/api/plugins/freeipa/dns-records/
# Trigger manual sync for hosts
curl -X POST -H "Authorization: Token YOUR_TOKEN" \
https://netbox.example.com/api/plugins/freeipa/hosts/sync/
# Trigger manual sync for DNS zones
curl -X POST -H "Authorization: Token YOUR_TOKEN" \
https://netbox.example.com/api/plugins/freeipa/dns-zones/sync/
# Trigger manual sync for DNS records
curl -X POST -H "Authorization: Token YOUR_TOKEN" \
https://netbox.example.com/api/plugins/freeipa/dns-records/sync/
# Trigger full sync (all data types)
curl -X POST -H "Authorization: Token YOUR_TOKEN" \
https://netbox.example.com/api/plugins/freeipa/sync/all/
Build & Publish
# Install build tools
pip install build twine
# Build package
python -m build
# Upload to PyPI
twine upload dist/*
License
Apache License 2.0
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file netbox_freeipa-0.3.0.tar.gz.
File metadata
- Download URL: netbox_freeipa-0.3.0.tar.gz
- Upload date:
- Size: 26.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b90331d0e73cba0de3ff5fa264ff4fd3a86a66f87c4464028f446389dfdca561
|
|
| MD5 |
87d534a93eb1e5952948487911f7abdc
|
|
| BLAKE2b-256 |
899856322c448e02a2dfadfb84a98269cce015cfde6b15eee5677e2e0a92f19d
|
File details
Details for the file netbox_freeipa-0.3.0-py3-none-any.whl.
File metadata
- Download URL: netbox_freeipa-0.3.0-py3-none-any.whl
- Upload date:
- Size: 36.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
67854b2d8706d251d34b0881f87ab7494330051623097f6e07ed184a79853fc8
|
|
| MD5 |
23bba473b8492497b2e1890d96cc52c5
|
|
| BLAKE2b-256 |
b4657ddb6144cbb68d3049e734d0593e156be820fea722df919abb8c4539eaae
|