Verwenden Sie den Befehl register (IAM-Benutzer-ARN), um eine lokale Instanz zu registrieren - AWS CodeDeploy

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.

Verwenden Sie den Befehl register (IAM-Benutzer-ARN), um eine lokale Instanz zu registrieren

Wichtig

Die Registrierung einer Instanz mithilfe eines IAM-Benutzers wird nicht empfohlen, da statische (permanente) Anmeldeinformationen für die Authentifizierung verwendet werden. Aus Sicherheitsgründen empfehlen wir, eine Instance mit temporären Anmeldeinformationen für die Authentifizierung zu registrieren. Weitere Informationen finden Sie unter Verwenden Sie den register-on-premises-instance Befehl (IAM Session ARN), um eine lokale Instanz zu registrieren.

Wichtig

Stellen Sie sicher, dass Sie über einen Plan zur Rotation der Zugriffsschlüssel (permanente Anmeldeinformationen) des IAM-Benutzers verfügen. Weitere Informationen finden Sie unter Rotieren von Zugriffsschlüsseln.

In diesem Abschnitt wird beschrieben, wie Sie eine lokale Instanz konfigurieren und sie CodeDeploy mit dem geringsten Aufwand registrieren und taggen können. Der Befehl register ist besonders nützlich, wenn Sie mit einer einzigen oder einer kleinen Anzahl von lokalen Instances arbeiten. Sie können den register Befehl nur verwenden, wenn Sie einen IAM-Benutzer-ARN zur Authentifizierung einer Instance verwenden. Sie können den register Befehl nicht mit einem IAM-Sitzungs-ARN zur Authentifizierung verwenden.

Wenn Sie den register Befehl verwenden, können Sie Folgendes CodeDeploy tun lassen:

  • Erstellen Sie einen IAM-Benutzer AWS Identity and Access Management für die lokale Instanz, falls Sie keinen mit dem Befehl angeben.

  • Speichern Sie die Anmeldeinformationen des IAM-Benutzers in einer lokalen Instanzkonfigurationsdatei.

  • Registrieren Sie die lokale Instanz bei. CodeDeploy

  • Fügen Sie Tags zur lokalen Instance hinzu, indem Sie diese als Teil des Befehls angeben.

Anmerkung

Der register-on-premises-instanceBefehl ist eine Alternative zum Befehl register. Sie verwenden den register-on-premises-instance Befehl, wenn Sie eine lokale Instanz konfigurieren und sie CodeDeploy größtenteils selbst registrieren und taggen möchten. Der register-on-premises-instance Befehl bietet Ihnen auch die Möglichkeit, anstelle eines IAM-Benutzer-ARN einen IAM-Sitzungs-ARN zur Registrierung von Instances zu verwenden. Dieser Ansatz bietet einen großen Vorteil, wenn Sie große Serverfarmen für lokale Instances haben. Insbesondere können Sie einen einzelnen IAM-Sitzungs-ARN verwenden, um mehrere Instanzen zu authentifizieren, anstatt nacheinander einen IAM-Benutzer für jede lokale Instanz erstellen zu müssen. Weitere Informationen finden Sie unter Verwenden Sie den register-on-premises-instance Befehl (IAM-Benutzer-ARN), um eine lokale Instanz zu registrieren und Verwenden Sie den register-on-premises-instance Befehl (IAM Session ARN), um eine lokale Instanz zu registrieren.

Schritt 1: Installieren und konfigurieren Sie die AWS CLI On-Premises-Instanz

  1. Installieren Sie die AWS CLI auf der lokalen Instanz. Folgen Sie den Anweisungen unter Getting Setup with the AWS CLI im AWS Command Line Interface Benutzerhandbuch.

    Anmerkung

    CodeDeploy Befehle für die Arbeit mit lokalen Instanzen sind in AWS CLI Version 1.7.19 und höher verfügbar. Wenn Sie das AWS CLI bereits installiert haben, rufen Sie an, aws --version um die Version zu überprüfen.

  2. Konfigurieren Sie AWS CLI die lokale Instanz. Folgen Sie den Anweisungen unter Konfiguration AWS CLI der AWS Command Line Interface Bedienungsanleitung.

    Wichtig

    Achten Sie bei der Konfiguration AWS CLI (z. B. durch Aufrufen des aws configure Befehls) darauf, die geheime Schlüssel-ID und den geheimen Zugriffsschlüssel eines IAM-Benutzers anzugeben, der zusätzlich zu den unter angegebenen Berechtigungen mindestens über die folgenden AWS Zugriffsberechtigungen verfügt. Voraussetzungen für die Konfiguration einer lokalen Instanz Dadurch ist es möglich, den CodeDeploy Agenten auf die lokale Instanz herunterzuladen und zu installieren. Die Zugriffsberechtigungen können etwa wie folgt aussehen:

    { "Version": "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Action" : [ "codedeploy:*", "iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:ListAccessKeys", "iam:ListUserPolicies", "iam:PutUserPolicy", "iam:GetUser", "tag:getTagKeys", "tag:getTagValues", "tag:GetResources" ], "Resource" : "*" }, { "Effect" : "Allow", "Action" : [ "s3:Get*", "s3:List*" ], "Resource" : [ "arn:aws:s3:::aws-codedeploy-us-east-2/*", "arn:aws:s3:::aws-codedeploy-us-east-1/*", "arn:aws:s3:::aws-codedeploy-us-west-1/*", "arn:aws:s3:::aws-codedeploy-us-west-2/*", "arn:aws:s3:::aws-codedeploy-ca-central-1/*", "arn:aws:s3:::aws-codedeploy-eu-west-1/*", "arn:aws:s3:::aws-codedeploy-eu-west-2/*", "arn:aws:s3:::aws-codedeploy-eu-west-3/*", "arn:aws:s3:::aws-codedeploy-eu-central-1/*", "arn:aws:s3:::aws-codedeploy-il-central-1/*", "arn:aws:s3:::aws-codedeploy-ap-east-1/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-4/*", "arn:aws:s3:::aws-codedeploy-ap-south-1/*", "arn:aws:s3:::aws-codedeploy-sa-east-1/*" ] } ] }
    Anmerkung

    Wenn Sie beim Versuch, auf einen der oben aufgeführten Amazon S3 S3-Buckets zuzugreifen, die Fehler „Zugriff verweigert“ sehen, versuchen Sie, den /* Teil des Ressourcen-ARN des Buckets wegzulassen, z. B. arn:aws:s3:::aws-codedeploy-sa-east-1

Schritt 2: Rufen Sie den Befehl register auf

Bei diesem Schritt gehen wir davon aus, dass Sie die Registrierung des lokalen Instance von der lokalen Instance aus durchführen. Sie können eine lokale Instanz auch von einem separaten Gerät oder einer Instanz aus registrieren, auf der sie wie im vorherigen Schritt beschrieben AWS CLI installiert und konfiguriert ist.

Rufen Sie AWS CLI mit dem den Befehl register auf und geben Sie Folgendes an:

  • Ein Name, der die lokale Instanz eindeutig identifiziert CodeDeploy (mit der --instance-name Option).

    Wichtig

    Um die lokale Instance später identifizieren zu können, insbesondere für Debugging-Zwecke, empfehlen wir dringend, dass Sie einen Namen verwenden, die einige eindeutige Merkmale der lokalen Instance enthält (z. B. die Seriennummer oder eine eindeutige interne Asset-ID, falls zutreffend). Wenn Sie eine MAC-Adresse für einen Namen angeben, beachten Sie, dass MAC-Adressen unzulässige Zeichen enthalten, z. B. einen Doppelpunkt (:). CodeDeploy Eine Liste der zulässigen Zeichen finden Sie unter CodeDeploy Kontingente.

  • Optional der ARN eines vorhandenen IAM-Benutzers, den Sie dieser lokalen Instanz zuordnen möchten (mit der --iam-user-arn Option). Um den ARN eines IAM-Benutzers abzurufen, rufen Sie den Befehl get-user auf, oder wählen Sie den IAM-Benutzernamen im Abschnitt Benutzer der IAM-Konsole aus und suchen Sie dann im Abschnitt Zusammenfassung nach dem Wert Benutzer-ARN. Wenn diese Option nicht angegeben ist, CodeDeploy wird in Ihrem Namen ein IAM-Benutzer in Ihrem AWS Konto erstellt und dieser der lokalen Instanz zugeordnet.

    Wichtig

    Wenn Sie die Option --iam-user-arn festlegen, müssen Sie die lokale Instance-Konfigurationsdatei manuell erstellen, wie in Schritt 4: Fügen Sie der lokalen Instanz eine Konfigurationsdatei hinzu beschrieben.

    Sie können nur einen IAM-Benutzer nur einer lokalen Instanz zuordnen. Der Versuch, einen einzelnen IAM-Benutzer mehreren lokalen Instanzen zuzuordnen, kann zu Fehlern, fehlgeschlagenen Bereitstellungen für diese lokalen Instanzen oder Bereitstellungen für diese lokalen Instanzen führen, die in einem dauerhaften Status „Ausstehend“ hängen bleiben.

  • Optional ein Satz von lokalen Instance-Tags (mit der --tags Option), anhand derer der Satz von Amazon EC2 EC2-Instances identifiziert CodeDeploy wird, auf denen die Bereitstellung erfolgen soll. Geben Sie jeden Tag mit Key=tag-key,Value=tag-value an (z. B. Key=Name,Value=Beta Key=Name,Value=WestRegion). Wenn diese Option nicht angegeben ist, werden keine Tags registriert. Um Tags später zu registrieren, rufen Sie den Befehl add-tags-to-on-premises-instances auf.

  • Optional die AWS Region, in der die lokale Instanz registriert werden soll CodeDeploy (mit der Option). --region Dabei muss es sich um eine der unterstützten Regionen handeln, die unter Region und Endpunkte in aufgeführt sind Allgemeine AWS-Referenz(z. B.us-west-2). Wenn diese Option nicht angegeben ist, wird die AWS Standardregion verwendet, die dem aufrufenden IAM-Benutzer zugeordnet ist.

Beispielsweise:

aws deploy register --instance-name AssetTag12010298EX --iam-user-arn arn:aws:iam::444455556666:user/CodeDeployUser-OnPrem --tags Key=Name,Value=CodeDeployDemo-OnPrem --region us-west-2

Der Befehl register hat folgende Auswirkungen:

  1. Wenn kein vorhandener IAM-Benutzer angegeben ist, wird ein IAM-Benutzer erstellt, diesem die erforderlichen Berechtigungen zugewiesen und ein entsprechender geheimer Schlüssel und ein geheimer Zugriffsschlüssel generiert. Die lokale Instanz verwendet diesen IAM-Benutzer und seine Berechtigungen und Anmeldeinformationen, um sich zu authentifizieren und mit ihm zu interagieren. CodeDeploy

  2. Registriert die lokale Instanz bei. CodeDeploy

  3. Falls angegeben, ordnet es CodeDeploy den Tags, die mit der --tags Option angegeben sind, dem Namen der registrierten lokalen Instanz zu.

  4. Wenn ein IAM-Benutzer erstellt wurde, wird auch die erforderliche Konfigurationsdatei in demselben Verzeichnis erstellt, aus dem der register Befehl aufgerufen wurde.

Wenn dieser Befehl Fehler erkennt, wird eine Fehlermeldung angezeigt, in der beschrieben wird, wie Sie die verbleibenden Schritte manuell durchführen können. Andernfalls wird eine Erfolgsmeldung angezeigt, die beschreibt, wie Sie den Befehl install aufrufen, wie im nächsten Schritt beschrieben.

Schritt 3: Rufen Sie den Befehl install auf

Rufen Sie in der lokalen Instanz den Befehl install AWS CLI mit auf und geben Sie Folgendes an:

  • Der Pfad zur Konfigurationsdatei (mit der Option --config-file).

  • Optional, ob die Konfigurationsdatei ersetzt werden soll, die bereits auf der lokalen Instance vorhanden ist (mit der --override-config Option). Wenn nicht angegeben, wird die vorhandene Konfigurationsdatei nicht ersetzt.

  • Optional die AWS Region, in der die lokale Instanz registriert werden soll CodeDeploy (mit der --region Option). Dabei muss es sich um eine der unterstützten Regionen handeln, die unter Region und Endpunkte in aufgeführt sind Allgemeine AWS-Referenz(z. B.us-west-2). Wenn diese Option nicht angegeben ist, wird die AWS Standardregion verwendet, die dem aufrufenden IAM-Benutzer zugeordnet ist.

  • Optional ein benutzerdefinierter Speicherort, von dem aus der CodeDeploy Agent installiert werden soll (mit der --agent-installer Option). Diese Option ist nützlich, um eine benutzerdefinierte Version des CodeDeploy Agenten zu installieren, die CodeDeploy nicht offiziell unterstützt wird (z. B. eine benutzerdefinierte Version, die auf dem CodeDeployAgenten-Repository in basiert GitHub). Der Wert muss der Pfad zu einem Amazon S3 S3-Bucket sein, der entweder Folgendes enthält:

    • Ein CodeDeploy Agenten-Installationsskript (für Linux- oder UNIX-basierte Betriebssysteme, ähnlich der Installationsdatei im CodeDeployAgenten-Repository unter). GitHub

    • Eine CodeDeploy Agenteninstallationspaketdatei (.msi) (für Windows-basierte Betriebssysteme).

    Wenn diese Option nicht angegeben ist, versucht CodeDeploy es nach besten Kräften, von seinem eigenen Standort aus eine offiziell unterstützte Version des CodeDeploy Agenten zu installieren, die mit dem Betriebssystem auf der lokalen Instanz kompatibel ist.

Beispielsweise:

aws deploy install --override-config --config-file /tmp/codedeploy.onpremises.yml --region us-west-2 --agent-installer s3://aws-codedeploy-us-west-2/latest/codedeploy-agent.msi

Der Befehl install hat folgende Auswirkungen:

  1. Prüft, ob es sich bei der lokalen Instance um eine Amazon EC2 EC2-Instance handelt. Wenn dies der Fall ist, wird eine Fehlermeldung angezeigt.

  2. Kopiert die Konfigurationsdatei für lokale Instances vom angegebenen Speicherort auf der Instance an den Speicherort, an dem der CodeDeploy Agent sie voraussichtlich finden wird, sofern sich die Datei nicht bereits an diesem Speicherort befindet.

    Für Ubuntu Server und Red Hat Enterprise Linux (RHEL) ist /etc/codedeploy-agent/conf dies/. codedeploy.onpremises.yml

    Für Windows Server ist diesC:\ProgramData\Amazon\CodeDeploy\conf.onpremises.yml.

    Wenn die Option --override-config angegeben wurde, wird die Datei erstellt oder überschrieben.

  3. Installiert den CodeDeploy Agenten auf der lokalen Instanz und startet ihn dann.

Schritt 4: Stellen Sie Anwendungsrevisionen auf der lokalen Instanz bereit

Sie können nun auf den registrierten und mit einem Tag markierten lokalen Instances Anwendungsrevisionen bereitstellen.

Sie stellen Anwendungsrevisionen auf lokale Instances auf ähnliche Weise bereit, wie Sie Anwendungsrevisionen für Amazon EC2 EC2-Instances bereitstellen. Anweisungen finden Sie unter Erstellen Sie eine Bereitstellung mit CodeDeploy. Diese Anweisungen bieten einen Link zu den Voraussetzungen, wie dem Erstellen einer Anwendung, Erstellen einer Bereitstellungsgruppe und Vorbereiten einer Anwendungsrevision. Wenn Sie eine einfache Beispielanwendungsrevision bereitstellen möchten, können Sie die unter Schritt 2: Erstellen Sie eine Version der Beispielanwendung im Tutorial: Bereitstellen einer Anwendung auf einer lokalen Instanz mit CodeDeploy (Windows Server, Ubuntu Server oder Red Hat Enterprise Linux) beschriebene Revision verwenden.

Wichtig

Wenn Sie eine bestehende CodeDeploy Servicerolle im Rahmen der Erstellung einer Bereitstellungsgruppe für lokale Instances wiederverwenden, müssen Sie die Richtlinienerklärung der Servicerolle in diesen Action Teil aufnehmenTag:get*. Weitere Informationen finden Sie unter Schritt 2: Erstellen Sie eine Servicerolle für CodeDeploy.

Schritt 5: Verfolgen Sie die Bereitstellungen auf der lokalen Instanz

Nachdem Sie eine Anwendungsrevision auf einer registrierten und markierten lokalen Instance bereitgestellt haben, können Sie den Fortschritt der Bereitstellung nachverfolgen.

Sie verfolgen Bereitstellungen für lokale Instances auf ähnliche Weise wie die Nachverfolgung von Bereitstellungen auf Amazon EC2 EC2-Instances. Anweisungen finden Sie unter CodeDeploy Bereitstellungsdetails anzeigen .

Weitere Optionen finden Sie unter Verwaltung von Vorgängen für lokale Instanzen in CodeDeploy.