Salta al contenuto

Documentazione

Integrazioni

Un’integrazione è un sistema con cui il suo agente dialoga per suo conto: un hypervisor, un pannello di controllo, un pannello di gioco. Questa pagina descrive ciò che hanno in comune: come si collega un’integrazione, che cosa Provibr può farne e come capire se funziona davvero.

Un unico registro, non un cumulo di eccezioni

Ogni provider è descritto in un unico punto: a quale categoria appartiene, che tipo di risorsa produce, quali credenziali richiede e quali delle sette funzionalità possiede. Il pannello, la piattaforma e l’agente leggono tutti quella stessa descrizione. In nessun punto del prodotto ci si chiede se un sistema sia per caso Proxmox.

Per questo le schede di un’integrazione cambiano da provider a provider. Una scheda di test esiste perché il provider dichiara un test di connessione; una scheda dei sistemi operativi esiste perché il provider è in grado di contenere dei template; una scheda di importazione esiste perché il provider è in grado di elencare ciò che già gestisce. Una scheda assente è una funzionalità assente, non una pagina che non è riuscita a caricarsi.

Le categorie

Hypervisor
Esegue macchine virtuali e consegna la macchina intera: core, memoria, disco, rete. Quali hypervisor sono disponibili e quali sono nella roadmap è indicato nella pagina delle integrazioni.
Pannello di controllo
Gestisce account di hosting web su una macchina già in funzione. Crea un account con un pacchetto, non un sistema operativo. La pagina delle integrazioni etichetta ogni pannello di controllo come disponibile o roadmap.
Pannello di gioco
Gestisce container per server di gioco, costruiti a partire da una ricetta anziché da un’immagine di sistema operativo. Sta accanto ai pannelli di controllo e non al loro interno, perché quasi nulla accomuna le due cose. La pagina delle integrazioni mostra i pannelli di gioco disponibili.
Server dedicati
Macchine fisiche, installate attraverso la rete e gestite fuori banda. Annunciati e non ancora realizzati.
Rete
Switch e router. Annunciati e non ancora realizzati, e non compaiono affatto nella pagina delle integrazioni: gli apparati di rete hanno schermate proprie e non contano come risorsa.

Che cosa può fare un provider

Sette funzionalità decidono che cosa compare e che cosa la piattaforma è disposta a inviare. Un comando che richiede una funzionalità di cui il provider non dispone viene rifiutato prima ancora di raggiungere il suo agente, indicandone il motivo.

  • Console: uno schermo o un terminale in diretta sulla risorsa.
  • Firewall: la piattaforma può imporre quali indirizzi una risorsa può utilizzare.
  • Regole del firewall: un elenco ordinato di regole modificabile direttamente, più il log del firewall.
  • Hardware: dischi e schede di rete che è possibile aggiungere, ridimensionare e rimuovere.
  • Metriche: misurazioni di utilizzo e quindi grafici.
  • Sistemi operativi: template o immagini da cui la piattaforma può installare.
  • Assegnazione degli indirizzi: è Provibr a decidere quale indirizzo riceve la risorsa.

Come si collega un’integrazione

Aggiungere un’integrazione richiede tre passaggi: il tipo di sistema, la connessione e le credenziali. Una categoria dietro alla quale non è stato realizzato nulla è visibile ma non selezionabile: così si vede che cosa sta arrivando, senza poterlo scegliere.

  • Oltre al provider si sceglie anche un agente. È quell’agente a raggiungere il sistema, quindi deve trovarsi su una rete da cui ciò sia possibile.
  • Il nome lo sceglie lei. È un’etichetta nel pannello e nient’altro lo legge.
  • Le credenziali vengono convalidate con le stesse regole che applica l’agente, poi trasmesse a quell’agente e sigillate nella sua cassaforte. Si resta sulla pagina finché l’agente non risponde.
  • Se l’agente le rifiuta, viene mostrato il motivo e i valori digitati restano al loro posto, così un singolo errore di battitura non costa l’intero modulo.

Che cosa viene conservato e che cosa no

Le credenziali non vengono mai scritte nel database della piattaforma. Ciò che si conserva sono i nomi dei campi compilati, l’host e la porta, così il pannello ha qualcosa da mostrare e il registro di audit ha qualcosa a cui fare riferimento.

Per questo non è possibile visualizzare né modificare le credenziali, ma soltanto inviarle di nuovo. Il modulo riparte ogni volta da campi vuoti. Ed è anche il motivo per cui nessuno in Provibr può leggerle.

Sull’host sono cifrate con una chiave mescolata all’identità di quella macchina. Copiare la cassaforte e la sua chiave su un’altra macchina non porta a nulla. Non protegge da root sul suo stesso host. Quell’host è suo, e lo sono anche le credenziali.

Le impronte TLS

Ogni provider che parla HTTPS offre un campo per l’impronta. Se viene compilato, l’agente accetta soltanto il certificato esatto che è stato fissato: è questo che rende sicuro l’uso di un certificato autofirmato su un nodo proprio. Rilevi l’impronta dall’host dell’agente, così a essere fissato è ciò che l’agente vedrà davvero:

shell
openssl s_client -connect <host>:<port> </dev/null 2>/dev/null | \
  openssl x509 -noout -fingerprint -sha256
Un’impronta accanto a un host in chiaro viene rifiutata anziché ignorata, perché lascerebbe intendere una protezione che lì non può esistere.
I comandi e l’output del terminale sono in inglese ovunque, nel pannello e in queste pagine. Un solo testo, una sola verità: quello che legge qui è letteralmente ciò che il suo host le restituirà.

L’elenco di controllo della configurazione

«Attiva» significa soltanto che l’agente ha accettato le sue credenziali. Non significa che l’integrazione sia pronta a consegnare macchine. L’elenco di controllo sopra le schede mostra che cosa manca ancora e vi rimanda direttamente.

  • Credenziali: consegnate all’agente e accettate.
  • Impostazioni: le scelte non segrete di cui il provider ha bisogno, come il nodo e l’intervallo di ID macchina. Un provider che non ha nulla da scegliere salta questo passaggio invece di mostrarlo come da fare.
  • Metodo di installazione: se le macchine vengono clonate da un template oppure installate da rete.
  • Sistemi operativi: almeno un’immagine collegata, per il metodo scelto.
Nessun passaggio è una garanzia. L’elenco di controllo verifica che i campi siano compilati, non che siano corretti. A questo serve il test.

Il test della connessione

Il pulsante di test mette in coda una chiamata reale al suo sistema, eseguita dal suo agente, e mostra la risposta ricevuta. Ciò che riporta cambia da provider a provider, perché quello che un test di connessione può dire in modo sensato dipende dall’API di quel prodotto.

  • Proxmox: la versione e l’elenco dei nodi con il loro stato online.
  • DirectAdmin: la versione del pannello, il numero di account, quanti comandi la sua chiave di accesso è autorizzata a eseguire e se la connessione è cifrata. Quest’ultimo dato può stabilirlo soltanto il suo agente.
  • Webmin: se il modulo Virtualmin risponde, quanti account di hosting e quanti piani esistono e se il certificato corrisponde all’impronta indicata.
  • Pterodactyl: il numero di nodi e di server di gioco e se la chiave client funziona. Senza di essa non ci sono né accensione e spegnimento né console, ed è meglio saperlo prima del primo avvio anziché dopo.
Un test su un’integrazione le cui credenziali non sono mai state accettate mostra il motivo del rifiuto invece di essere eseguito, perché è proprio quella la risposta che si stava cercando.

Disattivare ed eliminare

La disattivazione è il passaggio intermedio sicuro: l’agente smette di ricevere comandi per quell’integrazione e tutto resta dov’è. La riattivazione la riporta su «attiva» se le credenziali erano già state accettate, altrimenti su «in attesa di credenziali», perché se funzionino ancora può dirlo soltanto un test.

Un’integrazione a cui sono collegati dei server non può essere eliminata, e il rifiuto ne indica il numero. Quei server dipendono dall’integrazione e sparirebbero senza alcun avviso, conteggio della licenza compreso.

Quando qualcosa non va

L’agente comunica un codice con dei parametri, non una frase, così il pannello può mostrare il motivo nella sua lingua. Dove è stata la controparte a dire qualcosa (un corpo HTTP del suo hypervisor, un errore del suo pannello) viene riportato qui sotto, non tradotto, perché è una citazione.

Esiste un secondo canale per i casi «riuscito, però». Un pannello che funziona su una connessione non cifrata non è un errore, e non è nemmeno uno stato, quindi compare come avviso nella scheda Panoramica finché il suo agente continua a segnalarlo.