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.
Dieses Tutorial hilft Ihnen dabei, eine Bereitstellungsaktion zu erstellen CodePipeline , mit der Ihr Code auf Instances bereitgestellt wird, die Sie in Amazon EC2 konfiguriert haben.
Anmerkung
Im Rahmen der Erstellung einer Pipeline in der Konsole wird ein S3-Artefakt-Bucket von CodePipeline for artefacts verwendet. (Dies unterscheidet sich von dem Bucket, der für eine S3-Quellaktion verwendet wird.) Wenn sich der S3-Artefakt-Bucket in einem anderen Konto befindet als das Konto für Ihre Pipeline, stellen Sie sicher, dass der S3-Artefakt-Bucket denjenigen gehört AWS-Konten , die sicher und zuverlässig sind.
Anmerkung
Die EC2
Bereitstellungsaktion ist nur für Pipelines vom Typ V2 verfügbar.
Voraussetzungen
Es müssen bestimmte Ressourcen zur Verfügung stehen, damit Sie mithilfe dieses Tutorials eine CD-Pipeline erstellen können. Zum Einstieg benötigen Sie Folgendes:
Anmerkung
Alle diese Ressourcen sollten in derselben AWS Region erstellt werden.
-
Ein Quellcodeverwaltungs-Repository (das in diesem Tutorial verwendet wird GitHub), in das Sie eine
script.sh
Beispieldatei hinzufügen werden. -
Sie müssen eine vorhandene CodePipeline Servicerolle verwenden, die mit den Berechtigungen für diese Aktion aktualisiert wurde. Informationen zum Aktualisieren Ihrer Servicerolle finden Sie unterRichtlinienberechtigungen für die Servicerolle für die EC2 Bereitstellungsaktion.
Nachdem Sie diese Voraussetzungen erfüllt haben, können Sie mit dem Tutorial fortfahren und Ihre CD-Pipeline erstellen.
Schritt 1: Amazon EC2 Linux-Instances erstellen
In diesem Schritt erstellen Sie die EC2 Amazon-Instances, in denen Sie eine Beispielanwendung bereitstellen werden. Erstellen Sie im Rahmen dieses Prozesses eine Instance-Rolle in IAM, falls Sie noch keine Instance-Rolle in der Region erstellt haben, in der Sie Ressourcen erstellen möchten.
So erstellen Sie eine Instance-Rolle
-
Öffnen Sie die IAM-Konsole unter https://console.aws.amazon.com/iam/
). -
Wählen Sie im Dashboard der Konsole die Option Rollen aus.
-
Wählen Sie Rolle erstellen.
-
Wählen Sie unter Typ der vertrauenswürdigen Entität auswählen AWS-Servicedie Option aus. Wählen Sie unter Anwendungsfall auswählen die Option aus EC2. Wählen Sie unter Wählen Sie Ihren Anwendungsfall aus EC2. Wählen Sie Weiter: Berechtigungen aus.
-
Suchen Sie nach der genannten Richtlinie und wählen Sie sie aus
AWSSystemsManagerDefaultEC2InstanceManagementRoleeployAction
. -
Suchen Sie nach der genannten Richtlinie und wählen Sie sie aus
AmazonSSMManagedInstanceCore
. Wählen Sie Next: Tags (Weiter: Tags) aus. -
Klicken Sie auf Weiter: Prüfen. Geben Sie einen Namen für die Rolle ein (z. B.
EC2InstanceRole
).Anmerkung
Notieren Sie sich Ihren Rollennamen für den nächsten Schritt. Sie wählen diese Rolle, wenn Sie Ihre Instance erstellen.
Anmerkung
Sie fügen dieser Rolle Berechtigungen hinzu, um nach der Erstellung der Pipeline den Zugriff auf den S3-Artefakt-Bucket für Ihre Pipeline zu ermöglichen.
Wählen Sie Rolle erstellen.
Starten von Instances
Öffnen Sie die EC2 Amazon-Konsole unter https://console.aws.amazon.com/ec2/
. -
Wählen Sie in der Seitennavigation Instances und dann oben auf der Seite Launch Instances aus.
-
Geben Sie unter Name
MyInstances
ein. Dadurch wird der Instance ein Tag-Schlüssel vonName
und ein Tag-Wert vonMyInstances
zugewiesen. -
Suchen Sie unter Anwendungs- und Betriebssystem-Images (Amazon Machine Image) die Amazon Linux AMI-Option mit dem AWS Logo und stellen Sie sicher, dass sie ausgewählt ist. (Dieses AMI wird als Amazon Linux 2 AMI (HVM) bezeichnet und trägt die Bezeichnung „Für das kostenlose Kontingent in Frage“.)
-
Wählen Sie unter Instance-Typ den
t2.micro
Typ aus, für den das kostenlose Kontingent in Frage kommt, als Hardwarekonfiguration für Ihre Instance. -
Wählen Sie unter key pair (Anmeldung) ein Schlüsselpaar aus oder erstellen Sie eines.
-
Vergewissern Sie sich, dass der Status unter Netzwerkeinstellungen aktiviert ist.
-
Erweitern Sie Advanced Details (Erweiterte Details). Wählen Sie im IAM-Instanzprofil die IAM-Rolle aus, die Sie im vorherigen Verfahren erstellt haben (z. B.
EC2InstanceRole
).Anmerkung
Lassen Sie die Instanzrolle nicht leer, da dadurch eine Standardrolle erstellt wird und die von Ihnen erstellte Rolle nicht ausgewählt wird.
-
Geben Sie unter Zusammenfassung unter Anzahl der Instanzen den Wert ein
2
. -
Wählen Sie Launch Instance (Instance starten) aus.
-
Sie können den Status des Starts auf der Seite Instances anzeigen. Wenn Sie eine Instance starten, lautet ihr anfänglicher Status
pending
. Nachdem die Instance gestartet ist, lautet ihr Statusrunning
. Sie erhält dann einen öffentlichen DNS-Namen. (Wenn die Spalte Public DNS nicht angezeigt wird, wählen Sie das Show/Hide-Symbol aus und wählen Sie dann Public DNS aus.)
Schritt 2: Fügen Sie der EC2 Instanzrolle Artifact-Bucket-Berechtigungen hinzu
Sie müssen die EC2 Instanzrolle, die Sie für Ihre Instance erstellt haben, aktualisieren, damit sie auf den Artifact-Bucket Ihrer Pipeline zugreifen kann.
Anmerkung
Wenn Sie die Instanz erstellen, erstellen oder verwenden Sie eine vorhandene EC2 Instanzrolle. Um Access Denied
Fehler zu vermeiden, müssen Sie der Instanzrolle S3-Bucket-Berechtigungen hinzufügen, um die Instanzberechtigungen für den CodePipeline Artefakt-Bucket zu erteilen. Erstellen Sie eine Standardrolle oder aktualisieren Sie Ihre bestehende Rolle mit der s3:GetObject
Berechtigung, die auf den Artefakt-Bucket für die Region Ihrer Pipeline beschränkt ist.
-
Navigieren Sie in der Konsole zu Ihrer Pipeline. CodePipeline Wählen Sie Einstellungen aus. Sehen Sie sich den Namen und den Speicherort des Artefaktspeichers für eine bestehende Pipeline an. Notieren Sie sich den Artefakt-Bucket Amazon Resource Name (ARN) und kopieren Sie ihn.
-
Navigieren Sie zur IAM-Konsole, und wählen Sie Rollen aus. Wählen Sie die Instance-Rolle aus, die Sie in Schritt 1 dieses Tutorials erstellt haben.
-
Wählen Sie in der Registerkarte Permissions (Berechtigungen) die Option Add inline policy (Inline-Richtlinie hinzufügen).
-
Fügen Sie dem Richtliniendokument den folgenden JSON-Code hinzu und ersetzen Sie den Wert im
Resource
Feld durch den Bucket-ARN.{ "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::
BucketName
" } -
Wählen Sie Aktualisieren.
Schritt 3: Fügen Sie Ihrem Repository eine Skriptdatei hinzu
Fügen Sie diesen Beispieltext ein, um Ihre script.sh
Datei für den Post-Script-Schritt in der Bereitstellung zu erstellen.
echo "Hello World!"
So fügen Sie eine script.sh
-Datei zu Ihrem Quell-Repository hinzu
-
Öffnen Sie einen Texteditor und kopieren Sie dann die obige Datei und fügen Sie sie in eine neue Datei ein.
-
Führen Sie einen Commit und eine Push-Übertragung Ihrer
script.sh
-Datei zu Ihrem Quell-Repository durch.-
Fügen Sie die Datei hinzu.
git add .
-
Führen Sie einen Commit der Änderung durch.
git commit -m "Adding script.sh."
-
Führen Sie eine Push-Übertragung für das Commit durch.
git push
Notieren Sie sich den Pfad in Ihrem Repository.
/MyDemoRepo/test/script.sh
-
Schritt 4: Erstellen Sie Ihre Pipeline
Verwenden Sie den CodePipeline Assistenten, um Ihre Pipeline-Stufen zu erstellen und Ihr Quell-Repository zu verbinden.
So erstellen Sie Ihre Pipeline
Öffnen Sie die CodePipeline Konsole unter https://console.aws.amazon.com/codepipeline/
. -
Wählen sie auf der Seite Welcome (Willkommen) die Option Getting started (Erste Schritte) aus, oder auf der Seite Pipelines die Option Create pipeline (Pipeline erstellen).
-
Wählen Sie auf der Seite Schritt 1: Erstellungsoption auswählen unter Erstellungsoptionen die Option Benutzerdefinierte Pipeline erstellen aus. Wählen Sie Weiter.
-
Geben Sie in Schritt 2: Pipeline-Einstellungen auswählen im Feld Pipeline-Name den Wert ein
MyPipeline
. -
CodePipeline bietet Pipelines vom Typ V1 und V2, die sich in Eigenschaften und Preis unterscheiden. Der Typ V2 ist der einzige Typ, den Sie in der Konsole auswählen können. Weitere Informationen finden Sie unter Pipeline-Typen. Informationen zur Preisgestaltung für finden Sie CodePipeline unter Preisgestaltung
. -
Wählen Sie unter Servicerolle die Option Bestehende Servicerolle verwenden und wählen Sie dann die CodePipeline Servicerolle aus, die mit den erforderlichen Berechtigungen für diese Aktion aktualisiert wurde. Informationen zum Konfigurieren Ihrer CodePipeline Servicerolle für diese Aktion finden Sie unterRichtlinienberechtigungen für die Servicerolle für die EC2 Bereitstellungsaktion.
-
Belassen Sie die Einstellungen unter Erweiterte Einstellungen bei den Standardeinstellungen, und wählen Sie dann Next (Weiter) aus.
-
Fügen Sie auf der Seite Schritt 3: Quellstufe hinzufügen eine Quellstufe hinzu:
-
Wählen Sie unter Quellanbieter die Option GitHub (über GitHub App) aus.
-
Wählen Sie unter Verbindung eine bestehende Verbindung aus oder erstellen Sie eine neue. Informationen zum Erstellen oder Verwalten einer Verbindung für Ihre GitHub Quellaktion finden Sie unterGitHub Verbindungen.
-
Wählen Sie im Feld Repository name (Repositoryname) den Namen Ihres GitHub -Repositorys aus.
Wählen Sie Weiter.
-
-
Wählen Sie auf der Seite Schritt 4: Build-Phase hinzufügen die Option Überspringen aus.
-
Wählen Sie auf der Seite Schritt 5: Bereitstellungsphase hinzufügen die Option EC2.
-
Geben Sie als Zielverzeichnis das Verzeichnis auf der Instance ein, für das Sie die Bereitstellung durchführen möchten, z.
/home/ec2-user/testhelloworld
B.Anmerkung
Geben Sie das Bereitstellungsverzeichnis an, das die Aktion auf der Instance verwenden soll. Die Aktion automatisiert die Erstellung des angegebenen Verzeichnisses auf der Instanz als Teil der Bereitstellung.
-
Geben Sie für PostScriptden Pfad und den Dateinamen für Ihr Skript ein, z.
test/script.sh
B. -
Wählen Sie Weiter.
-
-
Überprüfen Sie auf der Seite Step 6: Review Ihre Pipeline-Konfiguration und wählen Sie Create pipeline, um die Pipeline zu erstellen.
-
Nachdem die Pipeline erfolgreich ausgeführt wurde, wählen Sie Details anzeigen aus, um die Protokolle der Aktion und die Ausgabe der verwalteten Rechenaktion anzuzeigen.
Schritt 5: Testen Sie Ihre Pipeline
Ihre Pipeline sollte über alles verfügen, was für die Ausführung einer end-to-end systemeigenen AWS kontinuierlichen Bereitstellung erforderlich ist. Testen Sie nun ihre Funktionalität, indem Sie eine Code-Änderung mithilfe von Push zu Ihrem Quell-Repository übertragen.
So testen Sie Ihre Pipeline
-
Nehmen Sie eine Code-Änderung an Ihrem konfigurierten Quell-Repository vor und führen Sie den Commit-Vorgang und die Push-Übertragung der Änderung durch.
Öffnen Sie die CodePipeline Konsole unter https://console.aws.amazon.com/codepipeline/
. -
Wählen Sie Ihre Pipeline in der Liste aus.
-
Sehen Sie sich an, wie die Pipeline ihre Phasen durchläuft. Ihre Pipeline sollte abgeschlossen sein und Ihre Aktion stellt das Skript auf Ihren Instances bereit.
-
Weitere Informationen zur Fehlerbehebung finden Sie unterEC2 Die Bereitstellungsaktion schlägt mit einer Fehlermeldung fehl No such file.