Manage Passhup Netbox distribution initialization and behaviours.
Below the compatibility list of the Netbox Docker PLugin and Netbox. Please chose the right version of the plugin depending of the Netbox version you use:
| Netbox Version | Netbox Docker Plugin Version |
|---|---|
| 4.1.* | 0.* |
You can follow the official plugins installation instructions.
If needed, source your Netbox's virtual environment and install the plugin like
a package. We assume you have already installed
Netbox and its source code are
in /opt/netbox:
cd /opt/netbox
python3 -m venv venv # if virtual env was not created before
source /opt/netbox/venv/bin/activate
pip install netbox-passhup-pluginEnable the plugin in the /opt/netbox/netbox/netbox/configuration.py file:
PLUGINS = [
'netbox_passhup_plugin',
]For running the plugin must Netbox started with this environment set:
VM_AGENT_BASE_URL(string): the base URL of the Passhup VM agent (eg: http://my.agent.com)VM_AGENT_BODY_TEMPLATE(string): the string base64 encoded body template to send to the agent on VM creation
Another way to install Netbox is to use the Official netbox-docker project.
With this alternate way, you can customize your Netbox image and migrations will be automatically execute each time you restart the container.
Requirements:
- Python 3.11
- PostgreSQL 15 Official Netbox doc
- user: netbox (with database creation right)
- password: secret
- database: netbox
- port: 5432
- Redis 7.2
- port: 6379
Set a PROJECT variable :
PROJECT="/project/netbox"
Create a project directory $PROJECT:
mkdir $PROJECTGo inside your project directory, clone this repository and the Netbox repository:
cd $PROJECT
git clone git@github.com:SaaShup/netbox-passhup-plugin.git
git clone git@github.com:netbox-community/netbox.gitCreate your venv and activate it:
python -m venv venv
source venv/bin/activateInstall netbox-passhup-plugin dependencies:
cd $PROJECT/netbox-passhup-plugin
pip install -e .Configure Netbox and install Netbox dependencies:
cd $PROJECT/netbox
cp $PROJECT/netbox-passhup-plugin/netbox_configuration/configuration_dev.py $PROJECT/netbox/netbox/netbox/configuration.py
pip install -r requirements.txtRun database migrations:
cd $PROJECT/netbox
python3 netbox/manage.py migrateCreate a Netbox super user:
cd $PROJECT/netbox
python3 netbox/manage.py createsuperuserStart Netbox instance:
cd $PROJECT/netbox
python3 netbox/manage.py runserver 0.0.0.0:8000 --insecureVisit http://localhost:8000/
After installing your development environment, you can run the tests plugin (you don't need to start the Netbox instance):
cd $PROJECT/netbox
python3 -m pip install requests_mock
python3 netbox/manage.py test netbox_passhup_plugin.tests --keepdb -v 2With code coverage, install coverage.py and use it:
cd $PROJECT/netbox
python3 -m pip install coverageThen run the test with coverage.py and print the report:
cd $PROJECT/netbox
coverage run --include='*/netbox_passhup_plugin/*' netbox/manage.py test netbox_passhup_plugin.tests --keepdb -v 2
coverage report -mCheck https://saashup.com for more information.