Installazione¶
Nota
Come promemoria, il passaggio a root sulle macchine Debian deve essere effettuato con il comando seguente:
1 | |
Le istruzioni riportate in questa pagina devono essere seguite per l'installazione di tutti i nodi del cluster PostgreSQL.
Configurazione del sistema¶
Connessione alla macchina¶
Per impostazione predefinita, sulle appliance virtuali esistono due account: un account utente e un account superutente.
- Account utente
- Login:
systancia - Password:
systnci
- Login:
- Account superutente
- Login:
root - Password:
systnci
- Login:
Connettersi alla macchina in modalità console.
Nota
Il layout di tastiera predefinito è QWERTY.
Modifica del layout di tastiera¶
È possibile cambiare il layout di tastiera con la riga di comando seguente:
1 | |
Compare un menu che permette di scegliere un altro layout di tastiera.
Utilizzare poi la riga di comando seguente per applicare e salvare le impostazioni:
1 | |
Le impostazioni diventano effettive immediatamente dopo l'esecuzione di questo comando.
Configurazione della rete¶
L'appliance virtuale può non ricevere alcuna configurazione di rete all'avvio, per i motivi seguenti:
- Il nome dell'interfaccia di rete non è
ens192: l'appliance è configurata in DHCP unicamente sull'interfacciaens192 - Non è disponibile alcun server DHCP
Per verificare il nome dell'interfaccia di rete, il suo stato e gli indirizzi IP assegnati, eseguire il comando seguente come root:
1 | |
Esempio
Dopo l'esecuzione del comando viene visualizzata la risposta seguente:
1 | |
Il nome dell'interfaccia di rete nell'esempio è ens192, l'interfaccia è attiva e ha l'indirizzo IP 10.100.0.51/24.
Se il nome è diverso da ens192 o se il comando non restituisce alcuna configurazione di rete, sarà necessario configurare la rete manualmente con i comandi seguenti:
1 2 | |
Sostituire:
IP_ADDRESScon l'indirizzo IP della macchinaSUBNETcon la sottoreteDEV_NAMEnome dell'interfaccia di rete recuperata in precedenzaGATEWAYcon il gateway di rete
Esempio
Per configurare il nodo PostgreSQL con le informazioni seguenti:
- Indirizzo IP:
10.100.0.51 - Sottorete:
/24o255.255.255.0 - Nome dell'interfaccia di rete:
eth0 - Gateway di rete:
10.100.0.254
I comandi sono i seguenti:
1 2 | |
Nota
Questa configurazione di rete è temporanea, pertanto qualsiasi riavvio del server annullerà le impostazioni manuali effettuate con i comandi ip address e ip route.
La configurazione permanente sarà eseguita dall'utility di configurazione del cluster PostgreSQL.
Tuttavia, grazie a questa configurazione di rete, è ora possibile accedere al nodo PostgreSQL tramite SSH.
Modifica del fuso orario¶
Per impostazione predefinita, l'appliance virtuale è configurata sul fuso orario Europe/Paris.
Per cambiare questo fuso orario, utilizzare prima il comando seguente per recuperare la sintassi dei fusi orari disponibili:
1 | |
Utilizzare poi la riga di comando seguente:
1 | |
Esempio
Per impostare il fuso orario su Londra deve essere eseguito il comando seguente:
1 | |
Verificare il fuso orario del server con la riga di comando seguente:
1 | |
Configurazione di un server di riferimento orario NTP¶
Pericolo
Si raccomanda vivamente di configurare un server di riferimento orario per mantenere aggiornato l'orologio di sistema: qualsiasi differenza di orario tra i nodi PostgreSQL può causare instabilità o addirittura interrompere il funzionamento del cluster.
I passaggi necessari sono descritti nella pagina di configurazione NTP (la configurazione è equivalente a quella dei server Mediation Controller di CyberElements Bastion).
Creazione di una PKI per generare i certificati dei nodi PostgreSQL¶
Informazioni
Questa sezione è facoltativa se si dispone già di una PKI con la quale è stato possibile generare i certificati indicati nei prerequisiti.
Questa sezione presenta i vari passaggi per la creazione di una PKI e dei certificati necessari per il cluster PostgreSQL. Si noti che non verrà indicato come rinnovarli, poiché il rinnovo di un certificato comporta la sua ricreazione.
Attenzione!
La procedura descritta è stata convalidata su una macchina Debian 12 con il pacchetto openssl. Tuttavia, qualsiasi macchina dotata di una versione recente di OpenSSL (la versione convalidata è 3.0.17) sarà in grado di completare la procedura. Tranne su Windows o MacOS, dove i comandi di sistema dovranno essere adattati.
Definizione delle variabili e delle personalizzazioni¶
Questa sezione fornisce vari comandi e file di configurazione che utilizzano variabili modificabili.
La tabella seguente riepiloga tutti i valori e permette di definirli per poterli modificare direttamente nei comandi visualizzati in questa pagina.
| Valore | Variabile | Definizione |
|---|---|---|
PSQL_IP |
Indirizzo IP virtuale del cluster PostgreSQL. | |
PSQL_NAME |
Nome breve (non l'FQDN) associato all'indirizzo IP virtuale del cluster PostgreSQL. | |
PSQL_1_IP |
Indirizzo IP del nodo n°1 del cluster PostgreSQL. | |
PSQL_1_NAME |
Nome breve (non l'FQDN) del nodo n°1 del cluster PostgreSQL. | |
PSQL_2_IP |
Indirizzo IP del nodo n°2 del cluster PostgreSQL. | |
PSQL_2_NAME |
Nome breve (non l'FQDN) del nodo n°2 del cluster PostgreSQL. | |
PSQL_3_IP |
Indirizzo IP del nodo n°3 del cluster PostgreSQL. | |
PSQL_3_NAME |
Nome breve (non l'FQDN) del nodo n°3 del cluster PostgreSQL. | |
CA_ROOT_NAME |
Nome assegnato all'autorità di certificazione (CA) radice della PKI. |
Preparazione¶
Le azioni seguenti saranno eseguite in una nuova directory, al fine di riunire tutti i nuovi file in una sola directory. È possibile utilizzare qualsiasi directory, ma il suo accesso deve essere limitato il più possibile. Connettersi al nodo PostgreSQL n°1 come root ed eseguire i comandi seguenti:
1 2 3 | |
Creazione dell'autorità di certificazione radice¶
Eseguire il comando seguente per creare una nuova CA radice. Verrà richiesta una password per proteggere la CA:
1 | |
Sostituire CA_ROOT_NAME con il nome della CA radice se non è stato personalizzato qui.
Creazione dei certificati¶
I comandi necessari per generare i certificati dei nodi PostgreSQL sono i seguenti:
1 2 3 | |
Sostituire CA_ROOT_NAME, PSQL_IP, PSQL_NAME, PSQL_1_IP e PSQL_1_NAME se non sono stati personalizzati qui.
1 2 3 | |
Sostituire CA_ROOT_NAME, PSQL_IP, PSQL_NAME, PSQL_2_IP e PSQL_2_NAME se non sono stati personalizzati qui.
1 2 3 | |
Sostituire CA_ROOT_NAME, PSQL_IP, PSQL_NAME, PSQL_3_IP e PSQL_3_NAME se non sono stati personalizzati qui.
Il primo comando crea una nuova chiave, il secondo genera un file di richiesta di firma del certificato CSR e il terzo crea il certificato stesso.
Resta solo da convertire il certificato in P12, operazione che richiederà di definire una password:
1 | |
1 | |
1 | |
I file necessari per l'installazione del cluster PostgreSQL si trovano qui (sostituire le variabili CA_ROOT_NAME, PSQL_1_NAME, PSQL_2_NAME e PSQL_3_NAME con i valori scelti in precedenza):
/root/psql-certificates/CA_ROOT_NAME.crt: certificato della CA radice/root/psql-certificates/PSQL_1_NAME.p12: certificato del nodo PostgreSQL n°1/root/psql-certificates/PSQL_2_NAME.p12: certificato del nodo PostgreSQL n°2/root/psql-certificates/PSQL_3_NAME.p12: certificato del nodo PostgreSQL n°3
Installazione di un cluster PostgreSQL¶
Informazioni
I passaggi seguenti devono essere eseguiti su tutti e tre i nodi PostgreSQL.
Preparazione della configurazione del cluster PostgreSQL¶
È necessario stabilire una connessione SFTP o SCP per inviare all'appliance:
- Il certificato dell'autorità di certificazione che ha firmato i certificati dei nodi PostgreSQL
- Il certificato del nodo PostgreSQL in formato
P12
Si noti che le connessioni SFTP o SCP non possono essere avviate con l'account root. Inoltre, i file possono essere semplicemente collocati in /home/systancia/.
È necessario spostare questi file in una nuova directory:
1 2 3 | |
Sostituire:
PSQL_?_NAMEcon il nome del certificato destinato al nodo PostgreSQL in corso di installazioneROOT_CA_NAMEcon il nome del certificato dell'autorità di certificazione radice
1 2 3 | |
I comandi precedenti devono essere stati personalizzati secondo le impostazioni di personalizzazione.
1 2 3 | |
I comandi precedenti devono essere stati personalizzati secondo le impostazioni di personalizzazione.
1 2 3 | |
I comandi precedenti devono essere stati personalizzati secondo le impostazioni di personalizzazione.
Configurazione del nodo PostgreSQL¶
Per avviare l'inizializzazione della configurazione del nodo devono essere eseguiti i comandi seguenti:
1 2 | |
Il secondo comando avvia una utility che richiederà le informazioni seguenti:
- Le nuove password degli utenti locali
rootesystancia - Il nome del nodo PostgreSQL (non l'FQDN)
- L'indirizzo IP del nodo PostgreSQL, il nome della sua interfaccia di rete, il gateway di rete predefinito da utilizzare, nonché i server DNS e il suffisso DNS
- La versione di PostgreSQL; si raccomanda di utilizzare la versione
15 - La porta di accesso al cluster PostgreSQL; si raccomanda di utilizzare la porta
5432 - La password dell'account PostgreSQL utilizzato per la replica e per
pg_rewind - Il nome e l'indirizzo IP di un secondo nodo PostgreSQL
- Il nome e l'indirizzo IP dell'ultimo nodo PostgreSQL
- L'indirizzo IP virtuale del cluster PostgreSQL
- Gli indirizzi IP (separati da virgole) degli Edge Gateway di CyberElements Bastion o di qualsiasi altra macchina che debba connettersi al cluster
- Il nome e la password dell'account utente PostgreSQL
- Gli indirizzi IP o le reti (separate da virgole) autorizzate a connettersi tramite SSH ai nodi PostgreSQL
- Le informazioni relative al certificato del nodo PostgreSQL (certificato del nodo in formato P12 + certificato della CA radice)
Dopo aver immesso queste informazioni, verrà presentato un riepilogo di tutti i dati inseriti prima della convalida.
Dopo aver confermato le informazioni fornite, comparirà un messaggio relativo alle modifiche del file /etc/ssh/sshd_config. Selezionare l'opzione predefinita, keep the local version currently installed.
Per applicare la configurazione è necessario un riavvio:
1 | |
Suggerimento per accelerare l'installazione dei nodi PostgreSQL n°2 e n°3
Dopo aver installato il nodo PostgreSQL n°1, è possibile recuperare le impostazioni di configurazione utilizzate per la sua installazione dal file /etc/cleanroom-vault.ini.
Esempio del file /etc/cleanroom-vault.ini
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | |
È sufficiente modificare le righe evidenziate con i valori del nodo PostgreSQL in corso di installazione, a partire dal file recuperato dal nodo PostgreSQL n°1.
Pericolo
Se si riutilizza il file di esempio, sarà necessario modificare tutti i valori evidenziati seguenti in funzione del proprio ambiente:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | |
Configurazioni aggiuntive per patronictl¶
Per poter utilizzare i comandi di gestione del cluster PostgreSQL con patronictl, restano alcuni comandi da eseguire come root sul nodo PostgreSQL:
1 2 3 4 | |
Configurazioni aggiuntive per etcd¶
Per abilitare la compattazione e la deframmentazione automatiche del database etcd, eseguire i comandi seguenti come root sul nodo PostgreSQL:
1 2 3 4 5 6 7 | |
Creazione del database default necessario per l'installazione di CyberElements Bastion¶
Al momento dell'installazione di CyberElements Bastion è necessario creare prima un database denominato default.
A tale scopo, compilare la tabella seguente per personalizzare il comando che dovrà essere eseguito da uno qualsiasi dei nodi del cluster PostgreSQL:
| Valore | Variabile | Definizione |
|---|---|---|
PSQL_VIP |
Indirizzo IP virtuale del cluster PostgreSQL. | |
DB_USER |
Il nome utente del database indicato durante la configurazione del nodo PostgreSQL |
Comando da eseguire da uno qualsiasi dei nodi del cluster PostgreSQL:
1 | |