screwdriver-wrenchPreparar el entorno

Tareas previas ..

circle-info

Preparar el entorno

Prepare su servidor Ubuntu para una instalación de archivo del servidor Pentaho.

Este proceso hará:

  • Crear un pentaho usuario de instalación (con sudo)

  • Establecer rutas de Pentaho - $PENTAHO_BASE

  • Instalar Java 21 (OpenJDK)

  • Establecer PENTAHO_JAVA_HOME

  • Instalar PostgreSQL 17 (15 compatible para Pentaho 11)

  • Crear usuario de base de datos del repositorio - pentaho para la configuración

  • Instalar pgAdmin 4 (escritorio)

circle-exclamation
1

Requisitos previos

  1. Asegúrese de que unzip esté instalado.

unzip --version
  1. Establezca las variables de ruta de Pentaho.

2

Crear un usuario de instalación de Pentaho

triangle-exclamation
  1. Actualizar paquetes (ejecutar una vez):

sudo apt update -y && sudo apt upgrade -y
  1. Agregar el usuario y establecer una contraseña:

sudo adduser pentaho
  1. Conceder privilegios sudo:

sudo usermod -aG sudo pentaho
  1. Validar acceso:

su - pentaho
groups
sudo -v
3

Instalar Java 21 (OpenJDK)

circle-info

Pentaho 11.x está certificado con Java 21.

chevron-right¿Cuál es la diferencia entre Oracle JDK y OpenJDK?hashtag

Oracle JDK y OpenJDK son ambas implementaciones de la Plataforma Java, pero tienen algunas diferencias importantes:

Licencias y costo:

  • OpenJDK es completamente gratuito y de código abierto bajo la licencia GPL. Puede usarlo para cualquier propósito sin restricciones.

  • Oracle JDK cambió su modelo de licencia en 2019. Ahora es gratuito para desarrollo y uso personal, pero requiere una suscripción de pago para uso comercial en producción (Oracle Java SE Subscription).

Origen y desarrollo:

  • OpenJDK es la implementación de referencia de Java y sirve como base para la mayoría de las distribuciones de JDK. Oracle en realidad contribuye de forma significativa al desarrollo de OpenJDK.

  • Oracle JDK se construye a partir del código fuente de OpenJDK pero incluye algunos componentes propietarios adicionales y características comerciales.

Rendimiento y características:

  • En versiones modernas (Java 11+), las diferencias de rendimiento son insignificantes. Oracle ha devuelto la mayoría de sus mejoras de rendimiento a OpenJDK.

  • Oracle JDK históricamente incluía algunas herramientas y características adicionales (como Java Flight Recorder y Java Mission Control), pero muchas de ellas se han abierto y ahora están disponibles en OpenJDK.

Soporte y actualizaciones:

  • OpenJDK recibe soporte de la comunidad y actualizaciones durante aproximadamente 6 meses por versión (excepto las versiones LTS mantenidas por varios proveedores).

  • Oracle JDK ofrece soporte a largo plazo (LTS) con suscripciones comerciales, proporcionando actualizaciones y parches de seguridad durante períodos extendidos.

Otras distribuciones: Muchos proveedores ofrecen sus propias compilaciones de OpenJDK con soporte a largo plazo, incluyendo Amazon Corretto, Azul Zulu, Eclipse Temurin (anteriormente AdoptOpenJDK) y Red Hat OpenJDK.

Para la mayoría de los desarrolladores y organizaciones, OpenJDK o las distribuciones de OpenJDK respaldadas por proveedores son la opción preferida a menos que necesite específicamente el soporte comercial de Oracle.

  1. Instalar Java 21:

sudo apt install -y openjdk-21-jre-headless
  1. Verificar Java:

java -version
which java
readlink -f $(which java)
Ubuntu apt installed OpenJDK versions list
Versiones de OpenJDK
java -version output showing Java 21
Java 21
circle-info

Si se instalan varias versiones de Java, seleccione la predeterminada:

sudo update-alternatives --config java
4

Establecer PENTAHO_JAVA_HOME

Establecer PENTAHO_JAVA_HOME globalmente para que el servidor Pentaho use consistentemente Java 21.

  1. Editar /etc/environment:

sudo nano /etc/environment
  1. Agregar (o actualizar) la siguiente línea:

# establecer PENTAHO_JAVA_HOME
PENTAHO_JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64
Establecer PENTAHO_JAVA_HOME
  1. Guardar y recargar el entorno (o cerrar sesión/iniciar sesión):

source /etc/environment
  1. Verificar:

echo $PENTAHO_JAVA_HOME

circle-info

Alternativa: establecer solo para un usuario en ~/.bashrc.

  1. Editar:

nano ~/.bashrc
  1. Agregar al final y aplicar:

export PENTAHO_JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64
. ~/.bashrc
5

Instalar PostgreSQL 17

circle-info

El repositorio predeterminado de Ubuntu 24.04 proporciona un PostgreSQL 16 más reciente. Para instalar 17, agregue el repositorio oficial de PostgreSQL (PGDG).

Si ya hay instalado un PostgreSQL diferente, elimínelo primero para evitar conflictos de puertos y paquetes (vea la pestaña opcional "Eliminar instalaciones anteriores").

Requisitos previos Ubuntu 24.04 Privilegios de root o acceso sudo use sudo su para acceder como root en lugar de pentaho (usuario predeterminado)

  1. Antes de instalar PostgreSQL, asegúrese de que su sistema esté actualizado.

sudo apt update && sudo apt upgrade -y
  1. Instalar paquetes prerequisitos.

sudo apt install -y wget ca-certificates
  1. Importar la clave GPG de PostgreSQL.

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
  1. Agregar el repositorio de PostgreSQL

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
  1. Actualizar la lista de paquetes.

sudo apt update
  1. Instalar los paquetes del servidor y cliente de PostgreSQL 17.

sudo apt update -y && sudo apt upgrade -y
sudo apt install -y postgresql-17 postgresql-contrib-17
circle-info

Qué se instala:

  • postgresql-17: Servidor de base de datos principal

  • postgresql-contrib-17: Utilidades y extensiones adicionales

  1. Comprobar servicio y versión:

sudo systemctl status postgresql --no-pager
psql --version
PostgreSQL 17.7
  1. Limpieza opcional:

circle-info

Validación:

sudo systemctl is-enabled postgresql
sudo ss -ltnp | grep 5432 || true
sudo -u postgres psql -c "SELECT version();"
6

Crear usuario de base de datos - pentaho

circle-info

Durante la instalación, PostgreSQL crea un superusuario local postgres. Establezca su contraseña y (opcionalmente) cree un pentaho rol.

triangle-exclamation
  1. Cambiar al usuario del sistema postgres.

sudo -i -u postgres
  1. Ingrese al terminal interactivo de PostgreSQL.

psql
  1. Debería ver el indicador de PostgreSQL:

postgres=#
  1. Ver bases de datos actuales.

\l
circle-info

Esto lista todas las bases de datos. Debería ver tres bases de datos por defecto: postgres, template0 y template1.

  1. Salir.

q
  1. Comprobar la versión de PostgreSQL desde SQL.

SELECT version();
  1. Salir del aviso de PostgreSQL.

\q
  1. Y salir de psql.

exit

Crear usuario pentaho

  1. Establecer postgres contraseña:

sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD 'SecurePassword123';"
  1. Crear un pentaho usuario y conceder SUPERUSER privilegios:

sudo -u postgres psql -c "CREATE USER pentaho WITH PASSWORD 'SecurePassword123';"
sudo -u postgres psql -c "ALTER USER pentaho WITH SUPERUSER;" # Solo demostración
circle-info
  • sudo -u postgres - Ejecutar el comando como el usuario del sistema Linux postgres (que tiene acceso local a PostgreSQL sin contraseña)

  • psql -c - Ejecuta un único comando SQL y sale

  • CREATE USER pentaho - Crea un nuevo rol/usuario de PostgreSQL llamado pentaho

  • WITH PASSWORD 'SecurePassword123' - Establece la contraseña para este usuario


  • ALTER USER pentaho - Modifica el pentaho usuario existente

  • WITH SUPERUSER - Concede privilegios completos de superusuario (puede hacer cualquier cosa: crear bases de datos, crear usuarios, eludir todos los permisos, etc.)

  • # Solo demostración - Comentario de advertencia indicando que esto es peligroso para producción

  1. Probar conexión como pentaho:

sudo -u pentaho psql -d postgres -c "\conninfo"
7

Opcional: Permitir conexiones remotas

circle-info

Solo como referencia ya que conectarse a Postgresql vía localhost

Por defecto, PostgreSQL acepta solo conexiones locales. Para configuraciones localhost, no necesita este paso.

  1. Hacer copia de seguridad de las configuraciones y editar postgresql.conf (PostgreSQL 17):

sudo cp /etc/postgresql/17/main/postgresql.conf{,.bak}
sudo nano /etc/postgresql/17/main/postgresql.conf
  1. Establecer: listen_addresses = '*' (una interfaz/IP específica en producción)

Establecer el listener
  1. Guardar:

Ctrl + o
Enter
Ctrl + x
8

Configurar pg_hba.conf

circle-info

El archivo pg_hba.conf (configuración de autenticación basada en host de PostgreSQL) controla quién puede conectarse a su base de datos PostgreSQL y cómo se autentican. Lo configura durante la instalación para definir reglas de seguridad de acceso a la base de datos.

En producción modificaría la configuración para permitir solo a los usuarios requeridos el acceso a las bases de datos desde las IPs del servidor.

  1. Configurar PostgreSQL para usar autenticación de contraseña md5 archivo pg_hba.conf .

sudo cp /etc/postgresql/17/main/pg_hba.conf{,.bak}
sudo nano /etc/postgresql/17/main/pg_hba.conf
  1. Editar manualmente el archivo:

O

  1. Ejecute el siguiente script.

# Use la ruta exacta
PG_HBA_PATH=/etc/postgresql/17/main/pg_hba.conf

# Verificar que el archivo exista
ls -la "$PG_HBA_PATH"

# Si eso funciona, entonces ejecute:
sudo cp "$PG_HBA_PATH" "${PG_HBA_PATH}.backup"
sudo sed -i 's/^local[[:space:]]\+all[[:space:]]\+postgres[[:space:]]\+peer$/local   all             postgres                                scram-sha-256/' "$PG_HBA_PATH"
sudo sed -i 's/^local[[:space:]]\+all[[:space:]]\+all[[:space:]]\+peer$/local   all             all                                     scram-sha-256/' "$PG_HBA_PATH"
sudo sed -i '0,/^host[[:space:]]\+all[[:space:]]\+all[[:space:]]\+127\.0\.0\.1\/32[[:space:]]\+scram-sha-256$/s//host    all             all             0.0.0.0\/0               md5/' "$PG_HBA_PATH"

# Verificar
sudo cat "$PG_HBA_PATH" | grep -E "^(local|host)[[:space:]]+(all|replication)"
SED: pg_hba.conf
circle-info

Preferir scram-sha-256 sobre md5 en archivo pg_hba.conf para un hashing de contraseñas más fuerte en versiones modernas de PostgreSQL.

Asegúrese de que su controlador JDBC admita SCRAM (por ejemplo, controladores recientes de PostgreSQL). Si surgen problemas de compatibilidad, use md5 como solución alternativa.

  1. Reiniciar el servicio de PostgreSQL.

cd
systemctl restart postgresql
# Contraseña: password
  1. Permitir en el firewall (si está habilitado) y reiniciar:

sudo ufw allow 5432/tcp || true
sudo systemctl restart postgresql
sudo ss -ltnp | grep 5432
9

Instalar pgAdmin 4 (escritorio)

Instale el cliente de escritorio pgAdmin 4 usando el repositorio oficial.

  1. Agregar repositorio y clave:

sudo install -d -m 0755 /etc/apt/keyrings
curl -fsS https://www.pgadmin.org/static/packages_pgadmin_org.pub | gpg --dearmor | sudo tee /etc/apt/keyrings/packages-pgadmin-org.gpg > /dev/null
source /etc/os-release
echo "deb [signed-by=/etc/apt/keyrings/packages-pgadmin-org.gpg] https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/${UBUNTU_CODENAME} pgadmin4 main" | sudo tee /etc/apt/sources.list.d/pgadmin4.list
  1. Instalar pgAdmin 4 (escritorio):

sudo apt update -y && sudo apt upgrade -y
sudo apt install -y pgadmin4-desktop
  1. Opcional: verificar entrada del repositorio

cat /etc/apt/sources.list.d/pgadmin4.list
  1. Agregar una conexión de servidor en pgAdmin:

  • Clic derecho en Servers → Register → Server

  • Nombre: Pentaho

  • Conexión: host, puerto 5432, usuario pentaho, contraseña SecurePassword123 (no guardar en producción)

Create server group dialog in pgAdmin
Crear grupo de servidores
pgAdmin server group list
Grupo de servidores
pgAdmin new server connection dialog
Detalles de conexión
triangle-exclamation
pgAdmin 4 main UI window
Interfaz de pgAdmin 4
10

Validar el entorno

  1. Comprobaciones rápidas para confirmar que todo está listo para el siguiente paso.

# Java
java -version
[ "$PENTAHO_JAVA_HOME" = "/usr/lib/jvm/java-21-openjdk-amd64" ] && echo OK || echo "Verifique PENTAHO_JAVA_HOME"

# PostgreSQL
sudo -u postgres psql -c "SELECT version();"
sudo systemctl status postgresql --no-pager | sed -n '1,5p'
Validar el servicio PostgreSQL 17 ..

Última actualización

¿Te fue útil?