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
Metadata
Release files for netbox-freeipa 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| netbox_freeipa-0.3.0.tar.gz | 26.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| netbox_freeipa-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 63.4 kB
Release files / netbox_freeipa-0.3.0.tar.gz
| Download URL | netbox_freeipa-0.3.0.tar.gz |
|---|---|
| Size | 26.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b90331d0e73cba0de3ff5fa264ff4fd3a86a66f87c4464028f446389dfdca561
|
|
BLAKE2b-256 checksum How to use checksums |
899856322c448e02a2dfadfb84a98269cce015cfde6b15eee5677e2e0a92f19d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.12
|
Release files / netbox_freeipa-0.3.0-py3-none-any.whl
| Download URL | netbox_freeipa-0.3.0-py3-none-any.whl |
|---|---|
| Size | 36.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
67854b2d8706d251d34b0881f87ab7494330051623097f6e07ed184a79853fc8
|
|
BLAKE2b-256 checksum How to use checksums |
b4657ddb6144cbb68d3049e734d0593e156be820fea722df919abb8c4539eaae
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.12
|