mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
81 lines
3.2 KiB
Markdown
81 lines
3.2 KiB
Markdown
# PostgreSQL Database Installation
|
|
|
|
This section entails the installation and configuration of a local PostgreSQL database. If you already have a PostgreSQL database service in place, skip to [the next section](2-redis.md).
|
|
|
|
!!! warning
|
|
NetBox requires PostgreSQL 9.6 or higher. Please note that MySQL and other relational databases are **not** currently supported.
|
|
|
|
The installation instructions provided here have been tested to work on Ubuntu 18.04 and CentOS 7.5. The particular commands needed to install dependencies on other distributions may vary significantly. Unfortunately, this is outside the control of the NetBox maintainers. Please consult your distribution's documentation for assistance with any errors.
|
|
|
|
## Installation
|
|
|
|
#### Ubuntu
|
|
|
|
If a recent enough version of PostgreSQL is not available through your distribution's package manager, you'll need to install it from an official [PostgreSQL repository](https://wiki.postgresql.org/wiki/Apt).
|
|
|
|
```no-highlight
|
|
# apt-get update
|
|
# apt-get install -y postgresql libpq-dev
|
|
```
|
|
|
|
#### CentOS
|
|
|
|
CentOS 7 does not ship with a recent enough version of PostgreSQL, so it will need to be installed from an external repository. The instructions below show the installation of PostgreSQL 9.6, however you may opt to install a more recent version.
|
|
|
|
```no-highlight
|
|
# yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
|
|
# yum install -y postgresql96 postgresql96-server postgresql96-devel
|
|
# /usr/pgsql-9.6/bin/postgresql96-setup initdb
|
|
```
|
|
|
|
CentOS users should modify the PostgreSQL configuration to accept password-based authentication by replacing `ident` with `md5` for all host entries within `/var/lib/pgsql/9.6/data/pg_hba.conf`. For example:
|
|
|
|
```no-highlight
|
|
host all all 127.0.0.1/32 md5
|
|
host all all ::1/128 md5
|
|
```
|
|
|
|
Then, start the service and enable it to run at boot:
|
|
|
|
```no-highlight
|
|
# systemctl start postgresql-9.6
|
|
# systemctl enable postgresql-9.6
|
|
```
|
|
|
|
## Database Creation
|
|
|
|
At a minimum, we need to create a database for NetBox and assign it a username and password for authentication. This is done with the following commands.
|
|
|
|
!!! danger
|
|
**Do not use the password from the example.** Choose a strong, random password to ensure secure database authentication for your NetBox installation.
|
|
|
|
```no-highlight
|
|
# sudo -u postgres psql
|
|
psql (10.12 (Ubuntu 10.12-0ubuntu0.18.04.1))
|
|
Type "help" for help.
|
|
|
|
postgres=# CREATE DATABASE netbox;
|
|
CREATE DATABASE
|
|
postgres=# CREATE USER netbox WITH PASSWORD 'J5brHrAXFLQSif0K';
|
|
CREATE ROLE
|
|
postgres=# GRANT ALL PRIVILEGES ON DATABASE netbox TO netbox;
|
|
GRANT
|
|
postgres=# \q
|
|
```
|
|
|
|
## Verify Service Status
|
|
|
|
You can verify that authentication works issuing the following command and providing the configured password. (Replace `localhost` with your database server if using a remote database.)
|
|
|
|
```no-highlight
|
|
# psql --username netbox --password --host localhost netbox
|
|
Password for user netbox:
|
|
psql (10.12 (Ubuntu 10.12-0ubuntu0.18.04.1))
|
|
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
|
|
Type "help" for help.
|
|
|
|
netbox=> \q
|
|
```
|
|
|
|
If successful, you will enter a `netbox` prompt. Type `\q` to exit.
|