Installare e configurare PostgreSQL per Ubuntu
Le istruzioni fornite di seguito sono destinate all'amministratore di PostgreSQL (non ai server host del database). Se si intende includere il livello di disponibilità elevata nell'implementazione, fare riferimento a ThingWorx a disponibilità elevata di questo Help Center.
Installare PostgreSQL e creare un nuovo ruolo utente
1. Per informazioni sulle versioni di PostgreSQL supportate, fare riferimento ai Requisiti di sistema di ThingWorx.
* 
Per i passi descritti in questa procedura viene utilizzata la versione di PostgreSQL x.x, dove x.x è la versione supportata.
2. Scaricare e installare la versione appropriata di PostgreSQL.
Il repository di PostgreSQL può essere aggiunto consentendo all'applicazione su essere installata direttamente dal gestore del package.
* 
Per ottenere il nome della versione di Ubuntu, utilizzare il comando riportato di seguito.
$ 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. Installare PgAdmin, lo strumento di amministrazione di PostgreSQL:
$ sudo apt-get install pgadmin4 -y
* 
Per installare PgAdmin tramite la riga di comando, fare riferimento alla pagina https://wiki.postgresql.org/wiki/Manual_Setup_at_the_Command_Line.
4. Impostare la password per l'utente PostgreSQL:
$ sudo service postgresql restart
$ sudo -u postgres psql -c "ALTER ROLE postgres WITH password '<unique PostgreSQL password>'"
5. Immettere la password per l'utente PostgreSQL. Questa password viene utilizzata nei passi successivi.
* 
È consigliabile che la password sia difficile da indovinare, segreta e non comune, sia costituita da almeno 14 caratteri di lunghezza e includa una combinazione di lettere maiuscole e minuscole, numeri e caratteri speciali.
6. Configurare pgAdmin:
$ sudo pgadmin4
In pgAdmin fare clic su file->Open postgresql.conf
Aprire /etc/postgresql/x.x/main/postgresql.conf
Selezionare la casella accanto a listen addresses e port. Le impostazioni di default di localhost e 5432 sono in genere sufficienti.
Salvare e chiudere.
Fare clic su file->Open pg_hba.conf
Aprire /etc/postgresql/x.x/main/pg_hba.conf
Fare doppio clic sulla riga 'all' del database con l'indirizzo 127.0.0.1/32
Impostare Method su md5.
Fare clic su OK.
Salvare e uscire.
Chiudere pgAdmin
7. Riavviare il servizio PostgreSQL:
$ sudo service postgresql restart
8. Impostare PgAdmin per la connessione al database:
$ sudo pgadmin4
9. Fare clic sull'icona a forma di spina per aggiungere una connessione a un server nell'angolo superiore sinistro e completare le opzioni come descritto di seguito.
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. Fare clic su OK.
11. Creare un nuovo ruolo utente come descritto di seguito.
* 
Se non si utilizza PgAdmin, è possibile utilizzare il comando seguente:
sudo psql -U postgres -c "CREATE USER twadmin WITH PASSWORD '<unique postgres password>';"
b. Selezionare Create - Login/Group Role. Nella scheda General, nel campo Name, immettere il <nome ruolo utente PostgreSQL> per l'amministrazione di PostgreSQL.
c. Nella scheda Privileges selezionare Yes per Can login?.
d. Nella scheda Definition, nel campo Password, immettere una password univoca e sicura per PostgreSQL.
e. Fare clic su OK. Annotare il nome del ruolo utente e la password creati in questo passo per l'uso successivo.
Configurare il database PostgreSQL in un server diverso rispetto a ThingWorx
* 
Questa sezione è facoltativa per gli ambienti di sviluppo, ma deve essere implementata in tutti gli ambienti di produzione.
Per default, il server PostgreSQL viene installato in uno stato bloccato. Il server ascolta solo le connessioni dal computer locale. Per fare in modo che ThingWorx comunichi con il server PostgreSQL, è necessario apportare alcune modifiche di configurazione in modo che PostgreSQL riesca ad ascoltare le connessioni da altri utenti (utente thingworx, l'utente di default è twadmin) e/o da altri computer (ThingWorx installato in un altro server).
Per eseguire questi passi, è necessario sapere dove risiede la directory di dati di PostgreSQL. In Linux, la posizione della cartella dei dati o perfino i file di configurazione possono cambiare in base alla modalità di distribuzione e installazione (download o installazione dal gestore del package). In queste istruzioni, la posizione viene indicata come <PGDATA>.
* 
In Ubuntu, quando vengono installati tramite apt-get, i file di configurazione si trovano in /etc/postgresql/x.x/main/
Modificare il file pg_hba.conf e aggiungere le righe riportate di seguito in base alla configurazione desiderata.
Se si desidera consentire a tutti gli indirizzi IPv4 di connettersi:
host all all 0.0.0.0/0 md5
Se si desidera consentire solo a un indirizzo IPv4 specifico di connettersi (sostituire <ipAddress> con l'indirizzo IP del computer che effettua la connessione):
host all all <ipAddress>/32 md5
Se si desidera consentire a tutti gli indirizzi IPv6 di connettersi:
host all all ::0/0 md5
Se si desidera consentire solo a un indirizzo IPv6 specifico di connettersi (sostituire <ipv6Address> con l'indirizzo appropriato):
host all all <ipv6Address>/128 md5
Qualsiasi altra combinazione è possibile utilizzando righe di consenso aggiuntive (singoli IP o intervalli di IP) o maschere di sottorete appropriate ai computer che richiedono accesso al database PostgreSQL.
Qualsiasi modifica a questo file richiede il riavvio del servizio di database.
* 
Per informazioni aggiuntive sulla configurazione del file pg_hba.conf, vedere la documentazione di PostgreSQL.
Abilitazione di PostgreSQL per l'ascolto di tutte le connessioni
Nelle installazioni Linux di PostgreSQL è necessario un ulteriore passo per configurare il server PostgreSQL per l'ascolto delle connessioni.
1. Nel file postgresql.conf, eliminare il commento e aggiornare la riga listen_addresses:
Uncomment the listen_addresses line and change localhost to '*'
# Listen on all addresses. Requires restart.
listen_addresses = '*'
2. Riavviare il server PostgreSQL.
Configurare ed eseguire lo script del database PostgreSQL
Per impostare lo spazio tabelle e il database PostgreSQL, è necessario configurare ed eseguire lo script thingworxPostgresDBSetup.sh.
* 
Dopo ThingWorx 9.3.1, la creazione della cartella ThingworxPostgresqlStorage o qualsiasi procedura relativa al parametro -l non è più necessaria e i dati ThingWorx vengono memorizzati nella posizione di default di Postgresql.
1. Ottenere lo script thingworxPostgresDBSetup.sh dal package di download del software di ThingWorx nella cartella install. I download di ThingWorx sono disponibili nella pagina PTC Software Download.
2. Se necessario, configurare lo script. Fare riferimento alle opzioni nella tabella riportata di seguito.
* 
Questo esempio utilizza il download 9.x.x dal sito di PTC. Se necessario, modificare il nome del file nella versione che si sta utilizzando.

$ sudo unzip MED-61111-CD-085_F000_ThingWorx-Platform-Postgres-9-x-x.zip
$ cd install
3. Per impostare lo spazio tabelle e il database con un'installazione di PostgreSQL di default che dispone di un database PostgreSQL e di un nome utente PostgreSQL, immettere il codice seguente:
$ sudo sh thingworxPostgresDBSetup.sh -a postgres -u <user role name> -l /ThingworxPostgresqlStorage
Opzioni dello script thingworxPostgresDBSetup
Opzione
Parametro
Default
Descrizione
Esempio
t o -T
tablespace
thingworx
Nome dello spazio tabelle
-t thingworx
-p o -P
port
5432
Numero di porta di PostgreSQL.
-p 5432
-d o -D
database
thingworx
Nome del database PostgreSQL da creare
-d thingworx
-l o -L
tablespace_location
/ThingworxPostgresqlStorage
Richiesto in ThingWorx 9.3.0 e versioni precedenti. Posizione nel file system in cui sono archiviati i file che rappresentano oggetti di database. L'utente deve creare manualmente questa cartella con i permessi prima di eseguire lo script e quindi specificare il percorso, ad esempio -l /ThingworxPostgresqlStorage
* 
La cartella deve avere i diritti di proprietà e di accesso appropriati. Deve essere di proprietà dello stesso utente che esegue il servizio PostgreSQL e a cui deve essere stato assegnato il controllo completo.
-l o -L
-h o -H
host
localhost
Nome dell'host
-h localhost
-a o -A
adminusername
postgres
Nome dell'amministratore
-a postgres
-u o -U
thingworxusername
twadmin
Nome utente dotato dei permessi di scrittura nel database.
-u twadmin
4. Eseguire lo script.
Configurare ed eseguire lo script dello schema del provider di modelli/dati
Per impostare lo schema del provider di modelli/dati PostgreSQL, è necessario configurare ed eseguire lo script thingworxPostgresSchemaSetup.sh. Questo script installa lo schema pubblico nel database nell'istanza PostgreSQL installata nell'host locale.
1. Ottenere e aprire il file thingworxPostgresSchemaSetup.sh dal package di download del software ThingWorx. Questo script si trova nella cartella install.
2. Se necessario, configurare lo script. Fare riferimento alle opzioni nella tabella riportata di seguito.
Opzioni dello script thingworxPostgresSchemaSetup
Opzione
Parametro
Default
Descrizione
Esempio
-h o -H
host
localhost
IP o nome host del database.
-h localhost
-p o -P
port
5432
Numero di porta di PostgreSQL.
-p 5432
-d o -D
database
thingworx
Nome del database da utilizzare.
-d thingworx
-s o -S
schema
pubblico
Nome dello schema da utilizzare.
-s myschema
* 
Se non viene utilizzato public o $user , è necessario modificare il file postgresql.conf e aggiungere SEARCH_PATH allo schema. Ad esempio, search_path = '"$user", public, "myschema"'
-u o -U
username
twadmin
Nome utente per aggiornare lo schema del database.
-u twadmin
-o o -O
opzione
tutti
Sono disponibili le tre opzioni elencate di seguito.
all: imposta gli schemi del provider di modelli e dati nel database specificato.
model: imposta lo schema del provider di modelli nel database specificato.
data: imposta lo schema del provider di dati nel database specificato.
-o data
3. Eseguire lo script. Lo script può essere eseguito con i parametri di default come:
$ sudo sh thingworxPostgresSchemaSetup.sh
Il nome utente deve corrispondere al nome utente PostgreSQL creato in precedenza.
Configurare platform-settings.json
1. Aprire il file platform-settings.json situato nella directory ThingworxPlatform.
2. Fare riferimento alle opzioni di configurazione PostgresPersistenceProviderPackage in Dettagli di configurazione platform-settings.json e aggiungere a platform-settings.json.
* 
Se il server PostgreSQL non è lo stesso del server ThingWorx e si verificano problemi con l'installazione di ThingWorx, esaminare i log di Tomcat e il file platform-settings.json. L'installazione di default presuppone che entrambi i server si trovino nello stesso computer.
Crittografare la password di PostgreSQL
Crittografare la password eseguendo i passi descritti in Crittografia delle password.
(Facoltativo) Installazione del package client di PostgreSQL e dell'utente PostgreSQL
Per inviare comandi PostgreSQL dal computer client al server PostgreSQL, attenersi alla procedura descritta di seguito utilizzando un utente PostgreSQL. Il package postgresql-client-x.x può essere installato sul computer client. Per le istruzioni su come installarlo, fare riferimento alla documentazione relativa alle distribuzioni. Questo package include alcuni strumenti di amministrazione quali psql.
È stato utile?