Cloud Formation Anpassung
DataSunrise bietet ein dediziertes Skript für die Bereitstellung von HA-Infrastruktur innerhalb von Amazon Web Services auf Basis von 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, 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 die Cloud Formation-Vorlage angepasst werden kann, um die benutzerdefinierte Konfiguration zu unterstützen. Es werden zwei Szenarien vorgestellt.
Szenario 1.
Wir veröffentlichen das wöchentliche DataSunrise- und AMIs-Update, um unsere Lösung auf dem neuesten Stand und optimal zu halten. Zum Beispiel, um ODBC-Treiber zu aktualisieren, einige Datenbank-Schwachstellen zu beheben, die notwendigen Bibliotheken zu aktualisieren usw. Daher könnte es für unsere Kunden erforderlich sein, die derzeit verwendeten AMIs auf die neueste Version zu aktualisieren.
Dies kann durch manuelle Bearbeitung der Vorlage erfolgen. Die detaillierte Anleitung wird unten bereitgestellt:
- Öffnen Sie die Vorlagendatei und gehen Sie zum Abschnitt RegionMap:
- Wählen Sie die Region aus, in der Ihre Umgebung bereitgestellt wird.
- Gehen Sie zu unserem offiziellen GitHub-Repository
Wir aktualisieren die Skriptdateien dort jede Woche, sobald die neue DataSunrise-Version verfügbar ist.
- Genauso gehen Sie zum Abschnitt RegionMap und der Region, wo Ihre Ressourcen bereitgestellt werden:
- 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 Wert, den Sie aus unserem GitHub-Repository kopiert haben.
- Gehen Sie zur AWS CF-Seite und wählen Sie die Option zur Aktualisierung Ihres CF-Stacks.
- Wählen Sie “Aktuelle Vorlage ersetzen” und laden Sie die bearbeitete Version Ihrer Vorlage hoch (Schritt 6). Klicken Sie auf Weiter.
Jetzt können Sie überprüfen, ob der Aktualisierungsprozess erfolgreich abgeschlossen wurde. Beispielsweise, wenn es erforderlich war, ODBC-Treiber zu aktualisieren, können Sie eine Testverbindung zu Ihrer Zieldatenbank durchführen, um zu überprüfen, ob die aktualisierten Treiber verwendet wurden:
Konfiguration -> Datenbanken -> Ihre_Zieldatenbank -> 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 müssen unsere Kunden zusätzliche Werkzeuge installieren, beispielsweise ODBC-Treiber, die Konfiguration des Servers ändern oder die neuesten Infrastrukturfixes anwenden. Dies kann durch Ändern des UserData-Teils der CF-Vorlagendatei erfolgen.
Sehen wir uns an, wie dies gemacht werden kann. Wir werden einen DB2-ODBC-Treiber konfigurieren, der standardmäßig nicht in unserer AWS-Images enthalten ist.
In der CF-Vorlage im UserData-Abschnitt werden mehrere Skripte importiert, die alle notwendigen Konfigurationseinstellungen enthalten:
Jedes von ihnen richtet eine eigene Reihe von Umgebungskomponenten ein:
- vm-creads.sh – Dieses Skript wird benötigt, um eine IAM-Rolle auf 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 sie während des Arbeitsablaufs des Skripts leicht verwendet werden können.
- ds-manip.sh – Dieses Skript wird für einige Verwaltungsaufgaben verwendet, z. B. das Erteilen von Berechtigungen für den DataSunrise-Benutzer zu beliebigen Dateien, das Ein- und Ausloggen in die DataSunrise-Webkonsole usw.
- ds-setup.sh – Dieses Skript enthält alle notwendigen Funktionen, die erforderlich sind, um DataSunrise erfolgreich zu konfigurieren. Zum Beispiel das Einrichten des Admin-Passworts, die Konfiguration der Wörterbuchdatenbank, die Proxyeinstellungen und so weiter.
- aws-ds-setup.sh – Dieses Skript richtet AWS-basierte Ressourcen wie CloudWatch-Metriken und das Hochladen von Protokollen ein.
- pre-setup.sh – Dieses Skript ist erforderlich, um die Umgebung für die Installation von DataSunrise vorzubereiten: Herunterladen der notwendigen Pakete, Builds, Einrichten einer Lizenz für die DataSunrise-Anwendung usw.
In unserem heutigen Fall werden wir den DB2-ODBC-Treiber installieren, der während der Initialisierung der Zieldatenbankinstanz verwendet wird. Daher nehmen wir die Änderungen an der Datei pre-setup.sh vor.
In unserem Szenario werden die erforderlichen Befehle aus der offiziellen DataSunrise-Dokumentation Benutzerhandbuch entnommen:
- Lassen Sie uns die erforderlichen Befehle in die Datei pre-setup.sh einfügen.
- Aber zuerst müssen wir den DB2-ODBC-Treiber in den S3-Bucket hochladen. Bitte laden Sie die Treiber von der offiziellen Website herunter. Sie müssen sich in Ihrem IBM-Konto anmelden oder ein neues Konto erstellen. Nachdem 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.
- Nun lassen Sie uns die erforderlichen Befehle wie unten gezeigt einfügen:
Hier sind die Befehle:
logBeginAct "Installieren des DB2-ODBC-Treibers..." 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 bei 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 Teil des Installationsprozesses vom anderen zu trennen:
Die Zeile in der Vorlage: logBeginAct “Installieren des DB2-ODBC-Treibers…”
Die Ausgabe in der Datei cloud-init-output.txt: [DS
]: Installieren des DB2-ODBC-Treibers… * Die Datei cloud-init-output.txt ist eine Datei, die alle Log-Meldungen aus der DataSunrise-Cloud-Formation-Skriptbereitstellung speichert. Sie kann in /var/log/messages/ gefunden werden. Sie können die Datei jederzeit überprüfen, wenn Sie Fehler bei Ihrer Cloud-Formation-Stack-Bereitstellung beheben müssen.
- Sobald Sie den logBeginAct-Teil geöffnet haben, können Sie innerhalb dieses Teils die log-Funktion verwenden, um beliebige Informationen oder Statusmeldungen in die Datei cloud-init-output.txt zu loggen.
Wir werden es in unserem eingefügten Teil nicht verwenden, aber Sie können sich ein weiteres Beispiel ansehen:
- Um den Logging-Teil zu beenden, können Sie eingeben:
logEndAct “Ergebnis der Installation des DB2-ODBC-Treibers – $RETVAL”
* Die Variable RETVAL wird verwendet, um den Exit-Code der vorherigen Befehlsausführung zu überprüfen.
RETVAL=$?
- Verwenden Sie die Funktion logBeginAct, um das Logging 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 zur Aktualisierung Ihres CF-Stacks.
- Wählen Sie “Aktuelle Vorlage ersetzen” und laden Sie die bearbeitete Version Ihrer Vorlage hoch (Schritt 2). Klicken Sie auf Weiter.
- Starten Sie die Anwendung neu und führen Sie die Testverbindung durch, um sicherzustellen, dass nun der DB2-Treiber verwendet wird:
Die Anpassung der Vorlage wurde erfolgreich abgeschlossen. Die Cloud-Formation-Vorlage kann auch für weitere Anwendungsfälle angepasst werden. Die meisten Änderungen werden normalerweise im UserData-Skriptteil vorgenommen. Kontaktieren Sie uns gerne, wenn Sie Hilfe bei der Anpassung von Cloud Formation benötigen.