Installation et configuration > Installation de ThingWorx > Installation Ubuntu > PostgreSQL > Installation et configuration de PostgreSQL (Ubuntu)
Installation et configuration de PostgreSQL (Ubuntu)
Les instructions fournies ci-dessous sont destinées à l'administrateur PostgreSQL (ne concerne pas les serveurs hôtes de base de données). Si vous incluez la couche haute disponibilité (HA) dans votre implémentation, consultez la rubrique Haute disponibilité ThingWorx de ce Centre d'aide .
Installation de PostgreSQL et création d'un nouveau rôle d'utilisateur
1. Pour plus d'informations sur les versions de PostgreSQL prises en charge, consultez la rubrique Configuration requise pour ThingWorx.
* 
Les étapes de cette procédure utilisent PostgreSQL version x.x, où x.x désigne la version prise en charge.
2. Téléchargez et installez la version appropriée de PostgreSQL.
Le référentiel PostgreSQL peut être ajouté pour permettre l'installation de l'application directement depuis le gestionnaire de packages.
* 
Pour obtenir le nom de version d'Ubuntu, utilisez la commande suivante :
$ 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. Installez PgAdmin, l'outil d'administration de PostgreSQL :
$ sudo apt-get install pgadmin4 -y
* 
Pour installer PgAdmin via la ligne de commande, reportez-vous à la page https://wiki.postgresql.org/wiki/Manual_Setup_at_the_Command_Line.
4. Configurez le mot de passe de l'utilisateur PostgreSQL :
$ sudo service postgresql restart
$ sudo -u postgres psql -c "ALTER ROLE postgres WITH password '<unique PostgreSQL password>'"
5. Spécifiez le mot de passe de l'utilisateur PostgreSQL. Vous devrez réutiliser ce mot de passe ultérieurement.
* 
Veillez à ce que ce mot de passe ne puisse pas être deviné facilement et à ce qu'il comprenne au moins 14 caractères et se compose d'une combinaison de caractères majuscules et minuscules, de chiffres et de caractères spéciaux.
6. Configurez PgAdmin :
$ sudo pgadmin4
Dans l'interface GUI de PgAdmin, cliquez sur file->Open postgresql.conf.
Ouvrez /etc/postgresql/x.x/main/postgresql.conf.
Cochez les cases en regard de listen addresses et de port. Les paramètres par défaut, à savoir localhost et 5432, sont généralement suffisants.
Enregistrez, puis fermez.
Cliquez sur file->Open pg_hba.conf.
Ouvrez /etc/postgresql/x.x/main/pg_hba.conf.
Double-cliquez sur la ligne de base de données "all" avec l'adresse 127.0.0.1/32.
Définissez la méthode sur md5.
Cliquez sur OK.
Enregistrez et quittez.
Fermez PgAdmin.
7. Redémarrez le service PostgreSQL :
$ sudo service postgresql restart
8. Configurez PgAdmin pour permettre la connexion à la base de données :
$ sudo pgadmin4
9. Cliquez sur l'icône de la prise dans le coin supérieur gauche pour ajouter une connexion à un serveur, puis entrez les informations suivantes :
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. Cliquez sur OK.
11. Créez un nouveau rôle d'utilisateur :
* 
Vous pouvez utiliser la commande suivante si vous n'utilisez pas PgAdmin :
sudo -u postgres psql -c "CREATE USER twadmin WITH PASSWORD '<unique postgres password>';"
b. Cliquez avec le bouton droit sur PostgreSQLx.x (<adresse IP ou nom d'hôte de la base de données>:<numéro de port de PostgreSQL>). Exemple : PostgreSQLx.x (localhost:5432).
c. Sélectionnez NewObject > NewLogin Role. Sur l'onglet Properties, entrez un nom dans le champ Role.
d. Sur l'onglet Definition, dans le champ Password, saisissez un mot de passe unique (deux saisies du mot de passe sont nécessaires). Vous devrez réutiliser ce mot de passe ultérieurement.
* 
Veillez à ce que ce mot de passe ne puisse pas être deviné facilement et à ce qu'il comprenne au moins 14 caractères et se compose d'une combinaison de caractères majuscules et minuscules, de chiffres et de caractères spéciaux.
e. Cliquez sur OK.
Configuration d'une base de données PostgreSQL située sur un serveur autre que celui de ThingWorx
* 
Cette section est facultative pour les environnements de développement, mais doit être implémentée dans tous les environnements de production.
Par défaut, le serveur PostgreSQL est installé dans un état verrouillé. Le serveur n'écoute que les connexions de la machine locale. Pour que ThingWorx communique avec le serveur PostgreSQL, certaines modifications de configuration sont nécessaires afin que PostgreSQL puisse écouter les connexions d'autres utilisateurs (utilisateur thingworx, twadmin par défaut) et/ou d'autres machines (ThingWorx installé sur un serveur distinct).
Vous devez savoir où réside votre répertoire de données PostgreSQL pour cette procédure. Sous Linux, l'emplacement du dossier de données et même des fichiers de configuration peut changer en fonction de la distribution et de la méthode d'installation (installation par le gestionnaire de paquets ou téléchargement). Cet emplacement sera appelé <PGDATA> dans ces instructions.
* 
Sous Ubuntu, lorsqu'ils sont installés via apt-get, les fichiers de configuration sont stockés dans /etc/postgresql/x.x/main/.
Modifiez le fichier pg_hba.conf en lui ajoutant les lignes correspondant à la configuration qui vous convient parmi les suivantes :
Si vous souhaitez autoriser toutes les adresses IPv4 à se connecter :
host all all 0.0.0.0/0 md5
Si vous souhaitez autoriser uniquement une adresse IPv4 spécifique à se connecter (remplacez <ipAddress> par l'adresse IP de la machine concernée) :
host all all <ipAddress>/32 md5
Si vous souhaitez autoriser toutes les adresses IPv6 à se connecter :
host all all ::0/0 md5
Si vous souhaitez autoriser uniquement une adresse IPv6 spécifique à se connecter (remplacez <ipv6Address> par l'adresse appropriée) :
host all all <ipv6Address>/128 md5
Toute autre combinaison est possible par ajout de lignes de configuration supplémentaires (adresses IP individuelles ou plages d'adresses) ou de masques de sous-réseau appropriés pour les machines qui nécessitent un accès à la base de données PostgreSQL.
Toute modification de ce fichier nécessite un redémarrage du service de base de données.
* 
Pour plus d'informations sur la configuration du fichier pg_hba.conf, consultez la documentation de PostgreSQL.
Configuration de PostgreSQL pour qu'il écoute toutes les connexions
Dans les installations Linux de PostgreSQL, une étape de configuration supplémentaire est nécessaire pour faire en sorte que le serveur PostgreSQL écoute les connexions.
1. Dans le fichier postgresql.conf, décommentez et mettez à jour la ligne listen_addresses :
Uncomment the listen_addresses line and change localhost to '*'
# Listen on all addresses. Requires restart.
listen_addresses = '*'
2. Redémarrez le serveur PostgreSQL :
Configuration et exécution du script de base de données PostgreSQL
Pour mettre en oeuvre la base de données et l'espace de table PostgreSQL, le script thingworxPostgresDBSetup doit être configuré et exécuté.
1. Créez le dossier ThingworxPostgresqlStorage sur le lecteur hébergeant le dossier ThingworxStorage (dans le répertoire racine par défaut). Notez le point suivant :
Si vous créez le dossier à l'aide de la commande -d<databasename>, vous n'avez pas à utiliser l'utilisateur PostgreSQL.
Vous devez utiliser l'option -l en spécifiant un chemin d'accès existant. Par exemple, -l D:\ThingworxPostgresqlStorage. Le script ne crée pas le dossier pour vous.
La propriété du dossier et les droits d'accès à celui-ci doivent être configurés de manière appropriée. Il doit appartenir au même utilisateur que celui qui exécute le service PostgreSQL et cet utilisateur doit bénéficier d'un contrôle total ; ce dernier est généralement NETWORK_SERVICE, mais il peut être différent dans votre environnement.

$ sudo mkdir /ThingworxPostgresqlStorage
$ sudo chown postgres:postgres /ThingworxPostgresqlStorage
$ sudo chmod 755 /ThingworxPostgresqlStorage
2. Récupérez le script thingworxPostgresDBSetup depuis le package de téléchargement de logiciel ThingWorx. Le script se trouve dans le dossier install. Les téléchargements ThingWorx s'effectuent depuis la page des  téléchargements de logiciels de PTC.
3. Si nécessaire, configurez le script. Reportez-vous à la table ci-dessous pour le paramétrage des options.
* 
Cet exemple utilise le téléchargement 8.x.x disponible sur le site de PTC. Si nécessaire, modifiez le nom de fichier compte tenu de la version que vous utilisez.

$ sudo unzip MED-61111-CD-084_ThingWorx-Platform-Postgres-8-x-x.zip
$ cd install
4. Pour configurer la base de données et l'espace de table avec une installation PostgreSQL par défaut offrant une base de données PostgreSQL et un nom d'utilisateur PostgreSQL, entrez :
$ sudo sh thingworxPostgresDBSetup.sh -a postgres -u <user role name> -l /ThingworxPostgresqlStorage
Options du script thingworxPostgresDBSetup
Option
Paramètre
Par défaut
Description
Exemple
t ou -T
tablespace
thingworx
Nom de l'espace de table.
-t thingworx
-p ou -P
port
5432
Numéro de port de PostgreSQL.
-p 5432
-d ou -D
database
thingworx
Nom de la base de données PostgreSQL à créer.
-d thingworx
-h ou -H
host
localhost
Nom de l'hôte
-h localhost
-l ou -L
tablespace_location
/ThingworxPostgresqlStorage
Obligatoire. Emplacement sur le système de fichiers où sont stockés les fichiers représentant les objets de base de données.
-l ou -L
-a ou -A
adminusername
postgres
Nom de l'administrateur.
-a postgres
-u ou -U
thingworxusername
twadmin
Nom d'utilisateur autorisé à accéder en écriture à la base de données.
-u twadmin
5. Exécutez le script.
Configuration et exécution du script de schéma de fournisseur de modèles/données
Pour mettre en oeuvre le schéma de fournisseur de modèles/données PostgreSQL, le script thingworxPostgresSchemaSetup doit être configuré et exécuté. Cette opération mettra en oeuvre le schéma public sous votre base de données sur l'instance PostgreSQL installée sur l'hôte local.
1. Récupérez et ouvrez le fichier thingworxPostgresSchemaSetup depuis le package de téléchargement de logiciel ThingWorx. Le script se trouve dans le dossier install.
2. Si nécessaire, configurez le script. Reportez-vous à la table ci-dessous pour le paramétrage des options.
Options du script thingworxPostgresSchemaSetup
Option
Paramètre
Par défaut
Description
Exemple
-h ou -H
host
localhost
Adresse IP ou nom d'hôte de la base de données.
-h localhost
-p ou -P
port
5432
Numéro de port de PostgreSQL.
-p 5432
-d ou -D
database
thingworx
Nom de la base de données à utiliser.
-d thingworx
-s ou -S
schema
public
Nom du schéma à utiliser.
-s monSchéma
-u ou -U
Nom d'utilisateur
twadmin
Nom d'utilisateur pour la mise à jour du schéma de base de données.
-u twadmin
-o ou -O
option
all
Trois options sont disponibles :
all : met en oeuvre les schémas de fournisseur de modèles et de données dans la base de données spécifiée.
model : met en oeuvre le schéma de fournisseur de modèles dans la base de données spécifiée.
data : met en oeuvre le schéma de fournisseur de données dans la base de données spécifiée.
-o data
3. Exécutez le script. Le script peut être exécuté avec les paramètres par défaut comme suit :
$ sudo sh thingworxPostgresSchemaSetup.sh
Le nom d'utilisateur doit correspondre au nom d'utilisateur PostgreSQL précédemment créé.
Configuration du fichier platform-settings.json
1. Créez le dossier ThingworxPlatform à la racine du lecteur sur lequel Tomcat a été installé ou en tant que variable système. Notez le point suivant :
Pour spécifier l'emplacement de stockage par ThingWorx de ses paramètres, vous pouvez définir la variable d'environnement THINGWORX_PLATFORM_SETTINGS sur l'emplacement souhaité. Assurez-vous que le dossier référencé par THINGWORX_PLATFORM_SETTINGS existe et qu'il est accessible en écriture par l'utilisateur Tomcat. Cette variable d'environnement doit être configurée dans le cadre des variables d'environnement système. Exemple Ubuntu : THINGWORX_PLATFORM_SETTINGS=/data/ThingworxPlatform
Le serveur ThingWorx ne démarrera pas s'il n'a pas accès en lecture et en écriture à ce dossier.

$ sudo mkdir /ThingworxPlatform
2. Placez le fichier platform-settings.json dans le dossier ThingworxPlatform. Ce fichier est disponible dans le téléchargement du logiciel ThingWorx.

$ sudo cp platform-settings.json /ThingworxPlatform/
3. Ouvrez le fichier platform-settings.json et procédez à la configuration voulue. Reportez-vous aux options de configuration décrites à la rubrique Détails de la configuration du fichier platform-settings.json.
* 
Si votre serveur PostgreSQL se trouve sur une autre machine que votre serveur ThingWorx, et que vous rencontrez des problèmes avec votre installation de ThingWorx, examinez vos journaux Tomcat et votre fichier platform-settings.json. L'installation par défaut prend pour hypothèse que les deux serveurs se trouvent sur la même machine. Bien qu'il soit facultatif que la base de données PostgreSQL se trouve sur le même serveur que ThingWorx dans un environnement de développement, elle doit être séparée dans tous les environnements de production.
Chiffrement du mot de passe PostgreSQL
Cryptez le mot de passe en suivant la procédure de la rubrique Cryptage de mots de passe.
(Facultatif) Installation du package client PostgreSQL et de l'utilisateur PostgreSQL
Pour envoyer des commandes PostgreSQL depuis la machine cliente vers le serveur PostgreSQL, procédez à partir d'un utilisateur PostgreSQL. Le package postgresql-client-x.x peut être installé sur la machine cliente ; reportez-vous à la documentation relative aux distributions pour connaître la procédure d'installation. Ce package inclut un certain nombre d'outils d'administration, tels que psql.
Installation de ThingWorx
Consultez la rubrique Installation de ThingWorx.