-
-
Notifications
You must be signed in to change notification settings - Fork 918
Using Netbox Plugins
To utilise plugins that have been created by users within the Netbox Community a custom image must be used.
Lets start with a fresh install of netbox-docker.
git clone -b release https://github.com/netbox-community/netbox-docker.git
- Change
/env/netbox.env
to your required settings. - Create a few files these are (
plugin_requirements.txt
,Dockerfile-Plugins
,docker-compose.override.yml
)
The plugin_requirements.txt
file needs to contain all the plugins that are required.
ntc-netbox-plugin-onboarding
NOTE: These must be on PyPi to work.
To get plugins to work within Netbox you need to add some configuration to configuration.py
.
PLUGINS = ["netbox_onboarding"]
# PLUGINS_CONFIG = {
# "netbox_onboarding": {
# ADD YOUR SETTINGS HERE
# }
# }
NOTE: This can differ for every plugin. To learn more about this see the Netbox documentation.
The new Dockerfile-Plugins
will enable us to build a new image with the required plugins installed.
FROM netboxcommunity/netbox:latest
COPY ./plugin_requirements.txt /
RUN /opt/netbox/venv/bin/pip install --no-warn-script-location -r /plugin_requirements.txt
# These lines are only required if your plugin has its own static files.
COPY configuration/configuration.py /etc/netbox/config/configuration.py
RUN SECRET_KEY="dummy" /opt/netbox/venv/bin/python /opt/netbox/netbox/manage.py collectstatic --no-input
NOTE: You can swap the image out to use any of the images that the Netbox-Docker community publishes to Docker Hub. For example if LDAP is required, swap out
netboxcommunity/netbox:latest
fornetboxcommunity/netbox:latest-ldap
.
docker-compose.override.yml
, as its name implies, can contain configuration overrides for existing services or entirely new services.
version: '3.4'
services:
netbox:
ports:
- 8000:8080
build:
context: .
dockerfile: Dockerfile-Plugins
image: netbox:latest-plugins
netbox-worker:
image: netbox:latest-plugins
This configuration will change the ports Netbox
will use. It will also select the build file created in previous steps and tell the netbox-worker
service to now use the new image (netbox:latest-plugins) that has been created.
To build and deploy this in docker two commands are required.
docker-compose build --no-cache
docker-compose up -d
Note that the plugin name for pip can be different from the name used to load the plugin. I.e. plugin-name
for pip and plugin_name
for the config file.