Wie man eine Cloud Formation Anpassung durchführt
DataSunrise stellt ein spezielles Skript zur Bereitstellung der HA-Infrastruktur innerhalb von Amazon Web Services basierend auf dem Amazon Cloud Formation Service zur Verfügung. Das folgende Template erstellt alle erforderlichen Ressourcen zur Unterstützung der DataSunrise HA-Umgebung (die EC2-Server in der AutoScaling-Gruppe, die Konfigurationsaudit- und Dictionary RDS-Datenbanken, den Load Balancer usw.) und kann an die Bedürfnisse des Kunden angepasst werden.
In diesem Artikel zeigen wir, wie das Cloud Formation Template modifiziert werden kann, um die kundenspezifische Konfiguration zu unterstützen. Zwei Szenarien werden vorgestellt.
Szenario 1.
Wir veröffentlichen wöchentlich kleinere Updates von DataSunrise und den AMIs, um unsere Lösung stets aktuell und optimal zu halten. Beispielsweise werden ODBC-Treiber aktualisiert, einige Datenbank-Sicherheitslücken geschlossen, notwendige Bibliotheken aktualisiert usw. Daher kann es erforderlich sein, dass unsere Kunden die momentan verwendeten AMIs auf die neueste Version aktualisieren müssen.
Dies kann durch manuelle Bearbeitung des Templates erfolgen. Eine detaillierte Anleitung finden Sie unten:
- Öffnen Sie die Template-Datei und navigieren Sie zum Abschnitt RegionMap:

Bild 1. Die Template-Datei
- Wählen Sie die Region, in der Ihre Umgebung bereitgestellt ist.
- Wechseln Sie zu unserem offiziellen GitHub Repository
Wir aktualisieren dort die Skriptdateien jede Woche, sobald das neue DataSunrise-Update verfügbar ist.
- Gehen Sie ebenfalls zum Abschnitt RegionMap und wählen Sie die Region, in der Ihre Ressourcen bereitgestellt sind:

Bild 2. Das DataSunrise Repository
- Sie können die AMI-ID nur für die Region aktualisieren, die Sie verwenden. Kopieren Sie daher die AMI-ID für die erforderliche Region.
- Öffnen Sie Ihre aktuelle Template-Datei und ersetzen Sie die bestehende AMI-ID für die benötigte Region durch den aus unserem GitHub Repository kopierten Wert.
- Gehen Sie zur AWS CF-Seite und wählen Sie die Option, Ihren CF-Stack zu aktualisieren.
- Wählen Sie “Aktuelles Template ersetzen” und laden Sie die bearbeitete Version Ihres Templates (Schritt 6) hoch. Klicken Sie auf “Weiter”.
Nun können Sie überprüfen, ob der Aktualisierungsprozess erfolgreich abgeschlossen wurde. Falls beispielsweise die ODBC-Treiber aktualisiert werden mussten, können Sie eine Testverbindung zu Ihrer Zieldatenbank durchführen, um zu überprüfen, ob die aktualisierten Treiber verwendet werden:
Konfiguration -> Datenbanken -> Ihre_Zieldatenbank -> Verbindung testen.

Bild 3. Testverbindung
Wenn die neue Version des ODBC-Treibers verwendet wird, ist das AMI-Update erfolgreich abgeschlossen.
Andernfalls können Sie Ihre Schritte erneut überprüfen oder uns für weitere Untersuchungen kontaktieren.
Szenario 2.
Manchmal benötigen unsere Kunden die Installation zusätzlicher Tools, beispielsweise ODBC-Treiber, Änderungen an der Serverkonfiguration oder das Einspielen der neuesten Infrastruktur-Fixes. Dies kann durch Modifikation des UserData-Teils der CF-Template-Datei erfolgen.
Schauen wir uns an, wie dies durchgeführt werden kann. Wir werden einen DB2 ODBC-Treiber konfigurieren, der standardmäßig nicht in unseren AWS-Images enthalten ist.
Im CF-Template werden im Abschnitt UserData mehrere Skripte importiert, die alle notwendigen Konfigurationseinstellungen enthalten:

Bild 4. CF-Template mit Skripten
Jedes dieser Skripte richtet sein eigenes Set an Umgebungs-Komponenten ein:
- vm-creads.sh – dieses Skript wird benötigt, um eine IAM-Rolle für die aktuelle EC2-Maschine abzurufen und anzuhängen.
- cf-params.sh – dieses Skript wird verwendet, um die Werte der CF-Stack-Ressourcenparameter in das Skript zu übertragen, sodass diese während des Skript-Ablaufs einfach verwendet werden können.
- ds-manip.sh – dieses Skript ist für einige administrative Operationen erforderlich, wie das Gewähren von Berechtigungen für den Datasunrise-Benutzer für beliebige Dateien, das An- und Abmelden in der Datasunrise-Webkonsole usw.
- ds-setup.sh – dieses Skript enthält alle notwendigen Funktionen, die benötigt werden, um DataSunrise erfolgreich zu konfigurieren. Beispielsweise das Einrichten des Administratorpassworts, die Konfiguration der Dictionary-Datenbank, Proxy-Einstellungen usw.
- aws-ds-setup.sh – dieses Skript richtet AWS-basierte Ressourcen wie CloudWatch-Metriken und den Log-Upload ein.
- pre-setup.sh – dieses Skript ist notwendig, um die Umgebung für die DataSunrise-Installation vorzubereiten: erforderliche Pakete werden heruntergeladen, Builds erstellt, eine Lizenz für die DataSunrise-Anwendung wird eingerichtet usw.
Im heutigen Fall werden wir den DB2 ODBC-Treiber installieren, der während der Initialisierung der Zieldatenbankinstanz verwendet wird. Daher werden wir die Änderungen in der Datei pre-setup.sh vornehmen.
In unserem Szenario werden die notwendigen Befehle aus der offiziellen DataSunrise-Dokumentation entnommen (Benutzerhandbuch).
- Fügen Sie die notwendigen Befehle in die Datei pre-setup.sh ein.
- Zunächst müssen Sie den DB2 ODBC-Treiber in den S3-Bucket hochladen. Bitte laden Sie dazu die Treiber von der offiziellen Website herunter. Sie müssen sich in Ihr IBM-Konto einloggen oder ein neues Konto erstellen. Sobald der Treiber heruntergeladen wurde, laden Sie ihn in den S3-Bucket hoch, den Sie während der Bereitstellung des Cloud Formation Skripts als BackupS3BucketName angegeben haben.
- Anschließend fügen Sie die notwendigen Befehle ein, wie unten gezeigt:

Bild 5. Befehle in der Datei pre-setup.sh
Hier sind die Befehle:
logBeginAct "Installiere DB2 ODBC-Treiber..." 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 Treiber" | 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 "Ergebnis der Installation des DB2 ODBC-Treibers - $RETVAL"
- Um den Fortschritt der Installation des ODBC-Treibers zu überwachen, können Sie unseren Logging-Mechanismus verwenden:
- Verwenden Sie die Funktion logBeginAct, um das Logging zu starten und einen Abschnitt des Installationsprozesses vom anderen zu trennen:
Die Zeile im Template: logBeginAct “Installiere DB2 ODBC-Treiber…”
Die Ausgabe in der cloud-init-output.txt Datei: [DS <instance-id>]: Installiere DB2 ODBC-Treiber…
* Die Datei cloud-init-output.txt speichert alle Log-Meldungen des DataSunrise Cloud Formation Skripts. Sie befindet sich in /var/log/messages/. Sie können diese Datei zur Fehlerbehebung Ihrer Cloud Formation Stack-Bereitstellung heranziehen.
- Innerhalb des logBeginAct-Abschnitts können Sie die Funktion log verwenden, um beliebige Informationen oder Statusmeldungen in die cloud-init-output.txt Datei zu protokollieren.
Wir werden diese Funktion in dem eingefügten Abschnitt nicht verwenden, aber Sie können sich ein weiteres Beispiel ansehen:

Bild 6. Beispiel der log-Funktion
- Um den Logging-Abschnitt abzuschließen, geben Sie ein:
logEndAct “Ergebnis der Installation des DB2 ODBC-Treibers – $RETVAL”

Bild 7. Beispiel von $RETVAL
* Die Variable RETVAL wird verwendet, um den Exit-Code des vorherigen Befehls zu überprüfen.
RETVAL=$?
- Verwenden Sie die Funktion logBeginAct, um das Logging zu starten und einen Abschnitt des Installationsprozesses vom anderen zu trennen:
- Speichern Sie die Datei. Gehen Sie zur AWS CF-Seite und wählen Sie die Option, Ihren CF-Stack zu aktualisieren.
- Wählen Sie “Aktuelles Template ersetzen” und laden Sie die bearbeitete Version Ihres Templates (Schritt 2) hoch. Klicken Sie auf “Weiter”.
- Starten Sie die Anwendung neu und führen Sie eine Testverbindung durch, um sicherzustellen, dass der DB2-Treiber nun verwendet wird:

Bild 8. DataSunrise Webkonsole
Die Anpassung des Templates wurde erfolgreich abgeschlossen. Das Cloud Formation Template kann auch für weitere Anwendungsfälle angepasst werden. Die meisten Modifikationen erfolgen in der Regel im Abschnitt der UserData-Skripte. Zögern Sie nicht, uns zu kontaktieren, wenn Sie Unterstützung bei der Anpassung von Cloud Formation benötigen.