Wie man Änderungen an Cloud Formation durchführt
DataSunrise bietet ein dediziertes Skript für die Bereitstellung von HA-Infrastrukturen innerhalb von Amazon Web Services basierend auf dem Amazon Cloud Formation Service. Die folgende Vorlage erstellt alle notwendigen Ressourcen zur Unterstützung der DataSunrise HA-Umgebung (die EC2-Server unter der AutoScaling-Gruppe, die Konfigurations- und Wörterbuch-Datenbanken in RDS, den Load Balancer, etc.) und kann nach den Bedürfnissen des Kunden angepasst werden.
In diesem Artikel zeigen wir, wie die Cloud Formation-Vorlage geändert werden kann, um eine angepasste Konfiguration zu unterstützen. Es werden zwei Szenarien vorgestellt.
Szenario 1.
Wir veröffentlichen wöchentlich neuere DataSunrise und AMI-Updates, um unsere Lösung auf dem neuesten Stand und am besten optimiert zu halten. Zum Beispiel die Aktualisierung von ODBC-Treibern, das Beheben von Datenbank-Schwachstellen, das Aktualisieren notwendiger Bibliotheken, etc. Daher könnte es erforderlich sein, dass unsere Kunden die von ihnen aktuell verwendeten AMIs auf die neueste Version aktualisieren müssen.
Dies kann durch manuelle Bearbeitung der Vorlage geschehen. Detaillierte Anweisungen sind unten aufgeführt:
- Öffnen Sie die Vorlagendatei und gehen Sie zum RegionMap-Abschnitt:
Abbildung 1. Die Vorlagendatei
- Wählen Sie die Region aus, in der Ihre Umgebung bereitgestellt ist.
- Gehen Sie auch in unser offizielles GitHub-Repository
Wir aktualisieren dort jede Woche die Skriptdateien, sobald die neue DataSunrise-Version verfügbar ist.
- Gehen Sie ebenfalls zum RegionMap-Abschnitt und der Region, in der Ihre Ressourcen bereitgestellt sind:
Abbildung 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.
- Gehen Sie zu Ihrer aktuellen Vorlagendatei und ersetzen Sie die aktuelle AMI-ID für die erforderliche Region durch den aus unserem GitHub-Repository kopierten Wert.
- Gehen Sie zur AWS CF-Seite und wählen Sie die Option aus, um Ihren CF-Stack zu aktualisieren.
- Wählen Sie Aktuelle Vorlage ersetzen und laden Sie die bearbeitete Version Ihrer Vorlage hoch (siehe Schritt 6). Klicken Sie auf Weiter.
Jetzt können Sie überprüfen, ob der Aktualisierungsprozess erfolgreich abgeschlossen wurde. Zum Beispiel, wenn es erforderlich war, die ODBC-Treiber zu aktualisieren, können Sie eine Testverbindung zu Ihrer Ziel-Datenbank herstellen, um zu überprüfen, ob die aktualisierten Treiber verwendet wurden:
Konfiguration -> Datenbanken -> Ihre_Ziel_Datenbank -> Verbindung testen.

Abbildung 3. Verbindung testen
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 zusätzliche Werkzeuge, z.B. ODBC-Treiber, ändern die Serverkonfiguration oder wenden die neuesten infrastrukturellen Korrekturen an. Dies kann durch Ändern des UserData-Teils der CF-Vorlagendatei geschehen.
Wir sehen uns an, wie dies gemacht wird. Wir werden einen DB2 ODBC-Treiber konfigurieren, der nicht standardmäßig in unseren AWS-Images enthalten ist.
In der CF-Vorlage im UserData-Abschnitt werden mehrere Skripte importiert, die alle notwendigen Konfigurationseinstellungen enthalten:

Abbildung 4. CF-Vorlage mit Skripten
Jedes richtet seine eigenen Umgebungs-Komponenten ein:
- vm-creads.sh – dieses Skript ist erforderlich, um eine IAM-Rolle an die aktuelle EC2-Maschine anzuhängen.
- cf-params.sh – dieses Skript wird verwendet, um die Werte der CF-Stack-Ressourcen-Parameter in das Skript zu übertragen, sodass sie während des Skript-Workflows leicht verwendet werden können.
- ds-manip.sh – dieses Skript ist für einige administrative Operationen erforderlich, wie das Gewähren von Berechtigungen an den Datasunrise-Benutzer für Dateien, das An- und Abmelden an der Datasunrise-Webkonsole, etc.
- ds-setup.sh – dieses Skript enthält alle notwendigen Funktionen, die erforderlich sind, um DataSunrise erfolgreich zu konfigurieren. Zum Beispiel die Einrichtung des Admin-Passworts, die Konfiguration der Wörterbuch-Datenbank, die Proxy-Konfiguration, etc.
- aws-ds-setup.sh – dieses Skript konfiguriert AWS-basierte Ressourcen wie CloudWatch-Metriken und das Hochladen von Logs.
- pre-setup.sh – dieses Skript ist notwendig, um die Umgebung für die Installation von DataSunrise vorzubereiten: notwendige Pakete herunterladen, Builds erstellen, eine Lizenz für die DataSunrise-Anwendung einrichten, etc.
In diesem Fall werden wir den DB2 ODBC-Treiber installieren, der während der Initialisierung der Ziel-Datenbankinstanz verwendet wird. Daher werden wir die Änderungen an der Datei pre-setup.sh vornehmen.
In unserem Szenario werden die notwendigen Befehle aus der offiziellen DataSunrise-Dokumentation Benutzerhandbuch übernommen
- Lassen Sie uns die notwendigen Befehle in die Datei pre-setup.sh einfügen.
- Aber zuerst müssen wir den DB2 ODBC-Treiber in das S3-Bucket hochladen. Laden Sie also die Treiber von der offiziellen Website herunter. Sie müssen sich bei Ihrem IBM-Konto anmelden oder ein neues Konto erstellen. Sobald der Treiber heruntergeladen ist, laden Sie ihn in das S3-Bucket hoch, das Sie bei der Bereitstellung des Cloud-Formation-Skripts als BackupS3BucketName angegeben haben.
- Jetzt lassen Sie uns die notwendigen Befehle wie unten gezeigt einfügen:
Abbildung 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 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 "Installiere DB2 ODBC-Treiber Ergebnis - $RETVAL"
- Um den Fortschritt bei der Installation des ODBC-Treibers zu überwachen, können Sie unser Protokollierungssystem verwenden:
- verwenden Sie die Funktion logBeginAct, um die Protokollierung zu starten und einen Teil des Installationsprozesses vom anderen zu trennen:
die Zeile in der Vorlage: logBeginAct “Installiere DB2 ODBC-Treiber…”
die Ausgabe in der Datei cloud-init-output.txt: [DS
]: Installiere DB2 ODBC-Treiber… * Die Datei cloud-init-output.txt ist eine Datei, die alle Log-Meldungen vom DataSunrise CloudFormation-Skript-Bereitstellung speichert. Sie kann unter /var/log/messages/ gefunden werden. Sie können sie überprüfen, wann immer Sie Ihren CloudFormation-Stack-Bereitstellung überprüfen müssen.
- sobald Sie den logBeginAct-Teil geöffnet haben, können Sie innerhalb dieses Teils die Funktion log verwenden, um beliebige Informationen oder Status in die Datei cloud-init-output.txt zu protokollieren.
Wir werden sie in unserem eingefügten Teil nicht verwenden, aber Sie können sich ein weiteres Beispiel ansehen:
Abbildung 6. Beispiel für die Log-Funktion
- Um den Protokollierungsteil abzuschließen, können Sie eingeben:
logEndAct “Installiere DB2 ODBC-Treiber Ergebnis – $RETVAL”
Abbildung 7. Beispiel für $RETVAL* Die RETVAL-Variable wird verwendet, um den Exitcode der vorherigen Befehlsausführung zu prüfen.
RETVAL=$?
- verwenden Sie die Funktion logBeginAct, um die Protokollierung zu starten und einen Teil des Installationsprozesses vom anderen zu trennen:
- Speichern Sie die Datei. Gehen Sie zur AWS CF-Seite und wählen Sie die Option aus, um Ihren CF-Stack zu aktualisieren.
- Wählen Sie Aktuelle Vorlage ersetzen und laden Sie die bearbeitete Version Ihrer Vorlage hoch (siehe Schritt 2). Klicken Sie auf Weiter.
- Starten Sie die Anwendung neu und führen Sie den Verbindungstest durch, um sicherzustellen, dass der DB2-Treiber jetzt verwendet wird:

Die Anpassung der Vorlage wurde erfolgreich abgeschlossen. Die CloudFormation-Vorlage kann auch für weitere Anwendungsfälle angepasst werden. Die meisten Änderungen werden normalerweise im Abschnitt der UserData-Skripte vorgenommen. Zögern Sie nicht, uns zu kontaktieren, wenn Sie Hilfe bei der CloudFormation-Anpassung benötigen.