Cómo instalar PostgreSQL y pgAdmin4 en CentOS 7

PostgreSQL o Postgres es un potente sistema de gestión de bases de datos objeto-relacionales (ORDBMS) de alto rendimiento, publicado bajo una licencia flexible de tipo BSD. PostgreSQL es muy adecuado para grandes bases de datos y tiene muchas funciones avanzadas.

pgAdmin4 es una herramienta de gestión PostgreSQL de código abierto diseñada para múltiples versiones de bases de datos PostgreSQL. pgAdmin4 se ha creado con todas las funciones que se pueden encontrar en el servidor PostgreSQL. Está escrito en python y jquery y se puede instalar en Windows, Mac y Linux. Ofrece múltiples modelos de despliegue, puede instalarse como aplicación de escritorio o como aplicación de servidor que se ejecuta detrás de un servidor web como Apache2.

En este tutorial, te mostraremos cómo instalar la última base de datos PostgreSQL y el pgAdmin4 en un servidor CentOS 7. Instalaremos el PostgreSQL en el Servidor CentOS 7 y luego configuraremos la contraseña para el usuario por defecto ‘postgres’. Después, instalaremos y configuraremos la herramienta de gestión PostgreSQL pgAdmin4.

Lo que haremos

  • Instalar dependencias
  • Instalar PostgreSQL 11 en CentOS 7
  • Configurar el usuario y la autenticación de PostgreSQL
  • Instalar pgAdmin4 en CentOS 7
  • Configurar pgAdmin4
  • Configurar SELinux para PostgreSQL y pgAdmin4
  • Configurar Firewalld
  • Probar

Paso 1 – Instalar dependencias

En primer lugar, vamos a actualizar todos los paquetes a la última versión e instalar algunos paquetes que son necesarios para este tutorial.

Ahora actualiza todos los paquetes a la última versión y añade el repositorio EPEL al sistema CentOS 7.

Ejecuta el siguiente comando yum.

sudo yum update
sudo yum -y install epel-release

Después, instala algunos paquetes necesarios para este tutorial, como la gestión de políticas SELinux, firewalld, el editor vim y las net-tools.

sudo yum -y install policycoreutils-python firewalld vim net-tools

Ahora todos los paquetes necesarios han sido instalados en el sistema CentOS 7.

Paso 2 – Instalar PostgreSQL

En este paso, vamos a instalar el PostgreSQL desde el repositorio oficial. para ello, necesitamos añadir el repositorio PostgreSQL para CentOS 7 a nuestro sistema.

Añade el repositorio PostgreSQL para CentOS 7 al sistema utilizando el siguiente comando.

sudo yum -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

Ahora comprueba todo lo disponible en el sistema.

sudo yum repolist

Y obtendrás que el repositorio PostgreSQL ha sido añadido al sistema CentOS 7.

A continuación, instalaremos la última versión ’11’ de PostgreSQL e inicializaremos la configuración de la base de datos PostgreSQL.

Instala PostgreSQL 11 utilizando el siguiente comando yum.

sudo yum -y install postgresql11 postgresql11-server postgresql11-contrib

Una vez completada toda la instalación, inicializa la base de datos PostgreSQL utilizando la siguiente utilidad de comandos que proporciona el propio PostgreSQL.

/usr/pgsql-11/bin/postgresql-11-setup initdb

Y ahora ya puedes iniciar el servicio PostgreSQL. Inicia el servicio PostgreSQL y añádelo al arranque del sistema.

systemctl start postgresql-11
systemctl enable postgresql-11

Y el servicio PostgreSQL 11 ya está en marcha en el sistema CentOS 7.

Paso 3 – Configurar el usuario y la autenticación de PostgreSQL

Después de instalar el PostgreSQL 11 en el sistema CentOS 7, vamos a configurar la contraseña para el usuario ‘postgres’ y cambiar el método de autenticación por defecto ‘ident’ por ‘md5’.

Para configurar la contraseña del usuario ‘postgres’, tendrás que identificarte con el usuario ‘postgres’ y acceder a la interfaz de línea de comandos ‘psql’ de PostgreSQL.

su - postgres
psql

Cambia la contraseña del usuario ‘postgres’ utilizando la siguiente consulta.

\password postgres
TYPE YOUR PASSWORD

Una vez completada, escribe ‘exit’ para salir de la interfaz ‘psql’ y del usuario ‘postgres’.

A continuación, vamos a cambiar el método de autenticación para todos los accesos internos a ‘md5’.

Ve al directorio ‘/var/lib/pgsql/11/data/’ y edita el archivo de configuración ‘pg_hba.conf’ utilizando el editor vim.

cd /var/lib/pgsql/11/data/
vim pg_hba.conf

Cambia la línea de autenticación para el host ‘127.0.0.1/32’, de ‘ident’ a ‘md5’.

host    all             all             127.0.0.1/32            md5

Guarda y cierra.

Ahora reinicia el servicio PostgreSQL.

systemctl restart postgresql-11

Y podrás conectarte a la base de datos utilizando la contraseña que acabas de configurar.

Prueba la configuración utilizando el comando psql como se indica a continuación.

psql -h 127.0.0.1 -U postgres
Password:

Escribe la contraseña que acabas de crear y asegúrate de que puedes acceder a la interfaz de línea de comandos de PostgreSQL con esa contraseña.

Y la instalación y configuración de PostgreSQL 11 en el sistema CentOS 7 ha finalizado.

Paso 4 – Instalar pgAdmin4

En este paso, vamos a instalar el paquete ‘pgAdmin4’ en el sistema CentOS 7.

Instala el paquete pgAdmin4 utilizando el siguiente comando yum.

sudo yum -y install pgadmin4

Al instalar el paquete pgAdmin4, se instalarán automáticamente las dependencias de los paquetes para sí mismo, incluyendo el servidor web httpd y el ‘pgAdmin-web’.

Una vez finalizada la instalación, inicia el servicio httpd y añádelo al arranque.

systemctl start httpd
systemctl enable httpd

Ahora pgAdmin4 se ejecuta con la configuración por defecto bajo el servidor web httpd.

Paso 5 – Configurar pgAdmin4

En este paso, vamos a configurar el pgAdmin4 en el sistema CentOS 7. Vamos a definir el directorio de datos/almacenamiento y de registro para el pgAdmin4 y luego configuraremos el usuario admin para el pgAdmin4.

Antes de continuar, ve al directorio ‘/etc/httpd/conf.d’ y renombra el ejemplo de configuración de pgAdmin4 a ‘pgadmin4.conf’.

cd /etc/httpd/conf.d/
mv pgadmin4.conf.sample pgadmin4.conf

Crea ahora un nuevo directorio de datos y de registro para pgAdmin4.

mkdir -p /var/log/pgadmin4/
mkdir -p /var/lib/pgadmin4/{sessions,storage}

El directorio de datos ‘/var/lib/pgadmin4/’ se utilizará para almacenar toda la configuración de pgAdmin4, y todos los registros de pgAdmin4 estarán disponibles en el directorio ‘/var/log/pgadmin4’.

Después, tenemos que definir el directorio de datos y de logs en la configuración de pgAdmin4. Edita el archivo de configuración de pgAdmin4 ‘config.py’ utilizando el editor vim como se indica a continuación.

vim /usr/lib/python2.7/site-packages/pgadmin4-web/config.py

Pega la siguiente configuración en la línea inferior.

LOG_FILE = '/var/log/pgadmin4/pgadmin4.log'
SQLITE_PATH = '/var/lib/pgadmin4/pgadmin4.db'
SESSION_DB_PATH = '/var/lib/pgadmin4/sessions'
STORAGE_DIR = '/var/lib/pgadmin4/storage'

Guarda y cierra.

A continuación, crea un nuevo usuario administrador para pgAdmin4 utilizando el script de configuración de pgAdmin como se indica a continuación.

python /usr/lib/python2.7/site-packages/pgadmin4-web/setup.py

Escribe tu dirección de correo electrónico y tu contraseña, y obtendrás el resultado que se muestra a continuación.

Como resultado, se ha creado el usuario admin de pgAdmin.

Ahora necesitamos reiniciar el servicio httpd.

systemctl restart httpd

Y cambiar el propietario del directorio de datos y logs de pgAdmin4 al usuario ‘apache’.

chown -R apache:apache /var/lib/pgadmin4/
chown -R apache:apache /var/log/pgadmin4/

Y la configuración de pgAdmin4 se ha completado.

Paso 6 – Configurar SELinux para pgAdmin4

Si vas a instalar pgAdmin4 en el servidor CentOS 7 con el modo SELinux ‘enforcing’, entonces debes realizar esta sección.

Comprueba el estado de SELinux utilizando el siguiente comando.

sestatus

A continuación se muestra el resultado del SELinux con el modo ‘Enforcing’.

En primer lugar, debemos permitir que el servicio httpd se conecte a la red. Permite que el pgAdmin4 bajo el servidor web httpd acceda al servidor PostgreSQL en la dirección IP local ‘127.0.0.1’ con el puerto ‘5432’.

Ejecuta el siguiente comando setsebool.

setsebool -P httpd_can_network_connect 1

Después, tenemos que añadir el contexto y la etiqueta de todos los archivos pgAdmin4 en el directorio de datos y de registro a ‘httpd_sys_rw_content_t’.

sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/lib/pgadmin4(/.*)?"
sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/log/pgadmin4(/.*)?"

A continuación, restaura el contexto SELinux de los archivos de los directorios de datos y log.

sudo restorecon -R /var/lib/pgadmin4/
sudo restorecon -R /var/log/pgadmin4/

Y la configuración SELinux para el pgAdmin4 se ha completado.

Paso 7 – Configurar Firewalld

En este paso, añadiremos los servicios HTTP y HTTPS a la configuración firewalld.

Utiliza el siguiente comando para añadir los servicios HTTP y HTTPS a las reglas firewalld.

firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent

Ahora vuelve a cargar las reglas del cortafuegos.

firewall-cmd --reload

Y la configuración firewalld se habrá completado, y el pgAdmin4 será accesible a través del servidor web httpd.

Paso 8 – Pruebas

Abre tu navegador web y escribe la dirección IP del servidor y la ruta URL ‘/pgadmin4’ en la barra de direcciones.

http://10.5.5.15/pgadmin4

Y obtendrás la página de inicio de sesión de pgAdmin4.

Inicia sesión con tu dirección de correo electrónico y la contraseña que se inicializó durante la instalación, y pulsa el botón ‘Iniciar sesión’.

Una vez iniciada la sesión en pgAdmin4, obtendrás el panel de control que se muestra a continuación.

Después, debemos añadir nuestro servidor PostgreSQL a la herramienta de gestión pgAdmin4.

En el panel de control de pgAdmin4, haz clic en el botón «Añadir nuevo servidor».

En la pestaña ‘General’, escribe el nombre del nuevo servidor. Escribe los detalles de tu servidor PostgreSQL en la pestaña «Conexión», incluyendo la dirección host/IP, el nombre de usuario y la contraseña.

Ahora haz clic en el botón «Guardar».

Una vez añadido el servidor PostgreSQL, obtendrás los detalles sobre tu servidor PostgreSQL en el menú de la izquierda.

Como resultado, la instalación y configuración de PostgreSQL y pgAdmin4 en el Servidor CentOS 7 se ha completado con éxito.

Referencia

También te podría gustar...