Skip to content

Using Netbox Plugins

Tobias Genannt edited this page Jan 29, 2021 · 28 revisions

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)

Python Requirements

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.

Netbox Configuration

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.

Custom Docker File

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

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 for netboxcommunity/netbox:latest-ldap.

Docker Compose Override

docker-compose.override.yml, as its name implies, can contain configuration overrides for existing services or entirely new services.

version: '3.4'
services:
  nginx:
    ports:
      - 8000:8080
  netbox:
    build:
      context: .
      dockerfile: Dockerfile-Plugins
    image: netbox:latest-plugins
  netbox-worker:
    image: netbox:latest-plugins

This configuration will change the ports NGINX 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.

NOTE: From version 0.28.0 the Nginx container is not used anymore. The port mapping must be configured for the Netbox service.

Build and Deploy

To build and deploy this in docker two commands are required.

docker-compose build --no-cache
docker-compose up -d
Clone this wiki locally