Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Aktualisierung AMIs mithilfe von Automation und Jenkins
Wenn Ihr Unternehmen Jenkins Software in einer CI/CD-Pipeline verwendet, können Sie Automatisierung als Post-Build-Schritt hinzufügen, um Anwendungsversionen in () vorzuinstallieren. Amazon Machine Images AMIs Automatisierung ist eine Fähigkeit von. AWS Systems Manager Sie können die Jenkins Planungsfunktion auch verwenden, um Automation aufzurufen und Ihre eigene Patch-Frequenz für Ihr Betriebssystem (OS) zu erstellen.
Das folgende Beispiel zeigt, wie Automation von einem Jenkins Server aus aufgerufen wird, der entweder vor Ort oder in Amazon Elastic Compute Cloud (AmazonEC2) läuft. Für die Authentifizierung verwendet der Jenkins Server AWS Anmeldeinformationen, die auf einer IAM Richtlinie basieren, die Sie im Beispiel erstellen und an Ihr Instance-Profil anhängen.
Anmerkung
Beachten Sie bei der Konfiguration Ihrer Instance unbedingt die bewährten Jenkins Sicherheitsmethoden.
Bevor Sie beginnen
Führen Sie die folgenden Aufgaben aus, bevor Sie Automation mit konfigurierenJenkins:
-
Schließen Sie das Aktualisieren Sie ein Golden AMI mithilfe von Automation, AWS Lambda, und Parameter Store-Beispiel ab. Im folgenden Beispiel wird das in diesem Beispiel erstellte UpdateMyLatestWindowsAmiRunbook verwendet.
-
Konfigurieren Sie IAM-Rollen für die Automatisierung. Systems Manager benötigt eine Instanzprofilrolle und eine ServicerolleARN, um Automatisierungen verarbeiten zu können. Weitere Informationen finden Sie unter Einrichten der Automatisierung.
Um eine IAM Richtlinie für den Jenkins Server zu erstellen
Melden Sie sich bei der an AWS Management Console und öffnen Sie die IAM Konsole unter https://console.aws.amazon.com/iam/
. -
Wählen Sie im Navigationsbereich Policies (Richtlinien) und dann Create policy (Richtlinie erstellen).
-
Wählen Sie die JSONRegisterkarte.
-
Ersetze jeden
example resource placeholder
mit Ihren eigenen Informationen.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ssm:StartAutomationExecution", "Resource": [ "arn:aws:ssm:
region
:account ID
:document/UpdateMyLatestWindowsAmi", "arn:aws:ssm:region
:account ID
:automation-definition/UpdateMyLatestWindowsAmi:$DEFAULT" ] } ] } -
Wählen Sie Richtlinie prüfen.
-
Geben Sie auf der Seite Review Policy (Richtlinie prüfen) im Feld Name (Name) einen Namen für die Inline-Richtlinie ein, z. B.
JenkinsPolicy
. -
Wählen Sie Create Policy (Richtlinie erstellen) aus.
-
Wählen Sie im Navigationsbereich Rollen aus.
-
Wählen Sie das Instanzprofil aus, das an Ihren Jenkins Server angehängt ist.
-
Wählen Sie auf der Registerkarte Berechtigungen die Option Berechtigungen hinzufügen, Richtlinien anfügen.
-
Geben Sie im Abschnitt Andere Berechtigungsrichtlinien den Namen der Richtlinie ein, die Sie in den vorherigen Schritten erstellt haben. Zum Beispiel JenkinsPolicy.
-
Aktivieren Sie das Kontrollkästchen neben Ihrer Richtlinie, und wählen Sie Richtlinien anfügen aus.
Verwenden Sie das folgende Verfahren, um das AWS CLI auf Ihrem Jenkins Server zu konfigurieren.
Um den Jenkins Server für die Automatisierung zu konfigurieren
-
Stellen Sie mit Ihrem bevorzugten Browser eine Connect zu Ihrem Jenkins Server über Port 8080 her, um auf die Verwaltungsschnittstelle zuzugreifen.
-
Geben Sie das Passwort ein, welches Sie unter
/var/lib/jenkins/secrets/initialAdminPassword
finden. Um Ihr Kennwort anzuzeigen, führen Sie den folgenden Befehl aus.sudo cat /var/lib/jenkins/secrets/initialAdminPassword
-
Das Jenkins Installationsskript leitet Sie zur Jenkins Seite Anpassen weiter. Wählen Sie Installieren von empfohlenen Plugins.
-
Sobald die Installation abgeschlossen ist, wählen Sie Administratoranmeldedaten, dann Anmeldeinformationen speichern und anschließend Verwendung starten ausJenkins.
-
Wählen Sie im linken Navigationsbereich Verwalten Jenkins und dann Plugins verwalten aus.
-
Wählen Sie die Registerkarte Available (Verfügbar) und geben Sie dann
Amazon EC2 plugin
ein. -
Aktivieren Sie das Kontrollkästchen für
Amazon EC2 plugin
und klicken Sie dann auf Installation ohne Neustart. -
Nach abgeschlossener Installation wählen Sie Zurück zur oberen Seite.
-
Wählen Sie Verwalten Jenkins und anschließend Knoten und Clouds verwalten aus.
-
Wählen Sie im Abschnitt Clouds konfigurieren die Option Neue Cloud hinzufügen und dann Amazon ausEC2.
-
Geben Sie Ihre Daten in die verbleibenden Felder ein. Stellen Sie sicher, dass Sie die Option EC2Instanzprofil verwenden, um Anmeldeinformationen zu erhalten ausgewählt haben.
Gehen Sie wie folgt vor, um Ihr Jenkins Projekt so zu konfigurieren, dass Automation aufgerufen wird.
Um Ihren Jenkins Server so zu konfigurieren, dass er Automation aufruft
-
Öffnen Sie die Jenkins Konsole in einem Webbrowser.
-
Wählen Sie das Projekt, das Sie mit Automation konfigurieren möchten, und wählen Sie dann Configure (Konfigurieren).
-
Wählen Sie auf der Registerkarte Build Add Build Step (Build-Schritt hinzufügen) aus.
-
Wählen Sie je nach Betriebssystem Execute shell (Shell ausführen) oder Execute Windows batch command (Windows-Batchbefehl ausführen).
-
Führen Sie im Feld Befehl einen AWS CLI Befehl wie den folgenden aus. Ersetzen Sie jeden
example resource placeholder
mit Ihren eigenen Informationen.aws ssm start-automation-execution \ --document-name
runbook name
\ --regionAWS-Region of your source AMI
\ --parametersrunbook parameters
Der folgende Beispielbefehl verwendet das UpdateMyLatestWindowsAmiRunbook und den Systems Manager Manager-Parameter, die in
latestAmi
Aktualisieren Sie ein Golden AMI mithilfe von Automation, AWS Lambda, und Parameter Store erstellt wurden.aws ssm start-automation-execution \ --document-name UpdateMyLatestWindowsAmi \ --parameters \ "sourceAMIid='{{ssm:latestAmi}}'" --region
region
JenkinsIn sieht der Befehl wie das Beispiel im folgenden Screenshot aus.
-
Wählen Sie im Jenkins Projekt Build Now aus. Jenkinsgibt eine Ausgabe zurück, die dem folgenden Beispiel ähnelt.