# Instalar Pentaho Server

{% hint style="info" %}

#### **Servidor Pentaho**

Esta sección le guía a través de la instalación e inicio del Servidor Pentaho en Ubuntu.

Usted va a:

* Crear directorios de instalación
* Preparar las bases de datos del Repositorio Pentaho
* Configurar conexiones JDBC/JNDI
* Iniciar el Servidor Pentaho (y opcionalmente configurar systemd)
* Configurar el Gestor de Licencias
  {% endhint %}

{% hint style="warning" %}
Línea base probada: Ubuntu 24.04 LTS con Java 21 (OpenJDK) y PostgreSQL 17.

Asegúrese de haber completado [Preparar Entorno](/pentaho-11-installation-en/pentaho-11-installation-es/instalacion/archive-installation/prepare-environment.md) primero.&#x20;

Para detalles de compatibilidad, consulte [Referencia de Componentes](https://docs.pentaho.com/install/components-reference).
{% endhint %}

{% hint style="info" %}
**Requisitos previos**

* Servidor Ubuntu 24.04 LTS
* Java 21 instalado y `PENTAHO_JAVA_HOME` establecido
* PostgreSQL 17 instalado y en ejecución
* Un usuario `pentaho` que no sea root con sudo
* `paquete` unzip
* Archivos ZIP del archivo y controladores JDBC descargados
  {% endhint %}

<figure><img src="/files/ab3fa0c2e7d96f032d27bed03aa0f7a19245a5f6" alt="Pentaho Pro Suite overview image"><figcaption><p>Pentaho Pro Suite</p></figcaption></figure>

{% tabs %}
{% tab title="1. Servidor Pentaho" %}
{% hint style="info" %}

#### **Directorios del Servidor Pentaho**

El Servidor Pentaho es una aplicación web que se ejecuta en un contenedor de servlets Apache Tomcat.
{% endhint %}

1. Crear directorios base bajo `/opt/pentaho`.

```bash
cd
sudo mkdir -p /opt/pentaho/{server,software}
```

```
/opt/pentaho
├── server      # Runtime del servidor desempaquetado (tomcat, pentaho-solutions, scripts)
└── software    # Instaladores, ZIPs, controladores (área de preparación)
```

2. Crear subdirectorios en `/opt/pentaho/software`.

```bash
cd /opt/pentaho/software
sudo mkdir -p {db-drivers,docker,ee-client,ee-plugins,ops-mart,sdk,server,shims}
```

```
db-drivers   - controladores JDBC
docker       - configuración on-prem de Pentaho y dockerfiles
ee-client    - complementos cliente EE de Pentaho
ee-plugins   - complementos de servidor EE de Pentaho
ops-mart     - scripts de Operations Mart
sdk          - kit del SDK de Pentaho
server       - servidor Pentaho
shims        - colecciones de shims de Hadoop
```

***

{% hint style="info" %}
**Desempaquetar el Paquete del Servidor Pentaho (ZIP)**

Use `paquete` para extraer el ZIP del servidor en el directorio runtime. Esto evita requerir el JDK completo (el JRE no incluye la herramienta `jar` ).

* `pentaho-server-ee-11.0.0.0-2xx.zip` - Servidor Pentaho (Archivo - incluye Tomcat 10)
  {% endhint %}

1. Asegúrese de que `paquete` esté disponible y copie los ZIPs del servidor en el área de preparación.

```bash
cd
sudo apt update -y && sudo apt install -y unzip
sudo cp ~/Downloads/'Archive Build (Suggested Installation Method)'/* /opt/pentaho/software/server
```

2. Extraer el ZIP del Servidor Pentaho en `$PENTAHO_BASE/server`.

```bash
cd
cd "$PENTAHO_BASE/server"

# Reemplace <version> con el nombre de archivo exacto que descargó
sudo unzip /opt/pentaho/software/server/pentaho-server-ee-11.0.0.0-2xx.zip
```

<figure><img src="/files/2c0dae336992a9297a7d1beb88c54a8e8188fffa" alt=""><figcaption><p>Descomprimir Servidor Pentaho</p></figcaption></figure>

3. Hacer todos los `.sh` archivos ejecutables.

```bash
cd
cd "$PENTAHO_BASE/server"
sudo find . -iname "*.sh" -exec chmod +x {} \;
```

4. Establecer la propiedad y permisos sensatos para ejecutar 'pentaho' como un usuario que no sea root.

```bash
cd
sudo chown -R pentaho:pentaho /opt/pentaho
sudo find /opt/pentaho -type d -exec chmod 755 {} \;
sudo find /opt/pentaho -type f -exec chmod 644 {} \;
sudo find /opt/pentaho -name "*.sh" -exec chmod 755 {} \;
```

{% hint style="info" %}
755 significa que usted puede hacer cualquier cosa con el archivo o directorio, y otros usuarios pueden leer y ejecutar pero no modificarlo. Adecuado para programas y directorios que desea hacer públicos.&#x20;

644 significa que usted puede leer y escribir el archivo o directorio y otros usuarios solo pueden leerlo.
{% endhint %}

5. Verifique la estructura de directorios del servidor.

{% hint style="info" %}
/opt/pentaho/

```
  server/
    pentaho-server/
      pentaho-solutions/
        system/
```

Los complementos del servidor se instalan en la `pentaho-solutions/system` carpeta.
{% endhint %}
{% endtab %}

{% tab title="2. Repositorio Pentaho" %}
{% hint style="info" %}

#### **Componentes del Repositorio Pentaho**

El Repositorio Pentaho (en PostgreSQL por defecto) consiste en:

* Jackrabbit: repositorio de soluciones, seguridad y metadatos de contenido
* Quartz: datos del programador
* Hibernate: registro de auditoría
* Pentaho Operations Mart: informes de uso y rendimiento
  {% endhint %}

{% stepper %}
{% step %}
**Revisar contraseñas por defecto en scripts SQL**

1. Inspeccione los scripts de PostgreSQL incluidos con el servidor.

```bash
cd
cd "$PENTAHO_SERVER/data/postgresql"
ls -1
```

Debería ver archivos similares a:

```
alter_script_postgresql_BISERVER-13674.sql
create_jcr_postgresql.sql
create_quartz_postgresql.sql
create_repository_postgresql.sql
migrate_old_quartz_data_postgresql.sql
pentaho_logging_postgresql.sql
pentaho_mart_drop_postgresql.sql
pentaho_mart_postgresql.sql
pentaho_mart_upgrade_audit_postgresql.sql
pentaho_mart_upgrade_postgresql.sql

```

2. Abra un script para revisar usuarios/contraseñas por defecto (cambie para producción).

```bash
sed -n '1,120p' create_jcr_postgresql.sql
```

{% endstep %}

{% step %}
**Ejecutar scripts SQL para crear las bases de datos del Repositorio**

1. Confirme que PostgreSQL está en ejecución y localice los scripts.

```bash
sudo systemctl status postgresql --no-pager
cd
cd "$PENTAHO_SERVER/data/postgresql"
ls -l
```

2. Conectarse como un `pentaho` superusuario.

&#x20;      Contraseña: `SecurePassword123`

```bash
sudo -u pentaho psql -d postgres
```

3. Ejecute los comandos paso a paso - no como un único bloque de script. Proporcione contraseñas si se le solicitan - ver más abajo.

```plsql
\i create_jcr_postgresql.sql
\i create_quartz_postgresql.sql
\q salir después de Quartz y vuelva a iniciar sesión ..
asegúrese de estar en el directorio "$PENTAHO_SERVER/data/postgresql"
sudo -u pentaho psql -d postgres
\i create_repository_postgresql.sql
\i pentaho_mart_postgresql.sql
\q salir después de hibernate y vuelva a iniciar sesión ..
asegúrese de estar en el directorio "$PENTAHO_SERVER/data/postgresql"
sudo -u pentaho psql -d postgres
\i pentaho_logging_postgresql.sql
\q
```

| Usuario       | Contraseña        |
| ------------- | ----------------- |
| postgres      | SecurePassword123 |
| pentaho       | SecurePassword123 |
| jcr\_user     | password          |
| pentaho\_user | password          |
| hibuser       | password          |

4. Validación rápida (CLI) - listar bases de datos creadas y conectar - presione q para desplazarse por la lista.

```sql
\l+ jackrabbit
\l+ quartz
\l+ hibuser
\l+ opsmart
\c jackrabbit
\dt
\c quartz
\dt
```

{% hint style="warning" %}
Las tablas para Hibernate y Jackrabbit pueden crearse más tarde por el Servidor Pentaho en el primer inicio. Ver esquemas vacíos en esta etapa puede ser esperable.
{% endhint %}

5. Opcional: verificar en pgAdmin (GUI).

<figure><img src="/files/0c8622bd49843ec50da6f28066cbd1aec019d0d0" alt=""><figcaption><p>Bases de datos de Pentaho</p></figcaption></figure>
{% endstep %}

{% step %}
**Configurar Pentaho para usar PostgreSQL**

{% hint style="info" %}
PostgreSQL es el predeterminado. Si mantuvo las contraseñas y el puerto por defecto (`5432`), solo verifique las siguientes configuraciones; de lo contrario, ajuste host/puerto/usuario/contraseña para que coincidan con su entorno.
{% endhint %}

***

{% hint style="info" %}
Quartz - establecer el delegado de PostgreSQL y la fuente de datos JNDI.
{% endhint %}

1. Abra la configuración de Quartz.

```bash
cd "$PENTAHO_SERVER/pentaho-solutions/system/scheduler-plugin/quartz"
sudo nano -c quartz.properties
```

2. Verifique estos valores (los números de línea pueden diferir):

{% code title="quartz.properties — entradas requeridas" %}

```
org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.PostgreSQLDelegate
org.quartz.dataSource.myDS.jndiURL=Quartz
```

{% endcode %}

***

{% hint style="info" %}
Hibernate — apuntar al archivo de configuración de PostgreSQL.
{% endhint %}

1. Abra la configuración de Hibernate.

```bash
cd "$PENTAHO_SERVER/pentaho-solutions/system/hibernate"
sudo nano -c hibernate-settings.xml
```

2. Confirme la referencia al archivo de configuración:

{% code title="hibernate-settings.xml" %}

```
<config-file>system/hibernate/postgresql.hibernate.cfg.xml</config-file>
```

{% endcode %}

3. Opcionalmente revise `postgresql.hibernate.cfg.xml` para el nombre de la fuente de datos y el dialecto.

```bash
sudo nano -c postgresql.hibernate.cfg.xml
```

Asegúrese:

{% code title="postgresql.hibernate.cfg.xml — propiedades clave" %}

```
<property name="connection.driver_class">org.postgresql.Driver</property>
<property name="dialect">org.hibernate.dialect.PostgreSQLDialect</property>
<property name="hibernate.connection.datasource">java:comp/env/jdbc/Hibernate</property>
```

{% endcode %}

***

{% hint style="info" %}
Jackrabbit — verifique el almacenamiento en PostgreSQL en `repository.xml`.
{% endhint %}

1. Abra la configuración de Jackrabbit.

```bash
cd "$PENTAHO_SERVER/pentaho-solutions/system/jackrabbit"
sudo nano -c repository.xml
```

2. Compruebe que las secciones de PostgreSQL estén activas (otras comentadas), por ejemplo:

{% hint style="info" %}

* Esquema de sistema de archivos: `postgresql`
* Datastore `databaseType="postgresql"`
* Esquema de PersistenceManager: `postgresql`
* Journal de la Base de Datos: `postgresql`
  {% endhint %}

{% hint style="warning" %}
Verifique cruzando los nombres JNDI y puertos entre Quartz, Hibernate, Jackrabbit y Tomcat `context.xml` para asegurar consistencia (mismo host, puerto 5432 a menos que se haya cambiado, y nombres de recursos JNDI coincidentes).

Nombres JNDI esperados:

* Quartz: `Quartz`
* Hibernate: `java:comp/env/jdbc/Hibernate`
* Jackrabbit: como se referencia en `repository.xml`
  {% endhint %}
  {% endstep %}
  {% endstepper %}
  {% endtab %}

{% tab title="3. Tomcat" %}
{% hint style="info" %}

#### **Tomcat**

Después de configurar el Repositorio, configure el servidor de aplicaciones web (Tomcat 10) para conectarse al Repositorio usando JDBC/JNDI.
{% endhint %}

{% tabs %}
{% tab title="1. Controladores de Base de Datos" %}
{% hint style="warning" %}

#### **Controladores JDBC**

Para conectar a bases de datos (incluido el Repositorio), instale los controladores JDBC apropiados. Debido a restricciones de licencia, algunos controladores deben descargarse manualmente.
{% endhint %}

{% embed url="<https://docs.pentaho.com/install/jdbc-drivers-reference>" %}

{% embed url="<https://jdbc.postgresql.org/download/postgresql-42.7.8.jar>" %}

1. Verifique que el controlador JDBC de PostgreSQL esté presente en lib de Tomcat (requerido para el Repositorio):

```bash
ls -1 "$TOMCAT_HOME/lib" | grep -i postgresql || echo "Controlador PostgreSQL no encontrado"
```

{% hint style="info" %}
Si no se encuentra, descargue el controlador JDBC de PostgreSQL (por ejemplo, `postgresql-42.7.8.jar`) y distribúyalo usando el script auxiliar:
{% endhint %}

```bash
sudo cp ~/Downloads/'Database Drivers'/postgresql-*.jar /opt/pentaho/server/jdbc-distribution
cd /opt/pentaho/server/jdbc-distribution
sudo ./distribute-files.sh "$TOMCAT_HOME/lib"
```

2. Copie cualquier controlador JDBC adicional a la carpeta de preparación y distribúyalos.

```bash
sudo cp ~/Downloads/'Database Drivers'/* /opt/pentaho/software/db-drivers
cd /opt/pentaho/software/db-drivers
sudo cp mysql-connector-j-9.0.0.jar /opt/pentaho/server/jdbc-distribution
```

3. Distribuya los controladores a Tomcat.

```bash
cd /opt/pentaho/server/jdbc-distribution
sudo ./distribute-files.sh "$TOMCAT_HOME/lib"
```

4. Verifique que los JARs estén presentes en lib de Tomcat.

```bash
ls -1 "$TOMCAT_HOME/lib" | grep -Ei 'mysql|postgresql' || echo "No encontrado"
```

{% hint style="danger" %}
Debe reiniciar el Servidor Pentaho (y las herramientas cliente, si se están ejecutando) para cargar nuevos controladores JDBC. No se requiere un reinicio completo del sistema.
{% endhint %}
{% endtab %}

{% tab title="2. context.xml" %}
{% hint style="info" %}

#### **context.xml**

La información de conexión a la base de datos para recursos JNDI usados por Pentaho se almacena en `context.xml`.
{% endhint %}

1. Abra el archivo y revise los recursos JNDI y las credenciales.

```bash
cd "$TOMCAT_HOME/webapps/pentaho/META-INF"
sudo nano -c context.xml
```

{% hint style="warning" %}
En producción, verifique que el nombre de usuario, la contraseña, la clase del controlador, el host/IP y el puerto coincidan con su entorno. Asegúrese de que los nombres JNDI se alineen con las configuraciones de Quartz, Hibernate y Jackrabbit.
{% endhint %}
{% endtab %}
{% endtabs %}
{% endtab %}

{% tab title="4. Iniciar Servidor" %}
{% hint style="info" %}

#### **Iniciar Servidor Pentaho**

Ejecute el servidor como el usuario `pentaho` para evitar problemas de permisos.
{% endhint %}

1. Inicie el servidor.

```bash
cd
cd "$PENTAHO_SERVER"
./start-pentaho.sh
```

2. Observe (tail) el registro de Tomcat (patrón robusto).

```bash
tail -f "$TOMCAT_HOME/logs/catalina."*.log
```

Los mensajes esperados incluyen:

```
... Starting ProtocolHandler ["http-nio-8080"]
... Server startup in [xxxxx] milliseconds
```

***

{% hint style="info" %}
**Consola de Usuario de Pentaho (PUC)**

La Consola de Usuario de Pentaho (PUC) es la interfaz web para crear y ver contenido.
{% endhint %}

{% embed url="<http://localhost:8080/pentaho>" %}
Enlace al Servidor Pentaho
{% endembed %}

Credenciales por defecto (cambie inmediatamente después del primer inicio de sesión):

```
Nombre de usuario: admin
Contraseña: password
```

<figure><img src="/files/913d437c4c7b02ebc60c36a26bf2caadab21f51a" alt=""><figcaption><p>Consola de Usuario de Pentaho</p></figcaption></figure>

3. También tiene la opción de cambiar a la nueva pantalla de inicio de sesión.

{% embed url="<http://localhost:8080/pentaho/content/login/web/index.html>" %}

<figure><img src="/files/c0541bb5cc195f3f3ea45936afd7cf74a7143ed5" alt=""><figcaption><p>NUEVO - Consola de Usuario de Pentaho</p></figcaption></figure>

{% hint style="info" %}
Si ya ha introducido sus detalles de licencia, será redirigido a la nueva Consola de Usuario.
{% endhint %}

***

{% hint style="success" %}
**Validaciones rápidas**
{% endhint %}

* Compruebe que HTTP responde:

```bash
curl -I http://localhost:8080/pentaho/ | head -n 1
```

* Opcional (acceso remoto): abra el firewall y pruebe desde una máquina cliente (ajuste según la política de su red):

```bash
sudo ufw allow 8080/tcp || true
```

***

<details>

<summary>Validar el Repositorio después del primer inicio (haga clic para expandir)</summary>

```sql
-- Ejemplo Quartz
\c quartz
SELECT COUNT(*) FROM qrtz_scheduler_state;

-- Ejemplo Hibernate (espere muchas tablas después del primer inicio)
\c hibuser
\dt
```

</details>

***

{% hint style="info" %}
**Systemd (opcional)**

Cree un servicio systemd para gestionar Pentaho en el arranque y en caso de fallo.
{% endhint %}

1. Guarde el archivo de unidad como `/etc/systemd/system/pentaho-server.service`.

{% code title="/etc/systemd/system/pentaho-server.service" %}

```ini
[Unit]
Description=Servidor Pentaho
After=network-online.target
Wants=network-online.target

[Service]
Type=forking
User=pentaho
Group=pentaho
EnvironmentFile=-/etc/environment
# Alternativa opcional si no usa PENTAHO_JAVA_HOME en /etc/environment
# Environment="JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64"
WorkingDirectory=/opt/pentaho/server/pentaho-server
ExecStart=/opt/pentaho/server/pentaho-server/start-pentaho.sh
ExecStop=/opt/pentaho/server/pentaho-server/stop-pentaho.sh
TimeoutSec=500
Restart=on-failure
RestartSec=5
SuccessExitStatus=5 6
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
```

{% endcode %}

2. Recargue e inicie.

```bash
sudo systemctl daemon-reload
sudo systemctl start pentaho-server
sudo systemctl enable pentaho-server
```

Gestione el servicio:

```bash
sudo systemctl status pentaho-server
sudo systemctl restart pentaho-server
sudo systemctl stop pentaho-server
```

***

<details>

<summary>Resolución de problemas (haga clic para expandir)</summary>

* HTTP 404 en `/pentaho` después del inicio: confirme `"$TOMCAT_HOME/webapps/pentaho"` existe, revise `catalina.*.log` para errores de despliegue, y verifique los permisos de archivos bajo `$PENTAHO_SERVER`.
* Puerto 8080 ya en uso: cambie el puerto de Tomcat en `server.xml` o detenga el servicio en conflicto.
* Controlador JDBC no encontrado: verifique que los JARs del controlador (p. ej., `postgresql-*.jar`, `mysql-*.jar`) existan en `"$TOMCAT_HOME/lib"`.
* La autenticación a PostgreSQL falla: prefiera `scram-sha-256`; revise `pg_hba.conf`, reinicie PostgreSQL y pruebe `psql -h 127.0.0.1` con el usuario objetivo.
* Problemas de esquema de Jackrabbit: vuelva a comprobar que `repository.xml` las secciones están configuradas como `postgresql`.
* Errores de activación de licencia: consulte los registros de Tomcat en `tomcat/logs/` para `license`/`elm` mensajes.

</details>

***

{% endtab %}

{% tab title="5. Gestor de Licencias" %}
{% hint style="info" %}

#### **Gestor de Licencias**

Pentaho Pro Suite 11.x utiliza un Gestor de Licencias (en la nube o local) para gestionar derechos de PDI y BA y verificar complementos EE.
{% endhint %}

<figure><img src="/files/4542e7ac8ed5f0d0034c10230f5fc5d9560cc465" alt=""><figcaption><p>Licencias</p></figcaption></figure>

{% tabs %}
{% tab title="Gestor de Licencias" %}
{% hint style="info" %}

#### **Licencia de prueba**

Se incluye una licencia de prueba de 30 días si ha descargado desde:  [Prueba de Pentaho de 30 días](https://pentaho.com/download/)

Si ha descargado los binarios GA desde: [Portal de Clientes de Pentaho](https://support.pentaho.com/hc/en-us), entonces necesitará un ID de Activación o su URL de Licenciamiento.

Si ha instalado en un entorno desconectado (air-gapped), necesitará solicitar una licencia offline.
{% endhint %}

1. Abra Servidor Pentaho > Administración > Licencias para abrir el diálogo Agregar Licencia.
2. Haga clic en el signo +.

<figure><img src="/files/9a2c18adb17ecd88e4e14e56b9d97cca199b85a4" alt=""><figcaption><p>Agregar licencia</p></figcaption></figure>

5. Ingrese el código de Activación o su URL de licenciamiento:

<figure><img src="/files/97aa5b03c765b07462935747ec0382696e89eb37" alt="Add License dialog"><figcaption><p>Gestor de Licencias</p></figcaption></figure>

{% hint style="warning" %}
**Licencias empresariales**

Si actualiza desde 9.x o anterior, instale la nueva versión del producto antes de activar las licencias. No inicie el servidor antes de actualizar las licencias.
{% endhint %}
{% endtab %}

{% tab title="Establecer Ruta de Licencia en ENV" %}
{% hint style="info" %}
**Establecer la variable de entorno de la ruta de licencia**

Crear una `PENTAHO_LICENSE_INFORMATION_PATH` variable de entorno para que el Servidor Pentaho encuentre consistentemente su archivo de licencia.
{% endhint %}

1. Asegúrese de que el directorio destino exista y esté protegido.

```bash
sudo -u pentaho mkdir -p /home/pentaho/.pentaho
sudo chown -R pentaho:pentaho /home/pentaho/.pentaho
chmod 700 /home/pentaho/.pentaho
```

2. Edite `/etc/environment` y agregue la línea abajo (sin `export`).

```bash
sudo nano /etc/environment
```

Añada (o actualice) lo siguiente:

```
PENTAHO_LICENSE_INFORMATION_PATH=/home/pentaho/.pentaho/.elmLicInfo.plt
```

3. Cierre sesión/inicie sesión o recargue el entorno y verifique.

```bash
source /etc/environment
env | grep PENTAHO_LICENSE_INFORMATION_PATH
```

La `PENTAHO_LICENSE_INFORMATION_PATH` variable ahora está establecida.
{% endtab %}
{% endtabs %}
{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://academy.pentaho.com/pentaho-11-installation-en/pentaho-11-installation-es/instalacion/archive-installation/install-pentaho-server.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
