mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-14 01:41:22 -06:00
Promote django-rq to a required dependency
This commit is contained in:
parent
f057a2c016
commit
06245f6422
11
CHANGELOG.md
11
CHANGELOG.md
@ -83,13 +83,18 @@ For the exhaustive list of exposed metrics, visit the `/metrics` endpoint on you
|
|||||||
|
|
||||||
## Changes
|
## Changes
|
||||||
|
|
||||||
### New Dependency: Redis
|
### New Dependencies: Redis and django-rq
|
||||||
|
|
||||||
[Redis](https://redis.io/) is an in-memory data store similar to memcached. While Redis has been an optional component
|
[Redis](https://redis.io/) is an in-memory data store similar to memcached. While Redis has been an optional component
|
||||||
of NetBox since the introduction of webhooks in version 2.4, it is now required to support NetBox's new caching
|
of NetBox since the introduction of webhooks in version 2.4, it is now required to support NetBox's new caching
|
||||||
functionality (as well as other planned features).
|
functionality (as well as other planned features). Redis can be installed via your platform's package manager: for
|
||||||
|
example, `sudo apt-get install redis-server` on Ubuntu or `sudo yum install redis` on CentOS.
|
||||||
|
|
||||||
Redis is configured using a configuration setting similar to `DATABASE` in `configuration.py`:
|
[`django-rq`](https://github.com/rq/django-rq) is a Django integration for Redis-based queuing used for webhook
|
||||||
|
processing. As of v2.6 it is also a required dependency even if webhooks are not enabled. Installation of `django-rq` is
|
||||||
|
handled automatically during the NetBox upgrade process.
|
||||||
|
|
||||||
|
The Redis database is configured using a configuration setting similar to `DATABASE` in `configuration.py`:
|
||||||
|
|
||||||
```
|
```
|
||||||
REDIS = {
|
REDIS = {
|
||||||
|
@ -22,6 +22,10 @@ django-filter
|
|||||||
# https://github.com/django-mptt/django-mptt
|
# https://github.com/django-mptt/django-mptt
|
||||||
django-mptt
|
django-mptt
|
||||||
|
|
||||||
|
# Django integration for RQ (Reqis queuing)
|
||||||
|
# https://github.com/rq/django-rq
|
||||||
|
django-rq
|
||||||
|
|
||||||
# Prometheus metrics library for Django
|
# Prometheus metrics library for Django
|
||||||
# https://github.com/korfuri/django-prometheus
|
# https://github.com/korfuri/django-prometheus
|
||||||
django-prometheus
|
django-prometheus
|
||||||
|
@ -4,14 +4,6 @@ A webhook defines an HTTP request that is sent to an external application when c
|
|||||||
|
|
||||||
An optional secret key can be configured for each webhook. This will append a `X-Hook-Signature` header to the request, consisting of a HMAC (SHA-512) hex digest of the request body using the secret as the key. This digest can be used by the receiver to authenticate the request's content.
|
An optional secret key can be configured for each webhook. This will append a `X-Hook-Signature` header to the request, consisting of a HMAC (SHA-512) hex digest of the request body using the secret as the key. This digest can be used by the receiver to authenticate the request's content.
|
||||||
|
|
||||||
## Installation
|
|
||||||
|
|
||||||
If you are upgrading from a previous version of Netbox and want to enable the webhook feature, please follow the directions listed in the sections below.
|
|
||||||
|
|
||||||
* [Install Redis server and djano-rq package](../installation/2-netbox/#install-python-packages)
|
|
||||||
* [Modify configuration to enable webhooks](../installation/2-netbox/#webhooks-configuration)
|
|
||||||
* [Create supervisord program to run the rqworker process](../installation/3-http-daemon/#supervisord-installation)
|
|
||||||
|
|
||||||
## Requests
|
## Requests
|
||||||
|
|
||||||
The webhook POST request is structured as so (assuming `application/json` as the Content-Type):
|
The webhook POST request is structured as so (assuming `application/json` as the Content-Type):
|
||||||
|
@ -1,18 +1,18 @@
|
|||||||
# Installation
|
# Installation
|
||||||
|
|
||||||
This section of the documentation discusses installing and configuring the NetBox application.
|
This section of the documentation discusses installing and configuring the NetBox application. Begin by installing all system packages required by NetBox and its dependencies:
|
||||||
|
|
||||||
**Ubuntu**
|
**Ubuntu**
|
||||||
|
|
||||||
```no-highlight
|
```no-highlight
|
||||||
# apt-get install -y python3 python3-pip python3-dev build-essential libxml2-dev libxslt1-dev libffi-dev graphviz libpq-dev libssl-dev zlib1g-dev
|
# apt-get install -y python3 python3-pip python3-dev build-essential libxml2-dev libxslt1-dev libffi-dev graphviz libpq-dev libssl-dev redis-server zlib1g-dev
|
||||||
```
|
```
|
||||||
|
|
||||||
**CentOS**
|
**CentOS**
|
||||||
|
|
||||||
```no-highlight
|
```no-highlight
|
||||||
# yum install -y epel-release
|
# yum install -y epel-release
|
||||||
# yum install -y gcc python36 python36-devel python36-setuptools libxml2-devel libxslt-devel libffi-devel graphviz openssl-devel redhat-rpm-config
|
# yum install -y gcc python36 python36-devel python36-setuptools libxml2-devel libxslt-devel libffi-devel graphviz openssl-devel redhat-rpm-config redis
|
||||||
# easy_install-3.6 pip
|
# easy_install-3.6 pip
|
||||||
# ln -s /usr/bin/python36 /usr/bin/python3
|
# ln -s /usr/bin/python36 /usr/bin/python3
|
||||||
```
|
```
|
||||||
@ -90,28 +90,6 @@ NetBox supports integration with the [NAPALM automation](https://napalm-automati
|
|||||||
# pip3 install napalm
|
# pip3 install napalm
|
||||||
```
|
```
|
||||||
|
|
||||||
## Webhooks (Optional)
|
|
||||||
|
|
||||||
[Webhooks](../data-model/extras/#webhooks) allow NetBox to integrate with external services by pushing out a notification each time a relevant object is created, updated, or deleted. Enabling the webhooks feature requires [Redis](https://redis.io/), a lightweight in-memory database. You may opt to install a Redis sevice locally (see below) or connect to an external one.
|
|
||||||
|
|
||||||
**Ubuntu**
|
|
||||||
|
|
||||||
```no-highlight
|
|
||||||
# apt-get install -y redis-server
|
|
||||||
```
|
|
||||||
|
|
||||||
**CentOS**
|
|
||||||
|
|
||||||
```no-highlight
|
|
||||||
# yum install -y redis
|
|
||||||
```
|
|
||||||
|
|
||||||
Enabling webhooks also requires installing the [`django-rq`](https://github.com/ui/django-rq) package. This allows NetBox to use the Redis database as a queue for outgoing webhooks.
|
|
||||||
|
|
||||||
```no-highlight
|
|
||||||
# pip3 install django-rq
|
|
||||||
```
|
|
||||||
|
|
||||||
# Configuration
|
# Configuration
|
||||||
|
|
||||||
Move into the NetBox configuration directory and make a copy of `configuration.example.py` named `configuration.py`.
|
Move into the NetBox configuration directory and make a copy of `configuration.example.py` named `configuration.py`.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Migration
|
# Migration
|
||||||
|
|
||||||
!!! warning
|
!!! warning
|
||||||
Beginning with v2.5, NetBox will no longer support Python 2. It is strongly recommended that you upgrade to Python 3 as soon as possible.
|
As of version 2.5, NetBox no longer supports Python 2. Python 3 is required to run any 2.5 release or later.
|
||||||
|
|
||||||
## Ubuntu
|
## Ubuntu
|
||||||
|
|
||||||
@ -36,9 +36,3 @@ If using LDAP authentication, install the `django-auth-ldap` package:
|
|||||||
```no-highlight
|
```no-highlight
|
||||||
# pip3 install django-auth-ldap
|
# pip3 install django-auth-ldap
|
||||||
```
|
```
|
||||||
|
|
||||||
If using Webhooks, install the `django-rq` package:
|
|
||||||
|
|
||||||
```no-highlight
|
|
||||||
# pip3 install django-rq
|
|
||||||
```
|
|
||||||
|
@ -5,6 +5,7 @@ django-debug-toolbar==1.11
|
|||||||
django-filter==2.1.0
|
django-filter==2.1.0
|
||||||
django-mptt==0.9.1
|
django-mptt==0.9.1
|
||||||
django-prometheus==1.0.15
|
django-prometheus==1.0.15
|
||||||
|
django-rq==2.0
|
||||||
django-tables2==2.0.6
|
django-tables2==2.0.6
|
||||||
django-taggit==1.1.0
|
django-taggit==1.1.0
|
||||||
django-taggit-serializer==0.1.7
|
django-taggit-serializer==0.1.7
|
||||||
|
Loading…
Reference in New Issue
Block a user