Come Eseguire una Modifica a Cloud Formation
DataSunrise fornisce uno script dedicato per il deployment dell’infrastruttura HA all’interno di Amazon Web Services basato su Amazon Cloud Formation Service. Il seguente template crea tutte le risorse necessarie per supportare l’ambiente HA di DataSunrise (i server EC2 sotto il gruppo AutoScaling, Audit Configurazionale e database Dictionary RDS, il Load Balancer, ecc.) e può essere personalizzato in base alle esigenze del cliente.
In questo articolo, mostreremo come il template Cloud Formation può essere modificato per supportare la configurazione personalizzata. Verranno presentati 2 scenari.
Scenario 1.
Rilasciamo l’aggiornamento minore di DataSunrise e AMI settimanalmente per mantenere la nostra soluzione aggiornata e ottimizzata al massimo. Ad esempio, aggiornare i driver ODBC, correggere alcune vulnerabilità del database, aggiornare le librerie necessarie, ecc. Pertanto potrebbe essere necessario per i nostri clienti aggiornare le AMI che stanno attualmente utilizzando alla versione più recente.
Questo può essere fatto tramite l’editing manuale del template. Di seguito sono fornite le istruzioni dettagliate:
- Aprire il file del template e procedere alla sezione RegionMap:
Foto 1. Il file del template
- Scegliere la regione in cui il proprio ambiente è distribuito.
- Procedere al nostro repository ufficiale GitHub repository
Aggiorniamo i file degli script lì ogni settimana una volta rilasciata la nuova versione di DataSunrise.
- Procedere anche alla sezione RegionMap e alla regione in cui le risorse sono distribuite:
Foto 2. Il repository DataSunrise
- È possibile aggiornare l’ID AMI solo per la regione che si sta utilizzando. Pertanto, copiare l’ID AMI per la regione richiesta.
- Procedere al proprio file del template attuale e sostituire l’ID AMI attuale per la regione richiesta con il valore copiato dal nostro repository GitHub.
- Andare alla pagina AWS CF e scegliere l’opzione per aggiornare il proprio stack CF.
- Selezionare Sostituire il template corrente e caricare la versione modificata del template (passo 6). Fare clic su Successivo.
Ora è possibile verificare se il processo di aggiornamento è stato completato con successo. Ad esempio, se era necessario aggiornare i driver ODBC è possibile eseguire un test di connessione al proprio database di destinazione per verificare se i driver aggiornati sono stati utilizzati:
Configurazione -> Database -> Il_vostro_database_di_destinazione -> Test di connessione.

Foto 3. Test di connessione
Se viene utilizzata la nuova versione del driver ODBC, l’aggiornamento dell’AMI è stato completato con successo.
Altrimenti, è possibile ricontrollare i propri passaggi o contattarci per ulteriori indagini.
Scenario 2.
A volte i nostri clienti devono installare alcuni strumenti aggiuntivi, ad esempio i driver ODBC, modificare la configurazione del server o applicare le ultime correzioni infrastrutturali. Questo può essere fatto modificando la parte UserData del file del template CF.
Vediamo come può essere fatto. Configureremo un driver ODBC DB2 che non è incluso di default nelle nostre immagini AWS.
Nel template CF nella sezione UserData, vengono importati diversi script che contengono tutte le impostazioni configurazionali necessarie:

Foto 4. Template CF con script
Ognuno di essi configura il proprio set di componenti ambientali:
- vm-creads.sh – questo script è necessario per recuperare e assegnare un ruolo IAM alla macchina EC2 corrente.
- cf-params.sh – questo script è utilizzato per trasferire i valori dei parametri delle risorse dello stack CF nello script in modo che possano essere facilmente utilizzati durante il flusso di lavoro dello script.
- ds-manip.sh – questo script è necessario per alcune operazioni amministrative come concedere permessi all’utente DataSunrise su qualsiasi file, accedere/disconnettersi dalla console web DataSunrise, ecc.
- ds-setup.sh – questo script contiene tutte le funzioni necessarie per configurare con successo DataSunrise. Ad esempio, impostare la password amministrativa, configurazione del database di dizionario, configurazione del proxy, e così via.
- aws-ds-setup.sh – questo script configura le risorse basate su AWS come le metriche CloudWatch e il caricamento dei log.
- pre-setup.sh – questo script è necessario per preparare l’ambiente per l’installazione di DataSunrise: scaricare i pacchetti necessari, compilare, impostare una licenza per l’applicazione DataSunrise, ecc.
Nel caso odierno, installeremo il driver ODBC DB2 che verrà utilizzato durante l’inizializzazione dell’istanza del database di destinazione. Pertanto apporteremo le modifiche al file pre-setup.sh.
Nello scenario, i comandi necessari sono presi dalla documentazione ufficiale di DataSunrise User Guide
- Inseriamo i comandi necessari nel file pre-setup.sh.
- Ma prima, dobbiamo caricare il driver ODBC DB2 nel bucket S3. Pertanto, scaricare i driver dal sito ufficiale. Sarà necessario accedere al proprio account IBM o crearne uno nuovo. Una volta scaricato il driver, caricarlo nel bucket S3, quello specificato come BackupS3BucketName durante il deployment dello script Cloud Formation.
- Ora, incolliamo i comandi necessari come mostrato di seguito:
Foto 5. Comandi nel file pre-setup.sh
Ecco i comandi:
logBeginAct "Install DB2 ODBC driver..." aws s3 cp "s3://$BackupS3BucketName/ibm_data_server_driver_for_odbc_cli_linuxx64_v11.1.tar.gz" ibm_data_server_driver_for_odbc_cli_linuxx64_v11.1.tar.gz --only-show-errors tar -xfv ibm_data_server_driver_for_odbc_cli_linuxx64_v11.1.tar.gz echo "[DB2]" | sudo tee -a /etc/odbcinst.ini echo "Driver = /home/user/clidriver/lib/libdb2o.so" | sudo tee -a /etc/odbcinst.ini echo "Description = DB2 Driver" | sudo tee -a /etc/odbcinst.ini echo "FileUsage = 1" | sudo tee -a /etc/odbcinst.ini echo "DontDLClose = 1" | sudo tee -a /etc/odbcinst.ini RETVAL=$? logEndAct "Install DB2 ODBC driver result - $RETVAL"
- Per monitorare i progressi dell’installazione del driver ODBC, è possibile utilizzare il nostro meccanismo di logging:
- utilizzare la funzione logBeginAct per iniziare a loggare e separare una parte del processo di installazione da un’altra:
la riga nel template: logBeginAct “Install DB2 ODBC driver…”
l’output nel file cloud-init-output.txt: [DS
]: Install DB2 ODBC driver… * Il file cloud-init-output.txt è un file che memorizza tutti i messaggi di log dallo script di deployment di DataSunrise Cloud Formation. Si trova in /var/log/messages/. Può essere controllato ogni volta che è necessario risolvere dei problemi nel deployment dello stack di cloud formation.
- una volta aperta la parte logBeginAct, al suo interno è possibile utilizzare la funzione log per registrare qualsiasi informazione o stato nel file cloud-init-output.txt.
Non lo useremo nella nostra parte incollata ma si può dare un’occhiata ad un altro esempio:
Foto 6. Esempio della funzione log
- Per concludere la parte di logging si può inserire:
logEndAct “Install DB2 ODBC driver result – $RETVAL”
Foto 7. Esempio di $RETVAL
* La variabile RETVAL è utilizzata per controllare il codice di uscita dell’esecuzione del comando precedente.
RETVAL=$?
- utilizzare la funzione logBeginAct per iniziare a loggare e separare una parte del processo di installazione da un’altra:
- Salvare il file. Andare alla pagina AWS CF e scegliere l’opzione per aggiornare il proprio stack CF.
- Selezionare Sostituire il template corrente e caricare la versione modificata del template (passo 2). Fare clic su Successivo.
- Riavviare l’applicazione ed eseguire il test di connessione per assicurarsi che il driver DB2 venga utilizzato ora:

Foto 8. Console Web DataSunrise
La personalizzazione del template è stata completata con successo. Il template di cloud formation può essere personalizzato anche per ulteriori casi d’uso. La maggior parte delle modifiche vengono solitamente effettuate alla sezione degli script UserData. Non esitare a contattarci per assistenza se hai bisogno di aiuto con la personalizzazione di Cloud Formation.