Instalación y configuración > Instalación de ThingWorx > Installation de RHEL > PostgreSQL > Instalación y configuración de PostgreSQL (RHEL)
Instalación y configuración de PostgreSQL (RHEL)
Las instrucciones que se proporcionan a continuación están pensadas para el administrador de PostgreSQL (no para los servidores host de la base de datos). Si se incluye la capa de alta disponibilidad en la implementación, consulte la sección Alta disponibilidad de ThingWorx de este centro de ayuda .
Instalación de PostgreSQL y creación de un rol de usuario nuevo
* 
En estos pasos se presupone una versión de RHEL con una GUI (X11) y una cuenta activa con acceso a los almacenes de software RHEL. Si se trabaja sin una GUI, omita la instalación de PgAdmin y consulte este artículo de soporte para obtener instrucciones alternativas. Si el usuario no tiene acceso a los orígenes de software RHEL oficiales, puede configurar un almacén de código abierto gratuito desde el equipo EPEL. (PTC no proporciona ni controla este sitio).
1. Consulte la sección Requisitos del sistema ThingWorx de este centro de ayuda para obtener información sobre las versiones de PostgreSQL soportadas.
* 
En los pasos de este procedimiento se utiliza PostgreSQL versión x.x, donde x.x es la versión soportada.
2. Añada el almacén de PostgreSQL a Yum e instálelo.
3. Instale PgAdmin, la herramienta de administración de PostgreSQL:
$ sudo yum install pgadmin4
* 
Para instalar PgAdmin a través de la línea de comandos, consulte https://wiki.postgresql.org/wiki/Manual_Setup_at_the_Command_Line.
4. Inicialice e inicie la base de datos:
$ sudo /usr/pgsql-x.x/bin/postgresqlx.x-setup initdb
Configure el servicio PostgreSQL para que se inicie en el arranque:
$ sudo chkconfig postgresql-x.x on
$ sudo service postgresql-x.x start
5. Configure la contraseña del usuario PostgreSQL:
$ sudo passwd postgres
6. Introduzca la contraseña del usuario PostgreSQL. Esta contraseña se utilizará en pasos posteriores.
* 
La contraseña, que no se debe poder averiguar fácilmente ni ser una contraseña común conocida, debe tener al menos 14 caracteres e incluir una combinación de mayúsculas y minúsculas, números y caracteres especiales.
7. Configure el usuario PostgreSQL en psql. El valor de <unique PostgreSQL password> es el que se ha introducido previamente.
* 
Si la base de datos PostgreSQL no se encuentra en el mismo servidor que ThingWorx, consulte la sección Configuración de una base de datos PostgreSQL ubicada en un servidor independiente de ThingWorx y omita los dos pasos siguientes. Si bien es opcional disponer de la base de datos PostgreSQL en el mismo servidor que ThingWorx en un entorno de desarrollo, dicha base de datos debe ser independiente en todos los entornos de producción.
$ sudo -u postgres psql -c "ALTER ROLE postgres WITH password '<unique PostgreSQL password>'"
8. Si se utiliza la línea de comandos, abra los siguientes ficheros y edítelos tal como se indica. Si se utiliza PgAdmin, omita este paso.
/var/lib/pgsql/x.x/data/postgresql.conf/postgresql.conf: quite la marca de comentario de listen addresses y port. La configuración por defecto de localhost y 5432 suele ser suficiente.
/var/lib/pgsql/x.x/data/pg_hba.conf: defina Method en md5
9. Configure PgAdmin. Si no se utiliza PgAdmin, omita este paso.
$ sudo pgadmin3
En la GUI de PgAdmin, pulse en file->Open postgresql.conf.
Abra /var/lib/pgsql/x.x/data/postgresql.conf
Coloque una marca junto a listen addresses y port. La configuración por defecto de localhost y 5432 suele ser suficiente.
Guarde y cierre.
Pulse en file->Open pg_hba.conf.
Abra /var/lib/pgsql/x.x/data/pg_hba.conf
Pulse dos veces en la línea 'all' de la base de datos con la dirección 127.0.0.1/32.
Defina el método en md5.
Pulse en Aceptar
Guarde y salga.
Cierre PgAdmin.
10. Reinicie el servicio PostgreSQL:
$ sudo service postgresql-x.x restart
11. Configure PgAdmin para conectarse a la base de datos:
$ sudo pgadmin3
12. Pulse en el icono de enchufe para añadir una conexión a un servidor en la esquina superior izquierda y rellene lo siguiente:
Name: PostgreSQL x.x
Host: localhost
Port: 5432
Service: <blank>
Maintenance DB: postgres
Username: postgres
Password: <unique PostgreSQL password as set previously>
Store password: Checked
Group: Servers
13. Pulse en Aceptar.
14. Cree un rol de usuario nuevo:
* 
Si no se utiliza PgAdmin, se puede utilizar el siguiente comando:
sudo -u postgres psql -c "CREATE USER twadmin WITH PASSWORD '<unique postgres password>';"
a. Pulse con el botón derecho en PostgreSQLx.x (localhost:5432).
b. Seleccione NewObject>NewLogin Role. En la ficha Properties, escriba un nombre en el campo de nombre Role.
c. En la ficha Definition, en el campo Password, introduzca una contraseña única (se solicitará que se escriba dos veces).
* 
La contraseña, que no se debe poder averiguar fácilmente ni ser una contraseña común conocida, debe tener al menos 14 caracteres e incluir una combinación de mayúsculas y minúsculas, números y caracteres especiales. Será necesario volver a introducir esta contraseña en pasos posteriores.
d. Pulse en Aceptar.
Configuración de una base de datos PostgreSQL ubicada en un servidor independiente de ThingWorx
* 
Esta sección es opcional para los entornos de desarrollo, pero se debe implementar en todos los entornos de producción.
Por defecto, el servidor de PostgreSQL se instala en un estado bloqueado. El servidor solo esperará conexiones desde el ordenador local. Para que ThingWorx se comunique con el servidor de PostgreSQL, es necesario realizar algunos cambios de configuración a fin de que PostgreSQL espere conexiones de otros usuarios (usuario ThingWorx, el valor por defecto es twadmin) u otros ordenadores (ThingWorx instalado en un servidor separado).
Para estos pasos, será necesario saber dónde reside el directorio de datos de PostgreSQL. En Linux, la ubicación de la carpeta de datos, o incluso de los ficheros de configuración, puede cambiar en función del método de instalación y distribución (descarga o instalación mediante el administrador de paquetes). En estas instrucciones, se hará referencia a esta ubicación como <PGDATA>.
Modifique el fichero pg_hba.conf y añada las siguientes líneas en función de la configuración deseada:
Si desea permitir que todas las direcciones IPv4 se conecten:
host all all 0.0.0.0/0 md5
Si desea permitir que solo se conecte una dirección IPv4 específica (reemplace <ipAddress> por la dirección IP del ordenador que realiza la conexión):
host all all <ipAddress>/32 md5
Si desea permitir que todas las direcciones IPv6 se conecten:
host all all ::0/0 md5
Si desea permitir que solo se conecte una dirección IPv6 específica (reemplace <ipv6Address> por la dirección adecuada):
host all all <ipv6Address>/128 md5
Es posible realizar cualquier otra combinación utilizando líneas de asignación adicionales (IP individuales o rangos) o máscaras de subred adecuadas para los ordenadores que requieran acceso a la base de datos PostgreSQL.
Cualquier cambio en este fichero requiere un reinicio del servicio de la base de datos.
* 
Para obtener más información sobre la configuración del fichero pg_hba.conf, consulte la documentación de PostgreSQL.
Activación de PostgreSQL para que espere todas las conexiones
En las instalaciones Linux de PostgreSQL, se requiere un paso de configuración adicional en el que se configura el servidor de PostgreSQL para que espere conexiones.
1. En el fichero postgresql.conf, quite la marca de comentario y actualice la línea listen_addresses:
Uncomment the listen_addresses line and change localhost to '*'
# Listen on all addresses. Requires restart.
listen_addresses = '*'
2. Reinicie el servidor de PostgreSQL.
Configuración y ejecución del script de base de datos PostgreSQL
Para configurar la base de datos PostgreSQL y el espacio de tabla, se debe configurar y ejecutar el script thingworxPostgresDBSetup.
1. Cree la carpeta ThingworxPostgresqlStorage en la unidad en la que se encuentra la carpeta ThingworxStorage (en el directorio raíz por defecto). Debe tenerse en cuenta lo siguiente:
Si se crea la carpeta con el comando -d<databasename>, no es necesario utilizar el usuario PostgreSQL.
Se debe especificar la opción -l en una ruta que exista. Por ejemplo, -l D:\ThingworxPostgresqlStorage. El script no crea automáticamente la carpeta.
La carpeta debe tener derechos adecuados de acceso y de propiedad. Debe ser propiedad del mismo usuario que ejecuta el servicio PostgreSQL y se debe haber asignado el control total a dicho usuario, que suele ser NETWORK_SERVICE, pero puede variar según el entorno.

$ sudo mkdir /ThingworxPostgresqlStorage
$ sudo chown postgres:postgres /ThingworxPostgresqlStorage
$ sudo chmod 755 /ThingworxPostgresqlStorage
2. Obtenga el script thingworxPostgresDBSetup del paquete de descarga de software de ThingWorx. El script se encuentra en la carpeta install. Las descargas de ThingWorx están disponibles en Descargas de software de PTC.
3. Si es necesario, configure el script. Consulte las opciones en la siguiente tabla.
* 
En este ejemplo se utiliza la descarga x.x.x del sitio de PTC. Cambie el nombre de fichero a la versión que se utilice.

$ sudo unzip MED-61111-CD-08x_ThingWorx-Platform-Postgres-x-x-x.zip
$ cd install
Opciones del script thingworxPostgresDBSetup
Opción
Parámetro
Por defecto
Descripción
Ejemplo
t o -T
tablespace
thingworx
Nombre del espacio de tabla
-t thingworx
-p o -P
port
5432
Número de puerto de PostgreSQL
-p 5432
-d o -D
database
thingworx
Nombre de la base de datos PostgreSQL que se va a crear
-d thingworx
-h o -H
host
localhost
Nombre del Host.
-h localhost
-l o -L
tablespace_location
/ThingworxPostgresqlStorage
Obligatorio. Ubicación en el sistema de ficheros donde se almacenan los ficheros que representan los objetos de base de datos.
-l o -L
-a o -A
adminusername
postgres
Nombre del administrador
-a postgres
-u o -U
thingworxusername
twadmin
Nombre de usuario que tiene permisos para escribir en la base de datos.
-u twadmin
4. Para configurar la base de datos y el espacio de tabla con una instalación de PostgreSQL por defecto que tiene una base de datos PostgreSQL y un nombre de usuario PostgreSQL, introduzca:
$ sudo sh thingworxPostgresDBSetup.sh -a postgres -u <user role name> -l /ThingworxPostgresqlStorage
5. Ejecute el script.
Configuración y ejecución del script de esquema de proveedor de datos y modelos
Para configurar el esquema de proveedor de datos y modelos PostgreSQL, se debe configurar y ejecutar el script thingworxPostgresSchemaSetup. De este modo, se configurará el esquema público en la base de datos de la instancia de PostgreSQL instalada en el host local.
1. Obtenga y abra el fichero thingworxPostgresSchemaSetup del paquete de descarga de software de ThingWorx. El script se encuentra en la carpeta install.
2. Si es necesario, configure el script. Consulte las opciones en la siguiente tabla.
* 
El script se puede ejecutar con los parámetros por defecto como:
$ sudo sh thingworxPostgresSchemaSetup.sh
Opciones del script thingworxPostgresSchemaSetup
Opción
Parámetro
Por defecto
Descripción
Ejemplo
-h o -H
host
localhost
IP o nombre de host de la base de datos.
-h localhost
-p o -P
port
5432
Número de puerto de PostgreSQL.
-p 5432
-d o -D
database
thingworx
Nombre de la base de datos que se va a utilizar.
-d thingworx
-s o -S
schema
public
Nombre del esquema que se va a utilizar.
-s mySchema
-u o -U
username
twadmin
Nombre de usuario que va a actualizar el esquema de base de datos.
-u twadmin
-o u -O
opción
all
Existen tres opciones:
all: permite configurar los esquemas de proveedor de modelos y datos en la base de datos especificada.
model: permite configurar el esquema de proveedor de modelos en la base de datos especificada.
data: permite configurar el esquema de proveedor de datos en la base de datos especificada.
-o data
3. Ejecute el script.
* 
El nombre de usuario debe coincidir con el nombre de usuario PostgreSQL que se ha creado anteriormente.
Configuración de platform-settings.json
1. Cree la carpeta ThingworxPlatform en la raíz de la unidad donde se ha instalado Tomcat o como una variable del sistema. Debe tenerse en cuenta lo siguiente:
Para especificar la ubicación donde ThingWorx almacena la configuración, la variable de entorno THINGWORX_PLATFORM_SETTINGS se puede definir en la ubicación deseada. Asegúrese de que la carpeta a la que THINGWORX_PLATFORM_SETTINGS hace referencia exista y que el usuario de Tomcat pueda escribir en ella. Esta variable de entorno se debe configurar como parte de las variables de entorno del sistema.
El servidor de ThingWorx no se iniciará si no tiene permiso de lectura y escritura para esta carpeta.
2. Coloque el fichero platform-settings.json en la carpeta ThingworxPlatform. Este fichero está disponible en la descarga de software.

$ sudo cp platform-settings.json /ThingworxPlatform/
3. Abra platform-settings.json y configure según sea necesario. Consulte las opciones de configuración en Detalles de configuración de platform-settings.json.
* 
Si el servidor de PostgreSQL no es el mismo que el servidor de ThingWorx y tiene problemas con la instalación de ThingWorx, revise los registros de Tomcat y el fichero platform-settings.json. En la instalación por defecto se supone que ambos servidores se encuentran en el mismo ordenador.
Codificación de la contraseña de PostgreSQL
Cifre la contraseña siguiendo los pasos descritos en el tema Cifrado de contraseñas.
(Opcional) Instalación del paquete de cliente de PostgreSQL y el usuario PostgreSQL
Para emitir comandos de PostgreSQL desde el ordenador del cliente al servidor de PostgreSQL, se debe hacer desde un usuario PostgreSQL. El paquete postgresql-client-x.x se puede instalar en el ordenador cliente. Consulte la documentación de las distribuciones sobre cómo instalarlo. En este paquete se proporcionan algunas herramientas de administración, como psql.
Instalación de ThingWorx