Merge branch 'master' of https://github.com/ICTU/netbox_slm
This commit is contained in:
@@ -4,10 +4,10 @@ Licensed under the Apache License, Version 2.0 (the "License");
|
|||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
You may obtain a copy of the License at
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
Unless required by applicable law or agreed to in writing, software
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
See the License for the specific language governing permissions and
|
See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
|
|||||||
+54
-47
@@ -1,26 +1,29 @@
|
|||||||
Software Lifecycle Management
|
<h1 align="center">NetBox SLM</h1>
|
||||||
-----------------------------
|
|
||||||
|
|
||||||
*Netbox Plugin for lifecycle management of software components, including versions and installations*
|
<p align="center"><i>Netbox SLM is a plugin for lifecycle management of software components, including versions and installations.</i></p>
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
--------------
|
<div align="center">
|
||||||
|
<a href="https://pypi.org/project/netbox_slm/"><img src="https://img.shields.io/pypi/v/netbox_slm" alt="PyPi"/></a>
|
||||||
|
<a href="https://github.com/ICTU/netbox_slm/stargazers"><img src="https://img.shields.io/github/stars/ICTU/netbox_slm" alt="Stars Badge"/></a>
|
||||||
|
<a href="https://github.com/ICTU/netbox_slm/network/members"><img src="https://img.shields.io/github/forks/ICTU/netbox_slm" alt="Forks Badge"/></a>
|
||||||
|
<a href="https://github.com/ICTU/netbox_slm/pulls"><img src="https://img.shields.io/github/issues-pr/ICTU/netbox_slm" alt="Pull Requests Badge"/></a>
|
||||||
|
<a href="https://github.com/ICTU/netbox_slm/issues"><img src="https://img.shields.io/github/issues/ICTU/netbox_slm" alt="Issues Badge"/></a>
|
||||||
|
<a href="https://github.com/ICTU/netbox_slm/graphs/contributors"><img alt="GitHub contributors" src="https://img.shields.io/github/contributors/ICTU/netbox_slm?color=2b9348"></a>
|
||||||
|
<a href="https://github.com/ICTU/netbox_slm/blob/master/LICENSE"><img src="https://img.shields.io/github/license/ICTU/netbox_slm?color=2b9348" alt="License Badge"/></a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
## Known Issues
|
||||||
|
|
||||||
Known Issues
|
|
||||||
~~~~~~~~~~~~~~~~~~
|
|
||||||
- WARNING: This plugin is only tested with Netbox 3.2 at this time.
|
- WARNING: This plugin is only tested with Netbox 3.2 at this time.
|
||||||
- CSV/Bulk imports for SoftwareProduct, Version and Installation are currently broken (WIP)
|
- CSV/Bulk imports for SoftwareProduct, Version and Installation are currently broken (WIP)
|
||||||
|
|
||||||
Installation Guide
|
## Installation Guide
|
||||||
~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
When using the Docker version of Netbox, first follow the `netbox-docker
|
When using the Docker version of Netbox, first follow the netbox-docker [quickstart](https://github.com/netbox-community/netbox-docker#quickstart) instructions to clone the netbox-docker repo and set up the ``docker-compose.override.yml``.
|
||||||
quickstart <https://github.com/netbox-community/netbox-docker#quickstart>`__
|
|
||||||
instructions to clone the netbox-docker repo and set up the
|
|
||||||
``docker-compose.override.yml``.
|
|
||||||
|
|
||||||
Next, follow these instructions (based on the `Netbox docker variant
|
Next, follow these instructions (based on the Netbox docker variant
|
||||||
instructions <https://github.com/netbox-community/netbox-docker/wiki/Configuration#custom-configuration-files>`__)
|
[instructions](https://github.com/netbox-community/netbox-docker/wiki/Configuration#custom-configuration-files))
|
||||||
to install the Netbox SLM plugin:
|
to install the Netbox SLM plugin:
|
||||||
|
|
||||||
1. Add ``netbox_slm`` to the ``PLUGINS`` list in
|
1. Add ``netbox_slm`` to the ``PLUGINS`` list in
|
||||||
@@ -29,17 +32,16 @@ to install the Netbox SLM plugin:
|
|||||||
contents.
|
contents.
|
||||||
3. Create a ``Dockerfile-SLM`` with contents:
|
3. Create a ``Dockerfile-SLM`` with contents:
|
||||||
|
|
||||||
.. code:: dockerfile
|
```
|
||||||
|
|
||||||
FROM netboxcommunity/netbox:v3.2.X
|
FROM netboxcommunity/netbox:v3.2.X
|
||||||
|
|
||||||
COPY ./plugin_requirements.txt /
|
COPY ./plugin_requirements.txt /
|
||||||
RUN /opt/netbox/venv/bin/pip install --no-warn-script-location -r /plugin_requirements.txt
|
RUN /opt/netbox/venv/bin/pip install --no-warn-script-location -r /plugin_requirements.txt
|
||||||
|
```
|
||||||
|
|
||||||
4. Create a ``docker-compose.override.yml`` with contents:
|
4. Create a ``docker-compose.override.yml`` with contents:
|
||||||
|
|
||||||
.. code:: yaml
|
```
|
||||||
|
|
||||||
version: '3.4'
|
version: '3.4'
|
||||||
services:
|
services:
|
||||||
netbox:
|
netbox:
|
||||||
@@ -53,24 +55,24 @@ to install the Netbox SLM plugin:
|
|||||||
image: netbox:slm
|
image: netbox:slm
|
||||||
netbox-housekeeping:
|
netbox-housekeeping:
|
||||||
image: netbox:slm
|
image: netbox:slm
|
||||||
|
```
|
||||||
|
|
||||||
Now, build the image: ``docker compose build --no-cache``
|
Now, build the image: ``docker compose build --no-cache``
|
||||||
|
|
||||||
And finally, run Netbox with the SLM plugin: ``docker compose up``
|
And finally, run Netbox with the SLM plugin: ``docker compose up``
|
||||||
|
|
||||||
Releasing Guide
|
## Releasing Guide
|
||||||
~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
To draft a release;
|
To draft a release;
|
||||||
|
|
||||||
update the setup.py file to reflect the new version, then from the *src*
|
update the setup.py file to reflect the new version, then from the *src*
|
||||||
directory run
|
directory run
|
||||||
|
|
||||||
::
|
```
|
||||||
|
|
||||||
# make sure to update the version in netbox_slm/__init__.py
|
# make sure to update the version in netbox_slm/__init__.py
|
||||||
$ python setup.py sdist
|
$ python setup.py sdist
|
||||||
$ twine upload dist/*
|
$ twine upload dist/*
|
||||||
|
```
|
||||||
|
|
||||||
On Github.com create a similar tag and version. These steps could be
|
On Github.com create a similar tag and version. These steps could be
|
||||||
automated with a github workflow.
|
automated with a github workflow.
|
||||||
@@ -78,77 +80,82 @@ automated with a github workflow.
|
|||||||
n.b. Currently the plugin is configured to use a personal pypi account,
|
n.b. Currently the plugin is configured to use a personal pypi account,
|
||||||
this should be changed.
|
this should be changed.
|
||||||
|
|
||||||
Developer Guide (local installation)
|
## Developer Guide (local installation)
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
*Follow the steps below on your local system to run netbox and the
|
*Follow the steps below on your local system to run netbox and the
|
||||||
netbox_slm plugin in developer mode*
|
netbox_slm plugin in developer mode*
|
||||||
|
|
||||||
Setup
|
### Setup
|
||||||
~~~~~
|
|
||||||
|
|
||||||
The goal below is to run all Netbox components in Docker and run a local
|
The goal below is to run all Netbox components in Docker and run a local
|
||||||
Netbox Django copy with auto-reload to develop the plugin pointing to
|
Netbox Django copy with auto-reload to develop the plugin pointing to
|
||||||
the Dockerized postgres and redis instances, basically ignoring the
|
the Dockerized postgres and redis instances, basically ignoring the
|
||||||
netbox docker runtime server.
|
netbox docker runtime server.
|
||||||
|
|
||||||
Steps
|
### Steps
|
||||||
~~~~~
|
|
||||||
|
|
||||||
::
|
|
||||||
|
|
||||||
from your projects directory clone the netbox repository
|
from your projects directory clone the netbox repository
|
||||||
|
|
||||||
|
```
|
||||||
$ git clone https://github.com/netbox-community/netbox
|
$ git clone https://github.com/netbox-community/netbox
|
||||||
$ cd netbox
|
$ cd netbox
|
||||||
|
```
|
||||||
|
|
||||||
install the virtual environment
|
install the virtual environment
|
||||||
|
|
||||||
|
```
|
||||||
$ pipenv shell
|
$ pipenv shell
|
||||||
$ pipenv install
|
$ pipenv install
|
||||||
|
```
|
||||||
|
|
||||||
create and edit netbox/configuration.py (based on the template file) add these lines at the end of the file;
|
create and edit netbox/configuration.py (based on the template file) add these lines at the end of the file;
|
||||||
|
|
||||||
|
```
|
||||||
DEBUG = True
|
DEBUG = True
|
||||||
SECRET_KEY = 'dummy'
|
SECRET_KEY = 'dummy'
|
||||||
DEVELOPER = True
|
DEVELOPER = True
|
||||||
PLUGINS = [
|
PLUGINS = [
|
||||||
'netbox_slm',
|
'netbox_slm',
|
||||||
]
|
]
|
||||||
|
```
|
||||||
|
|
||||||
The Netbox installation above will be used to run Django management
|
The Netbox installation above will be used to run Django management
|
||||||
commands like runserver, makemigrations and migrate, which will be
|
commands like runserver, makemigrations and migrate, which will be
|
||||||
explained in the next steps below;
|
explained in the next steps below;
|
||||||
|
|
||||||
::
|
|
||||||
|
|
||||||
from your projects directory clone the netbox-slm repository
|
from your projects directory clone the netbox-slm repository
|
||||||
|
|
||||||
|
```
|
||||||
$ git clone https://github.com/ICTU/netbox_slm
|
$ git clone https://github.com/ICTU/netbox_slm
|
||||||
$ cd netbox_slm
|
$ cd netbox_slm
|
||||||
$ ./start-netbox.sh
|
$ ./start-netbox.sh
|
||||||
|
```
|
||||||
|
|
||||||
This will start Netbox locally (requires Docker) and forward the redis
|
This will start Netbox locally (requires Docker) and forward the redis
|
||||||
and postgres ports to the localhost (make sure there’s no processes
|
and postgres ports to the localhost (make sure there’s no processes
|
||||||
using these ports or change the dockerfiles accordingly)
|
using these ports or change the dockerfiles accordingly)
|
||||||
|
|
||||||
Note, you can also start and stop netbox by hand:
|
Note, you can also start and stop netbox by hand:
|
||||||
|
|
||||||
::
|
```
|
||||||
|
|
||||||
$ cd netbox-docker
|
$ cd netbox-docker
|
||||||
$ docker-compose up -d
|
$ docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
or stop the stack with
|
or stop the stack with
|
||||||
|
|
||||||
|
```
|
||||||
$ docker-compose down
|
$ docker-compose down
|
||||||
|
```
|
||||||
|
|
||||||
# to start fresh:
|
# to start fresh:
|
||||||
|
|
||||||
|
```
|
||||||
$ docker-compose down
|
$ docker-compose down
|
||||||
$ docker volume rm netbox-docker_netbox-postgres-data # et cetera
|
$ docker volume rm netbox-docker_netbox-postgres-data # et cetera
|
||||||
$ docker-compose up -d --force-recreate
|
$ docker-compose up -d --force-recreate
|
||||||
|
```
|
||||||
|
|
||||||
this will require you to re-run the migrate commando's for netbox-slm, see further down below
|
this will require you to re-run the migrate commando's for netbox-slm, see further down below
|
||||||
|
|
||||||
Go back to the netbox configuration.py file and update the postgres and
|
Go back to the netbox configuration.py file and update the postgres and
|
||||||
@@ -156,8 +163,7 @@ redis connection strings (username, password) to the ones the netbox
|
|||||||
docker backend is using, for example (using default user and passwords
|
docker backend is using, for example (using default user and passwords
|
||||||
from the netbox docker example):
|
from the netbox docker example):
|
||||||
|
|
||||||
::
|
```
|
||||||
|
|
||||||
<<collapsed>>
|
<<collapsed>>
|
||||||
|
|
||||||
# PostgreSQL database configuration. See the Django documentation for a complete list of available parameters:
|
# PostgreSQL database configuration. See the Django documentation for a complete list of available parameters:
|
||||||
@@ -204,15 +210,16 @@ from the netbox docker example):
|
|||||||
}
|
}
|
||||||
|
|
||||||
<<collapsed>>
|
<<collapsed>>
|
||||||
|
```
|
||||||
|
|
||||||
Now you can run commands from the netbox repository like this;
|
Now you can run commands from the netbox repository like this;
|
||||||
|
|
||||||
::
|
```
|
||||||
|
|
||||||
$ cd netbox/netbox
|
$ cd netbox/netbox
|
||||||
$ export PYTHONPATH=../../netbox_slm/netbox_slm/ # or with the pipenv activated run `python3 setup.py develop` from the netbox_slm directory
|
$ export PYTHONPATH=../../netbox_slm/netbox_slm/ # or with the pipenv activated run `python3 setup.py develop` from the netbox_slm directory
|
||||||
$ python3 manage.py migrate netbox_slm
|
$ python3 manage.py migrate netbox_slm
|
||||||
$ python3 manage.py runserver 8001
|
$ python3 manage.py runserver 8001
|
||||||
|
```
|
||||||
|
|
||||||
Visit http://127.0.0.1:8001 in the browser to see the auto reloading
|
Visit http://127.0.0.1:8001 in the browser to see the auto reloading
|
||||||
version of the netbox UI. Port 8000 is taken by the docker ran variant.
|
version of the netbox UI. Port 8000 is taken by the docker ran variant.
|
||||||
Reference in New Issue
Block a user