Come Implementare DataSunrise con Modello Terraform su Azure
Precedentemente abbiamo descritto come configurare DataSunrise su Microsoft Azure utilizzando Azure Resource Manager. Dato che la configurazione dell’Alta Disponibilità richiede un’accurata implementazione delle impostazioni con tutte le dipendenze applicate correttamente, non vi è dubbio che i modelli siano utili. Senza di essi l’installazione del prodotto potrebbe richiedere molto più tempo, includendo anche la manutenzione di una soluzione affidabile e stabile per eseguire l’ambiente del prodotto. Per evitare tali inconvenienti, DataSunrise fornisce uno script dedicato per la distribuzione di infrastrutture HA all’interno del servizio Microsoft Azure basato su un modello Terraform. Il processo di distribuzione è automatizzato e non richiede ulteriori regolazioni manuali.
L’infrastruttura DataSunrise include:
- Rete Virtuale Personalizzata dove sono archiviati i subnet.
- Nodi autoscaler di DataSunrise (istanze).
- Configurazione e archiviazione degli audit basata su Azure Databases.
- Azure Load Balancer è utilizzato per distribuire il traffico tra i nodi attivi.
- ScaleSet include la configurazione del cluster failover.
- Key Vault è utilizzato per archiviare le credenziali delle risorse.
Tutti questi componenti sono collocati all’interno di una Rete Virtuale Personalizzata con il subnet specificato.
Preparazione per l’Implementazione del Modello Terraform
Alcune entità devono esistere nel Vostro ambiente Azure prima del processo di implementazione. Ecco l’elenco degli elementi richiesti:
- AZ CLI installato.
- Scaricato/Installato Terraform CLI.
- Account di archiviazione con un contenitore accessibile con la build di DataSunrise dentro o un qualunque posto da cui si può scaricare la build di DataSunrise.
Importante:
L’abbonamento del Vostro account Azure dovrebbe essere assegnato al ruolo di Proprietario per abilitare l’uso della risorsa Managed Identity per connettersi ad Azure CLI e distribuire le risorse Azure richieste per una corretta implementazione di DataSunrise. Potete controllarlo in Abbonamenti -> <vostro-abbonamento> -> Controllo accesso -> Assegnazioni di ruolo.
Distribuzione di un Modello Terraform
Registrare o selezionare un’app esistente e fornire “CLIENT_ID”, “CLIENT_SECRET”, “SUBSCRIPTION_ID”, “TENANT_ID”.
Script Terraform
Scaricare lo script Terraform dal repository per distribuire DataSunrise in una configurazione HA. Aprire il file terraform.tfvars e sostituire xxxxxxxxx con i valori che corrispondono al vostro ambiente:
Aprire la console e impostare queste variabili di ambiente:
Set ARM_CLIENT_ID="SET-CLIENT-KEY-HERE" Set ARM_CLIENT_SECRET="SET-CLIENT-SECRET-HERE" Set ARM_SUBSCRIPTION_ID="SET-SUBSCRIPTION-ID-HERE" Set ARM_TENANT_ID="SET-TENANT-ID-HERE"
Importante: su Windows, è necessario copiare il file eseguibile scaricato, terraform.exe, nella cartella scripts.
Comandi Terraform
Il comando terraform init.
Questo comando è utilizzato per inizializzare una directory di lavoro contenente i file di configurazione di Terraform. Questo è il primo comando che deve essere eseguito dopo aver configurato una nuova configurazione Terraform o averne clonata una esistente dal controllo di versione. È sicuro eseguire questo comando più volte.
Il comando terraform plan.
Questo comando crea un piano di esecuzione che consente di visualizzare in anteprima le modifiche che Terraform intende apportare alla Vostra infrastruttura. Di default, quando Terraform crea un piano, fa quanto segue:
- Legge lo stato attuale di qualsiasi oggetto remoto già esistente per assicurarsi che lo stato di Terraform sia aggiornato.
- Confronta la configurazione attuale con lo stato precedente e nota eventuali differenze.
- Propone un insieme di azioni di modifica che, se applicate, dovrebbero rendere gli oggetti remoti conformi alla configurazione.
Il comando terraform apply.
Questo comando esegue le azioni proposte in un piano Terraform.
Il comando terraform destroy.
Questo comando distrugge l’ambiente creato. Inoltre, è un modo conveniente per distruggere tutti gli oggetti remoti gestiti da una particolare configurazione Terraform. Inoltre, il comando terraform destroy consente di pulire comodamente tutti gli oggetti temporanei una volta terminato il lavoro.
Conclusione dell’Implementazione
Dopo aver eseguito terraform apply, la creazione delle risorse richiede circa 10-15 minuti, e l’ulteriore configurazione e installazione delle librerie aggiuntive richiedono circa 15-20 minuti.
Potete vedere tutte le risorse create nel gruppo di risorse creato con il nome impostato in terraform.tfvars – prefisso.
Se tutte le risorse sono state distribuite correttamente saranno elencate all’interno del gruppo di risorse:
Debugging
Se il Vostro server è inattivo per molto tempo, potete connettervi alla macchina virtuale creata tramite SSH usando il nome utente e la password specificati nel file terraform.tfvars. Dopo esservi connessi, eseguite il comando sudo cat /var/log/cloud-init-output.log e vedete il motivo dell’errata installazione del server.
Connessione alla Web UI di DataSunrise
Per connettervi alla Console Web di DataSunrise, usate l’indirizzo IP pubblico del Load balancer. Verrà automaticamente connesso a uno dei nodi configurati. Dovete anche usare questo indirizzo IP per connettervi al vostro database di destinazione tramite un proxy e per connettervi alla vostra macchina virtuale utilizzando SSH.
Il DB di Destinazione verrà automaticamente aggiunto alle impostazioni di DataSunrise: