Aktualisieren AMIs mithilfe von Automatisierung und Jenkins - AWS Systems Manager

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.

Aktualisieren AMIs mithilfe von Automatisierung und Jenkins

Wenn Ihre Organisation verwendet Jenkins Software in einer CI/CD-Pipeline, Sie können Automatisierung als Post-Build-Schritt hinzufügen, um Anwendungsversionen vorzuinstallieren Amazon Machine Images (AMIs). Automatisierung ist ein Werkzeug in AWS Systems Manager. Sie können auch die verwenden Jenkins Planungsfunktion, um Automation aufzurufen und Ihre eigene Patch-Frequenz für Ihr Betriebssystem (OS) zu erstellen.

Das folgende Beispiel zeigt, wie Sie Automation von einem aufrufen Jenkins Server, der entweder vor Ort oder in Amazon Elastic Compute Cloud (Amazon EC2) läuft. Für die Authentifizierung ist der Jenkins Der Server verwendet AWS Anmeldeinformationen, die auf einer IAM-Richtlinie basieren, die Sie im Beispiel erstellen und an Ihr Instanzprofil anhängen.

Anmerkung

Achten Sie darauf, Folgendes zu beachten Jenkins Bewährte Sicherheitsmethoden bei der Konfiguration Ihrer Instance.

Bevor Sie beginnen

Führen Sie die folgenden Aufgaben aus, bevor Sie Automation mit konfigurieren Jenkins:

Um eine IAM-Richtlinie für das zu erstellen Jenkins server
  1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die IAM-Konsole unter. https://console.aws.amazon.com/iam/

  2. Wählen Sie im Navigationsbereich Richtlinien und dann Richtlinie erstellen.

  3. Wählen Sie den Tab JSON.

  4. Ersetzen Sie jeden example resource placeholder durch Ihre 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" ] } ] }
  5. Wählen Sie Richtlinie prüfen.

  6. Geben Sie auf der Seite Richtlinie prüfen im Feld Name einen Namen für die Inline-Richtlinie ein, z. B. JenkinsPolicy.

  7. Wählen Sie Create Policy (Richtlinie erstellen) aus.

  8. Wählen Sie im Navigationsbereich Rollen.

  9. Wählen Sie das Instanzprofil aus, das an Ihr angehängt ist Jenkins Server.

  10. Wählen Sie auf der Registerkarte Berechtigungen die Option Berechtigungen hinzufügen, Richtlinien anfügen.

  11. Geben Sie im Abschnitt Andere Berechtigungsrichtlinien den Namen der Richtlinie ein, die Sie in den vorherigen Schritten erstellt haben. Beispiel, JenkinsPolicy.

  12. Aktivieren Sie das Kontrollkästchen neben Ihrer Richtlinie, und wählen Sie Richtlinien anfügen aus.

Gehen Sie wie folgt vor, um das AWS CLI auf Ihrem zu konfigurieren Jenkins Server.

Um den zu konfigurieren Jenkins Server für die Automatisierung
  1. Connect dich mit deinem Jenkins Server auf Port 8080 mit Ihrem bevorzugten Browser für den Zugriff auf die Verwaltungsschnittstelle.

  2. 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
  3. Das Tool Jenkins Das Installationsskript leitet Sie zum Customize weiter JenkinsSeite. Wählen Sie Installieren von empfohlenen Plugins.

  4. Sobald die Installation abgeschlossen ist, wählen Sie Administratoranmeldedaten, dann Anmeldeinformationen speichern und anschließend Start Using aus Jenkins.

  5. Wählen Sie im linken Navigationsbereich die Option Verwalten aus Jenkins, und wählen Sie dann Plugins verwalten aus.

  6. Wählen Sie die Registerkarte Available (Verfügbar) und geben Sie dann Amazon EC2 plugin ein.

  7. Aktivieren Sie das Kontrollkästchen für Amazon EC2 plugin und klicken Sie dann auf Installation ohne Neustart.

  8. Nach abgeschlossener Installation wählen Sie Zurück zur oberen Seite.

  9. Wählen Sie „Verwalten“ Jenkinsund wählen Sie dann Knoten und Clouds verwalten aus.

  10. Wählen Sie im Abschnitt Clouds konfigurieren die Option Neue Cloud hinzufügen und dann Amazon aus EC2.

  11. Geben Sie Ihre Daten in die verbleibenden Felder ein. Stellen Sie sicher, dass Sie die Option EC2 Instanzprofil verwenden, um Anmeldeinformationen zu erhalten ausgewählt haben.

Verwenden Sie das folgende Verfahren, um Ihre zu konfigurieren Jenkins Projekt, um Automation aufzurufen.

Um deine zu konfigurieren Jenkins Server zum Aufrufen der Automatisierung
  1. Öffnen Sie Jenkins Konsole in einem Webbrowser.

  2. Wählen Sie das Projekt, das Sie mit Automation konfigurieren möchten, und wählen Sie dann Configure (Konfigurieren).

  3. Wählen Sie auf der Registerkarte Build Add Build Step (Build-Schritt hinzufügen) aus.

  4. Wählen Sie je nach Betriebssystem Execute shell (Shell ausführen) oder Execute Windows batch command (Windows-Batchbefehl ausführen).

  5. Führen Sie im Feld Befehl einen AWS CLI Befehl wie den folgenden aus. Ersetzen Sie jeden example resource placeholder durch Ihre Informationen.

    aws ssm start-automation-execution \ --document-name runbook name \ --region AWS-Region of your source AMI \ --parameters runbook parameters

    Der folgende Beispielbefehl verwendet das UpdateMyLatestWindowsAmiRunbook und den Systems Manager Manager-Parameter, die in latestAmi Aktualisiere ein goldenes AMI mithilfe von Automatisierung AWS Lambda, und Parameter Store erstellt wurden.

    aws ssm start-automation-execution \ --document-name UpdateMyLatestWindowsAmi \ --parameters \ "sourceAMIid='{{ssm:latestAmi}}'" --region region

    In Jenkins, der Befehl sieht aus wie das Beispiel im folgenden Screenshot.

    Ein Beispielbefehl in Jenkins Software.
  6. Im Jenkins Projekt, wählen Sie Build Now. Jenkins gibt eine Ausgabe zurück, die dem folgenden Beispiel ähnelt.

    Beispiel für eine Befehlsausgabe in Jenkins Software.