1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

81 lines
2.9 KiB
Markdown
Raw Normal View History

2020-03-05 17:23:56 -05:00
# PostgreSQL Database Installation
2020-02-26 11:40:31 -05:00
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
2020-07-20 16:53:04 -04:00
NetBox requires PostgreSQL 9.6 or higher. Please note that MySQL and other relational databases are **not** currently supported.
2020-02-26 11:40:31 -05:00
## Installation
2020-02-26 11:40:31 -05:00
#### Ubuntu
2016-07-08 16:00:53 -04:00
Install the PostgreSQL server and client development libraries using `apt`.
```no-highlight
2020-11-17 12:01:10 -05:00
sudo apt update
sudo apt install -y postgresql libpq-dev
```
2020-02-26 11:40:31 -05:00
#### CentOS
2016-07-08 16:00:53 -04:00
PostgreSQL 9.6 and later are available natively on CentOS 8.2. If using an earlier CentOS release, you may need to [install it from an RPM](https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/).
2017-10-12 13:38:23 -04:00
```no-highlight
sudo yum install -y postgresql-server libpq-devel
sudo postgresql-setup --initdb
```
CentOS configures ident host-based authentication for PostgreSQL by default. Because NetBox will need to authenticate using a username and password, modify `/var/lib/pgsql/data/pg_hba.conf` to support MD5 authentication by changing `ident` to `md5` for the lines below:
```no-highlight
host all all 127.0.0.1/32 md5
host all all ::1/128 md5
2016-07-08 16:00:53 -04:00
```
2017-10-12 13:38:23 -04:00
Then, start the service and enable it to run at boot:
```no-highlight
sudo systemctl start postgresql
sudo systemctl enable postgresql
```
2016-07-08 16:00:53 -04:00
2020-02-26 11:40:31 -05:00
## Database Creation
2016-07-08 16:00:53 -04:00
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
2020-07-20 16:53:04 -04:00
**Do not use the password from the example.** Choose a strong, random password to ensure secure database authentication for your NetBox installation.
2016-07-08 16:00:53 -04:00
```no-highlight
2020-11-17 12:01:10 -05:00
$ sudo -u postgres psql
psql (12.5 (Ubuntu 12.5-0ubuntu0.20.04.1))
2016-07-08 16:00:53 -04:00
Type "help" for help.
postgres=# CREATE DATABASE netbox ENCODING 'UTF8' LC_COLLATE='C.UTF-8' LC_CTYPE='C.UTF-8';
2016-07-08 16:00:53 -04:00
CREATE DATABASE
postgres=# CREATE USER netbox WITH PASSWORD 'J5brHrAXFLQSif0K';
CREATE ROLE
postgres=# GRANT ALL PRIVILEGES ON DATABASE netbox TO netbox;
GRANT
postgres=# \q
```
2020-02-26 11:40:31 -05:00
## Verify Service Status
2017-10-12 13:38:23 -04:00
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.)
2016-07-08 16:00:53 -04:00
```no-highlight
2020-11-17 12:01:10 -05:00
$ psql --username netbox --password --host localhost netbox
2020-07-20 16:53:04 -04:00
Password for user netbox:
2020-11-17 12:01:10 -05:00
psql (12.5 (Ubuntu 12.5-0ubuntu0.20.04.1))
2020-07-20 16:53:04 -04:00
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
Type "help" for help.
2020-11-17 12:01:10 -05:00
netbox=> \conninfo
You are connected to database "netbox" as user "netbox" on host "localhost" (address "127.0.0.1") at port "5432".
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
2020-07-20 16:53:04 -04:00
netbox=> \q
2016-07-08 16:00:53 -04:00
```
2020-11-17 12:01:10 -05:00
If successful, you will enter a `netbox` prompt. Type `\conninfo` to confirm your connection, or type `\q` to exit.