Installazione¶
Nota
Come promemoria, il passaggio a root su macchine Debian deve essere fatto con il seguente comando:
1 | |
Le istruzioni fornite in questa pagina devono essere seguite per l'installazione di tutti i nodi nel cluster PostgreSQL.
Impostazioni del sistema¶
Connezione alla macchina¶
Per impostazione predefinita, ci sono due account su apparecchi virtuali: un account utente e un account superutente.
- Account utente
- Login:
systancia - Codice:
systnci
- Login:
- Account superutente
- Login:
root - Codice:
systnci
- Login:
Collegati alla macchina in modalità console.
Nota
Il layout di tastiera predefinito è QWERTY.
Cambiamento del layout della tastiera¶
Puoi modificare il layout della tastiera con la seguente riga di comando:
1 | |
Un menu appare per consentire di scegliere un altro layout della tastiera.
Quindi usa la seguente riga di comando per applicare e salvare le impostazioni:
1 | |
Le impostazioni entreranno in vigore immediatamente dopo l'esecuzione di questo comando.
Configurazione della rete¶
Il dispositivo virtuale può non ricevere una configurazione di rete all'avvio per i seguenti motivi:
- Il nome dell'interfaccia di rete non è
ens192: l'apparecchio è configurato con DHCP solo per l'interfacciaens192 - Non è disponibile un server DHCP
Per verificare il nome dell'interfaccia di rete, il suo stato e gli indirizzi IP assegnati, eseguire il seguente comando come root:
1 | |
Example
Dopo l'esecuzione del comando, viene visualizzata la seguente risposta:
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 il comando non restituisce alcuna impostazione di rete, è necessario impostare manualmente una configurazione di rete utilizzando i seguenti comandi:
1 2 | |
Sostituire:
IP_ADDRESSper l'indirizzo IP della macchinaSUBNETdella sottoreteDEV_NAMEnome dell'interfaccia di rete precedentemente recuperataGATEWAYdal gateway di rete
Example
Per configurare il nodo PostgreSQL con le seguenti informazioni:
- 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 | |
Note
Questa configurazione di rete è temporanea, pertanto ogni riavvio del server ripristinerà le impostazioni manuali effettuate con i comandi ip address e ip route.
La configurazione permanente sarà eseguita dall'utilità di configurazione del cluster PostgreSQL.
Tuttavia, grazie a questa configurazione di rete, è ora possibile accedere al nodo PostgreSQL tramite SSH.
Modifica del fuso orario¶
Configurazione di un server NTP¶
Danger
Si consiglia vivamente di configurare un server orario per mantenere aggiornato l'orologio di sistema: qualsiasi differenza di orario tra i nodi PostgreSQL può causare instabilità o persino far sì che il cluster smetta di funzionare.
I passaggi necessari sono descritti nella pagina di configurazione NTP (la configurazione è equivalente a quella dei server cyberelements Cleanroom Mediation Controller).
Creazione di un PKI per generare certificati di nodo PostgreSQL¶
Info
Questa sezione è facoltativa se si dispone già di un PKI da cui si è potuto generare il certificati indicati nei prerequisiti.
In questa sezione verranno presentati i vari passaggi per la creazione di un PKI e i certificati necessari per il cluster PostgreSQL. Si noti che non verrà indicato come rinnovarli, poiché il rinnovo di un certificato comporta la sua ricreazione.
Warning
La procedura descritta è stata convalidata su una macchina Debian 12 con il pacchetto openssl. Tuttavia, qualsiasi macchina con una versione recente di OpenSSL (la versione convalidata è 3.0.17) sarà in grado di completare la procedura. Ad eccezione di Windows o MacOS dove i comandi di sistema dovranno essere adattati.
Definizione delle variabili e personalizzazioni¶
Questa sezione fornisce vari comandi e file di configurazione che utilizzano variabili modificabili.
La tabella seguente riassume tutti i valori e consente di definirli in modo da 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 il FQDN) associato all'indirizzo IP virtuale del cluster PostgreSQL. | |
PSQL_1_IP |
Indirizzo IP del nodo #1 del cluster PostgreSQL. | |
PSQL_1_NAME |
Nome breve (non il FQDN) del nodo #1 del cluster PostgreSQL. | |
PSQL_2_IP |
Indirizzo IP del nodo #2 del cluster PostgreSQL. | |
PSQL_2_NAME |
Nome breve (non il FQDN) del nodo #2 del cluster PostgreSQL. | |
PSQL_3_IP |
Indirizzo IP del nodo #3 del cluster PostgreSQL. | |
PSQL_3_NAME |
Nome breve (non il FQDN) del nodo #3 del cluster PostgreSQL. | |
CA_ROOT_NAME |
Nome assegnato all'autorità di certificazione (CA) di base del PKI. |
Pianificazione e preparazione¶
Le seguenti azioni verranno eseguite in una nuova directory per raccogliere tutti i nuovi file in una singola directory. Qualsiasi directory può essere utilizzata, ma il suo accesso deve essere limitato il più possibile. * Accedi al nodo PostgreSQL n°1* come root e esegui i seguenti comandi:
1 2 3 | |
Creazione dell'autorità di certificazione di radice¶
Per creare una nuova CA radice, eseguire il seguente comando. Vi verrà richiesto un codice di accesso per proteggere la CA:
1 | |
Sostituire CA_ROOT_NAME con il nome della CA radice se non si è personalizzato qui .
Creazione di certificati¶
I comandi necessari per generare certificati per i 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 lo ha fatto L'ho personalizzato qui..
1 2 3 | |
Sostituire CA_ROOT_NAME, PSQL_IP, PSQL_NAME, PSQL_2_IP e PSQL_2_NAME se non lo ha fatto L'ho personalizzato qui..
1 2 3 | |
Sostituire CA_ROOT_NAME, PSQL_IP, PSQL_NAME, PSQL_3_IP e PSQL_3_NAME se non lo ha fatto L'ho personalizzato qui..
Il primo comando crea una nuova chiave, il secondo genera un file di richiesta di certificato CSR, e il terzo crea il certificato stesso.
Il certificato deve ancora essere convertito in P12, che richiederà di impostare una password:
1 | |
1 | |
1 | |
I file necessari per installare il cluster PostgreSQL possono essere trovati qui (sostituire le variabili CA_ROOT_NAME, PSQL_1_NAME, PSQL_2_NAME e PSQL_3_NAME con gli elementi selezionati in precedenza):
/root/psql-certificates/CA_ROOT_NAME.crt: certificato CA radice/root/psql-certificates/PSQL_1_NAME.p12: certificato per il nodo PostgreSQL n°1/root/psql-certificates/PSQL_2_NAME.p12: certificato per il nodo PostgreSQL n°2/root/psql-certificates/PSQL_3_NAME.p12: certificato per il nodo PostgreSQL n°3
Installazione di un cluster PostgreSQL¶
Info
Le seguenti istruzioni devono essere eseguite sui 3 nodi PostgreSQL.
Preparazione per la configurazione del cluster PostgreSQL¶
È necessario stabilire una connessione SFTP o SCP per inviare all'apparecchio:
- Il certificato dell'autorità di certificazione che ha firmato i certificati per i nodi PostgreSQL
- Il certificato del nodo PostgreSQL in formato
P12
Si noti che la connessione SFTP o SCP non può essere inizializzata con l'account root. Inoltre, i file possono essere semplicemente inseriti in /home/systancia/.
È necessario spostare questi file in una nuova directory:
1 2 3 | |
Sostituire:
PSQL_?_NAMEdal nome del certificato destinato al nodo PostgreSQL che viene installatoROOT_CA_NAMEcon il nome dell'autorità di certificazione radicale
1 2 3 | |
I comandi di cui sopra devono essere stati personalizzati in base alle impostazioni di personalizzazione .
Configurazione del nodo PostgreSQL¶
Per iniziare l'inizializzazione della configurazione del nodo, devono essere eseguiti i seguenti comandi:
1 2 | |
Il secondo comando lancerà un'utilità che richiederà le seguenti informazioni:
- Nuove password per gli utenti locali
rootesystancia - Nome del nodo PostgreSQL (non il FQDN)
- L'indirizzo IP del nodo PostgreSQL, il nome della sua interfaccia di rete, il gateway di rete di default da utilizzare, nonché i server DNS e il suffisso DNS
- La versione di PostgreSQL; si consiglia di utilizzare la versione
15 - La porta di accesso al cluster PostgreSQL; si consiglia di utilizzare la porta
5432 - Casella per l'account PostgreSQL utilizzato per la replica e per
pg_rewind - Nome e indirizzo IP di un secondo nodo PostgreSQL
- Nome e indirizzo IP dell'ultimo nodo PostgreSQL
- Indirizzo IP virtuale del cluster PostgreSQL
- Gli indirizzi IP (separati da virgole) degli elementi cyber Cleanroom Edge Gateway o di qualsiasi altra macchina che deve connettersi al cluster.
- Nome e password dell'account utente PostgreSQL
- Gli indirizzi IP o le reti (separate da virgole) autorizzati a connettersi via SSH ai nodi PostgreSQL
- Informazioni sul certificato per il nodo PostgreSQL (certificato del nodo in formato P12 + certificato CA di root)
Dopo aver inserito queste informazioni, prima della convalida verrà fornito un riepilogo di tutte le voci.
Dopo aver convalidato le informazioni fornite, apparirà un messaggio relativo all'applicazione delle modifiche apportate al /etc/ssh/sshd_config Per favore rispondi con la scelta predefinita keep the local version currently installed.
Per applicare la configurazione, è necessario un riavvio:
1 | |
Consegna per accelerare l'installazione dei nodi PostgreSQL n°2 e n°3
Dopo aver installato il nodo PostgreSQL n°1, è possibile recuperare i parametri utilizzati per configurarlo da questo nodo utilizzando il 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 | |
Semplicemente modificare le righe evidenziate con i valori del nodo PostgreSQL che viene installato, in base al file che si è recuperato dal nodo PostgreSQL n°1.
Danger
Se si riutilizza il file di esempio, è necessario modificare tutti i seguenti valori evidenziati in base all'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, ci sono ancora alcuni comandi da eseguire come root sul nodo PostgreSQL:
1 2 3 4 | |