Instalación y actualización > Instalación de ThingWorx > Instalación manual > Apéndices de instalación > Instalación y configuración de PostgreSQL para Ubuntu
Instalación y configuración de PostgreSQL para Ubuntu
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 para 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
1. Consulte la sección Requisitos del sistema de ThingWorx 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. Descargue e instale la versión correcta de PostgreSQL.
Se puede añadir el almacén de PostgreSQL que permite instalar la aplicación directamente desde el administrador de paquetes.
* 
Para obtener el nombre de la versión Ubuntu utilice el siguiente comando:
$ lsb_release -sc

$ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ <YOUR_UBUNTU_VERSION_HERE>-pgdg main" '> /etc/apt/sources.list.d/pgdg.list
$ sudo wget -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
$ sudo apt-get update
$ sudo apt-get install postgresql-x.x -y
3. Instale PgAdmin, la herramienta de administración de PostgreSQL:
$ sudo apt-get install pgadmin4 -y
* 
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. Configure la contraseña del usuario PostgreSQL:
$ sudo service postgresql restart
$ sudo -u postgres psql -c "ALTER ROLE postgres WITH password '<unique PostgreSQL password>'"
5. 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.
6. Configure pgAdmin:
$ sudo pgadmin4
En pgAdmin, pulse en file->Open postgresql.conf
Abra /etc/postgresql/x.x/main/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 /etc/postgresql/x.x/main/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.
7. Reinicie el servicio PostgreSQL:
$ sudo service postgresql restart
8. Configure PgAdmin para conectarse a la base de datos:
$ sudo pgadmin4
9. 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
10. Pulse en Aceptar.
11. Cree un rol de usuario nuevo:
* 
Si no se utiliza PgAdmin, se puede utilizar el siguiente comando:
sudo psql -U postgres -c "CREATE USER twadmin WITH PASSWORD '<unique postgres password>';"
b. Seleccione Create - Login/Group Role. En la ficha General, en el campo Name, introduzca el <nombre de rol de usuario PostgreSQL> para la administración de PostgreSQL.
c. En la ficha Privileges, seleccione Yes para Can login?.
d. En la ficha Definition, en el campo Password, introduzca una contraseña única y segura para PostgreSQL.
e. Pulse en Aceptar. Se debe anotar el nombre de rol de usuario creado en este paso para su uso posterior.
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>.
* 
En Ubuntu, cuando se instala a través de apt-get, los ficheros de configuración se encuentran en /etc/postgresql/x.x/main/.
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.sh.
* 
Después de ThingWorx 9.3.1, la creación de la carpeta ThingWorxPostgresqlStorage o cualquier paso relacionado con el parámetro -l ya no son necesarios y los datos de ThingWorx se almacenarán en la ubicación por defecto de Postgresql.
1. Obtenga el script thingworxPostgresDBSetup.sh del paquete de software descargado de ThingWorx en la carpeta install. Las descargas de ThingWorx están disponibles en Descargas de software de PTC.
2. Si es necesario, configure el script. Consulte las opciones en la siguiente tabla.
* 
En este ejemplo se utiliza la descarga 9.x.x del sitio de PTC. Si fuera necesario, cambie el nombre de fichero a la versión que se utilice.

$ sudo unzip MED-61111-CD-085_F000_ThingWorx-Platform-Postgres-9-x-x.zip
$ cd install
3. 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
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
-l o -L
tablespace_location
/ThingworxPostgresqlStorage
Obligatorio en ThingWorx 9.3.0 y versiones anteriores. Ubicación en el sistema de ficheros donde se almacenan los ficheros que representan los objetos de base de datos. El usuario debe crear manualmente esta carpeta con permisos antes de ejecutar el script y, a continuación, especificar la ruta, por ejemplo, -l /ThingworxPostgresqlStorage
* 
La carpeta debe tener derechos adecuados de acceso y de propiedad. Debe pertenecer al mismo usuario que ejecuta el servicio PostgreSQL y tiene asignado el control total.
-l o -L
-h o -H
host
localhost
Nombre del Host.
-h localhost
-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. 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.sh. 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.sh del paquete de software descargado de ThingWorx. El script se encuentra en la carpeta install.
2. Si es necesario, configure el script. Consulte las opciones en la siguiente tabla.
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
* 
Si no se utiliza public ni $user , se debe editar el fichero postgresql.conf y añadir SEARCH_PATH al esquema. Por ejemplo, search_path = '"$user", public, "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 script se puede ejecutar con los parámetros por defecto como:
$ sudo sh thingworxPostgresSchemaSetup.sh
El nombre de usuario debe coincidir con el nombre de usuario PostgreSQL que se ha creado anteriormente.
Configuración de platform-settings.json
1. Abra el fichero platform-settings.json que se encuentra en ThingworxPlatform.
2. Consulte las opciones de configuración de PostgresPersistenceProviderPackage en Detalles de la configuración de platform-settings.json y añádalas a 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 que se describen 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.
¿Fue esto útil?