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.
Einen Benutzerdefiniert erstellen AWS ParallelCluster AMI
Wenn Sie die AWS ParallelCluster Befehlszeilenschnittstelle (CLI) oder die API verwenden, zahlen Sie nur für die AWS Ressourcen, die beim Erstellen oder Aktualisieren von AWS ParallelCluster Images und Clustern erstellt werden. Weitere Informationen finden Sie unter AWS Dienste, die von verwendet werden AWS ParallelCluster.
Wichtig
Wenn Sie ein benutzerdefiniertes AMI erstellen, müssen Sie die Schritte, die Sie zum Erstellen Ihres benutzerdefinierten AMI verwendet haben, bei jeder neuen AWS ParallelCluster Version wiederholen.
Bevor Sie weiter lesen, empfehlen wir Ihnen, zuerst den Benutzerdefinierte Bootstrap-Aktionen Abschnitt zu lesen. Prüfen Sie, ob für die Änderungen, die Sie vornehmen möchten, ein Skript erstellt werden können und ob sie in zukünftigen AWS ParallelCluster Versionen unterstützt werden können.
Auch wenn das Erstellen eines benutzerdefinierten AMI im Allgemeinen nicht ideal ist, gibt es bestimmte Szenarien, in denen das Erstellen eines benutzerdefinierten AMI für erforderlich AWS ParallelCluster ist. In diesem Tutorial wird beschrieben, wie Sie ein benutzerdefiniertes AMI für diese Szenarien erstellen.
Voraussetzungen
-
AWS ParallelCluster ist installiert.
-
Der AWS CLI ist installiert und konfiguriert.
-
Sie haben ein Amazon EC2-Schlüsselpaar.
-
Sie haben eine IAM-Rolle mit den erforderlichen Berechtigungen, um die p-Cluster CLI auszuführen und Images zu erstellen.
Wie passt man das an AWS ParallelCluster AMI
Es gibt zwei Möglichkeiten, ein benutzerdefiniertes AWS ParallelCluster AMI zu erstellen. Eine dieser beiden Methoden besteht darin, mithilfe der AWS ParallelCluster CLI ein neues AMI zu erstellen. Bei einer anderen Methode müssen Sie manuelle Änderungen vornehmen, um ein neues AMI zu erstellen, das unter Ihrem verfügbar ist AWS-Konto.
Erstellen Sie ein benutzerdefiniertes AWS ParallelCluster AMI
Wenn Sie ein benutzerdefiniertes AMI und eine benutzerdefinierte Software haben, können Sie die AWS ParallelCluster erforderlichen Änderungen zusätzlich anwenden. AWS ParallelCluster verlässt sich auf den EC2 Image Builder-Dienst, um benutzerdefinierte AMIs zu erstellen. Weitere Informationen finden Sie im Image Builder-Benutzerhandbuch.
Die wichtigsten Punkte:
-
Der Vorgang dauert etwa 1 Stunde. Diese Zeit kann variieren, wenn Components zum Zeitpunkt der Erstellung weitere Build/installiert werden müssen.
-
Das AMI ist mit den Versionen der Hauptkomponenten gekennzeichnet. Dazu gehören der Kernel, der Scheduler und der EFA-Treiber. Eine Teilmenge der Komponentenversionen ist auch in der AMI-Beschreibung enthalten.
-
Ab AWS ParallelCluster Version 3.0.0 kann ein neuer Satz von CLI-Befehlen verwendet werden, um den Lebenszyklus von Images zu verwalten. Dazu zählen build-image, list-images, describe-image und delete-image.
-
Diese Methode ist wiederholbar. Sie können sie erneut ausführen, um AMIs auf dem neuesten Stand zu halten (z. B. Betriebssystemupdates), und sie dann verwenden, wenn Sie einen vorhandenen Cluster aktualisieren.
Anmerkung
Wenn Sie diese Methode in der AWS China-Partition verwenden, treten möglicherweise Netzwerkfehler auf. Diese Fehler können Ihnen beispielsweise beim pcluster build-image Befehl angezeigt werden, wenn er Pakete von GitHub oder aus einem Betriebssystem-Repository herunterlädt. In diesem Fall empfehlen wir Ihnen, eine der folgenden alternativen Methoden zu verwenden:
-
Folgen Sie dem Ändern Sie eine AWS ParallelCluster AMI Ansatz, der diesen Befehl umgeht.
-
Erstellen Sie das Image in einer anderen Partition und Region, z. B.
us-east-1, und verschieben Sie store/restore es dann in die Region China. Weitere Informationen finden Sie unter Speichern und Wiederherstellen eines AMI mit S3 im Benutzerhandbuch für Amazon EC2.
Schritte:
-
Konfigurieren Sie Ihre AWS-Konto Anmeldeinformationen so, dass der AWS ParallelCluster Client in Ihrem Namen AWS API-Operationen aufrufen kann. Eine Liste der erforderlichen Berechtigungen finden Sie unter AWS Identity and Access Management Berechtigungen in AWS ParallelCluster.
-
Erstellen Sie eine grundlegende Build-Image-Konfigurationsdatei. Geben Sie dazu die an, die InstanceType zum Erstellen des Images verwendet werden soll, und die ParentImage. Diese werden als Ausgangspunkt für die Erstellung des AMI verwendet. Weitere Informationen zu optionalen Build-Parametern finden Sie unter Image-Konfiguration.
Build: InstanceType:<BUILD_INSTANCE_TYPE>ParentImage:<BASE_AMI_ID> -
Verwenden Sie den CLI-Befehl pcluster build-image, um ein AWS ParallelCluster AMI ausgehend von dem AMI zu erstellen, das Sie als Basis angeben.
$pcluster build-image --image-idIMAGE_ID--image-configurationIMAGE_CONFIG.yaml--regionREGION{ "image": { "imageId": "IMAGE_ID", "imageBuildStatus": "BUILD_IN_PROGRESS", "cloudformationStackStatus": "CREATE_IN_PROGRESS", "cloudformationStackArn": "arn:aws:cloudformation:us-east-1:123456789012:stack/IMAGE_ID/abcd1234-ef56-gh78-ij90-1234abcd5678", "region": "us-east-1", "version": "3.16.1" } }Warnung
pcluster build-imageverwendet die Standard-VPC. Wenn Sie die Standard-VPC mithilfe AWS Control Tower unserer AWS Landing Zone löschen, muss die Subnetz-ID in der Image-Konfigurationsdatei angegeben werden. Weitere Informationen finden Sie unter SubnetId.Eine Liste anderer Parameter finden Sie auf der pcluster build-image Befehlsreferenzseite. Die Ergebnisse des vorherigen Befehls lauten wie folgt:
-
Basierend auf der Image-Konfiguration wird ein CloudFormation Stapel erstellt. Der Stapel enthält alle EC2 Image Builder-Ressourcen, die für den Build erforderlich sind.
-
Die erstellten Ressourcen enthalten die offiziellen Image AWS ParallelCluster Builder-Komponenten, zu denen benutzerdefinierte Image Builder-Komponenten hinzugefügt werden können. Weitere Informationen finden Sie unter Erstellen einer benutzerdefinierten Komponente mit Image Builder im EC2 Image Builder-Benutzerhandbuch.
-
EC2 Image Builder startet eine Build-Instance, wendet das AWS ParallelCluster Cookbook an, installiert den AWS ParallelCluster Software-Stack und führt die erforderlichen Konfigurationsaufgaben durch. Das AWS ParallelCluster Kochbuch wird zum Erstellen und Bootstrappen verwendet. AWS ParallelCluster
-
Die Instance wird gestoppt und ein neues AMI wird daraus erstellt.
-
Eine weitere Instance wird vom neu erstellten AMI aus gestartet. Während der Testphase führt EC2 Image Builder Tests aus, die in den Image Builder-Komponenten definiert sind.
-
Wenn der Build erfolgreich ist, wird der Stack gelöscht. Schlägt der Build fehl, bleibt der Stack erhalten und kann überprüft werden.
-
-
Sie können den Status des Build-Prozesses überwachen, indem Sie den folgenden Befehl ausführen. Nach Abschluss des Builds können Sie ihn ausführen, um die in der Antwort angegebene AMI-ID abzurufen.
$pcluster describe-image --image-idIMAGE_ID--regionREGION# BEFORE COMPLETE { "imageConfiguration": { "url": "https://parallelcluster-1234abcd5678efgh-v1-do-not-delete.s3.amazonaws.com/parallelcluster/3.16.1/images/IMAGE_ID-abcd1234efgh5678/configs/image-config.yaml?...", }, "imageId": "IMAGE_ID", "imagebuilderImageStatus": "BUILDING", "imageBuildStatus": "BUILD_IN_PROGRESS", "cloudformationStackStatus": "CREATE_IN_PROGRESS", "cloudformationStackArn": "arn:aws:cloudformation:us-east-1:123456789012:stack/IMAGE_ID/abcd1234-ef56-gh78-ij90-1234abcd5678", "region": "us-east-1", "version": "3.16.1", "cloudformationStackTags": [ { "value": "3.16.1", "key": "parallelcluster:version" }, { "value": "IMAGE_ID", "key": "parallelcluster:image_name" }, ... ], "imageBuildLogsArn": "arn:aws:logs:us-east-1:123456789012:log-group:/aws/imagebuilder/ParallelClusterImage-IMAGE_ID", "cloudformationStackCreationTime": "2022-04-05T21:36:26.176Z" }# AFTER COMPLETE { "imageConfiguration": { "url": "https://parallelcluster-1234abcd5678efgh-v1-do-not-delete.s3.us-east-1.amazonaws.com/parallelcluster/3.16.1/images/IMAGE_ID-abcd1234efgh5678/configs/image-config.yaml?Signature=..." }, "imageId": "IMAGE_ID", "imageBuildStatus": "BUILD_COMPLETE", "region": "us-east-1", "ec2AmiInfo": { "amiName": "IMAGE_ID 2022-04-05T21-39-24.020Z", "amiId": "ami-1234stuv5678wxyz", "description": "AWS ParallelCluster AMI for alinux2, kernel-4.14.238-182.422.amzn2.x86_64, lustre-2.10.8-5.amzn2.x86_64, efa-1.13.0-1.amzn2.x86_64, dcv-2021.1.10598-1.el7.x86_64, slurm-20-11-8-1", "state": "AVAILABLE", "tags": [ { "value": "2021.3.11591-1.el7.x86_64", "key": "parallelcluster:dcv_version" }, ... ], "architecture": "x86_64" }, "version": "3.16.1" } -
Um Ihren Cluster zu erstellen, geben Sie die AMI-ID in das CustomAmi Feld Ihrer Cluster-Konfiguration ein.
Problembehandlung und Überwachung des AMI-Erstellungsprozesses
Die Image-Erstellung ist in etwa einer Stunde abgeschlossen. Sie können den Prozess überwachen, indem Sie den pcluster describe-image Befehl oder die Befehle zum Abrufen von Protokollen ausführen.
$pcluster describe-image --image-idIMAGE_ID--regionREGION
Der build-image Befehl erstellt einen CloudFormation Stack mit allen Amazon EC2-Ressourcen, die zum Erstellen des Images erforderlich sind, und startet den EC2 Image Builder-Prozess.
Nach der Ausführung des build-image Befehls ist es möglich, CloudFormation Stack-Ereignisse mithilfe von abzurufen. pcluster get-image-stack-events Sie können die Ergebnisse mit dem --query Parameter filtern, um die neuesten Ereignisse anzuzeigen. Weitere Informationen finden Sie im AWS Command Line Interface Benutzerhandbuch unter Filtern der AWS CLI Ausgabe.
$pcluster get-image-stack-events --image-idIMAGE_ID--regionREGION--query "events[0]"{ "eventId": "ParallelClusterImage-CREATE_IN_PROGRESS-2022-04-05T21:39:24.725Z", "physicalResourceId": "arn:aws:imagebuilder:us-east-1:123456789012:image/parallelclusterimage-IMAGE_ID/3.16.1/1", "resourceStatus": "CREATE_IN_PROGRESS", "resourceStatusReason": "Resource creation Initiated", "resourceProperties": "{\"InfrastructureConfigurationArn\":\"arn:aws:imagebuilder:us-east-1:123456789012:infrastructure-configuration/parallelclusterimage-abcd1234-ef56-gh78-ij90-1234abcd5678\",\"ImageRecipeArn\":\"arn:aws:imagebuilder:us-east-1:123456789012:image-recipe/parallelclusterimage-IMAGE_ID/3.16.1\",\"DistributionConfigurationArn\":\"arn:aws:imagebuilder:us-east-1:123456789012:distribution-configuration/parallelclusterimage-abcd1234-ef56-gh78-ij90-1234abcd5678\",\"Tags\":{\"parallelcluster:image_name\":\"IMAGE_ID\",\"parallelcluster:image_id\":\"IMAGE_ID\"}}", "stackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/IMAGE_ID/abcd1234-ef56-gh78-ij90-1234abcd5678", "stackName": "IMAGE_ID", "logicalResourceId": "ParallelClusterImage", "resourceType": "AWS::ImageBuilder::Image", "timestamp": "2022-04-05T21:39:24.725Z" }
Nach etwa 15 Minuten erscheinen die Stack-Ereignisse im Protokollereigniseintrag, der sich auf die Erstellung von Image Builder bezieht. Sie können jetzt Image-Log-Streams auflisten und die Image Builder-Schritte mithilfe der pcluster get-image-log-events Befehle pcluster list-image-log-streams und überwachen.
$pcluster list-image-log-streams --image-id"3.16.1/1" ]IMAGE_ID--regionREGION\ --query 'logStreams[*].logStreamName'$pcluster get-image-log-events --image-idIMAGE_ID--regionREGION\ --log-stream-name 3.16.1/1 --limit 3{ "nextToken": "f/36295977202298886557255241372854078762600452615936671762", "prevToken": "b/36295977196879805474012299949460899222346900769983430672", "events": [ { "message": "ExecuteBash: FINISHED EXECUTION", "timestamp": "2022-04-05T22:13:26.633Z" }, { "message": "Document arn:aws:imagebuilder:us-east-1:123456789012:component/parallelclusterimage-test-abcd1234-ef56-gh78-ij90-1234abcd5678/3.16.1/1", "timestamp": "2022-04-05T22:13:26.741Z" }, { "message": "TOE has completed execution successfully", "timestamp": "2022-04-05T22:13:26.819Z" } ] }
Prüfen Sie mit dem describe-image Befehl so lange, bis Sie den BUILD_COMPLETE Status sehen.
$pcluster describe-image --image-idIMAGE_ID--regionREGION{ "imageConfiguration": { "url": "https://parallelcluster-1234abcd5678efgh-v1-do-not-delete.s3.us-east-1.amazonaws.com/parallelcluster/3.16.1/images/IMAGE_ID-abcd1234efgh5678/configs/image-config.yaml?Signature=..." }, "imageId": "IMAGE_ID", "imageBuildStatus": "BUILD_COMPLETE", "region": "us-east-1", "ec2AmiInfo": { "amiName": "IMAGE_ID 2022-04-05T21-39-24.020Z", "amiId": "ami-1234stuv5678wxyz", "description": "AWS ParallelCluster AMI for alinux2, kernel-4.14.238-182.422.amzn2.x86_64, lustre-2.10.8-5.amzn2.x86_64, efa-1.13.0-1.amzn2.x86_64, dcv-2021.1.10598-1.el7.x86_64, slurm-20-11-8-1", "state": "AVAILABLE", "tags": [ { "value": "2021.3.11591-1.el7.x86_64", "key": "parallelcluster:dcv_version" }, ... ], "architecture": "x86_64" }, "version": "3.16.1" }
Wenn Sie ein Problem bei der Erstellung eines benutzerdefinierten AMIs beheben müssen, erstellen Sie ein Archiv der Image-Protokolle, wie in den folgenden Schritten beschrieben.
Je nach --output Parameter ist es möglich, die Protokolle in einem Amazon S3-Bucket oder in einer lokalen Datei zu archivieren.
$pcluster export-image-logs --image-idIMAGE_ID--regionREGION\ --bucketBUCKET_NAME--bucket-prefixBUCKET_FOLDER{ "url": "https://BUCKET_NAME.s3.us-east-1.amazonaws.com/BUCKET-FOLDER/IMAGE_ID-logs-202209071136.tar.gz?AWSAccessKeyId=..." }$pcluster export-image-logs --image-idIMAGE_ID\ --regionREGION--bucketBUCKET_NAME--bucket-prefixBUCKET_FOLDER--output-file /tmp/archive.tar.gz{ "path": "/tmp/archive.tar.gz" }
Das Archiv enthält die CloudWatch Logs-Streams, die sich auf den Image Builder-Prozess und die CloudFormation Stack-Ereignisse beziehen. Die Ausführung des Befehls kann mehrere Minuten dauern.
Verwaltung benutzerdefinierter AMIs
Ab AWS ParallelCluster Version 3.0.0 wurde der CLI ein neuer Befehlssatz hinzugefügt, um den Image-Lebenszyklus zu erstellen, zu überwachen und zu verwalten. Weitere Informationen zu den Befehlen finden Sie unter pcluster-Befehle.
Ändern Sie eine AWS ParallelCluster AMI
Diese Methode besteht darin, ein offizielles AWS ParallelCluster AMI zu modifizieren, indem zusätzliche Anpassungen hinzugefügt werden. Die AWS ParallelCluster Basis-AMIs werden mit neuen Versionen aktualisiert. Diese AMIs verfügen über alle Komponenten, die für den Betrieb AWS ParallelCluster erforderlich sind, wenn sie installiert und konfiguriert sind. Sie können mit einer dieser Komponenten als Basis beginnen.
Die wichtigsten Punkte:
-
Diese Methode ist schneller als der build-image Befehl. Es handelt sich jedoch um einen manuellen Vorgang, der nicht automatisch wiederholbar ist.
-
Bei dieser Methode haben Sie keinen Zugriff auf die Befehle zum Abrufen von Protokollen und zur Verwaltung des Image-Lebenszyklus, die über die CLI verfügbar sind.
Schritte: