View a markdown version of this page

Definieren Sie ein Terraform-Projekt - AWS ParallelCluster

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.

Definieren Sie ein Terraform-Projekt

In diesem Tutorial definieren Sie ein einfaches Terraform-Projekt zur Bereitstellung eines ParallelCluster benutzerdefinierten AMI.

  1. Erstellen Sie ein Verzeichnis namens. my-amis

    Alle Dateien, die Sie erstellen, befinden sich in diesem Verzeichnis.

  2. Erstellen Sie die Dateiterraform.tf, um den ParallelCluster Anbieter zu importieren.

    terraform { required_version = ">= 1.5.7" required_providers { aws-parallelcluster = { source = "aws-tf/aws-parallelcluster" version = "~> 1.0" } } }
  3. Erstellen Sie die Dateiproviders.tf, um die AWS Anbieter ParallelCluster und zu konfigurieren.

    provider "aws" { region = var.region profile = var.profile } provider "aws-parallelcluster" { region = var.region profile = var.profile api_stack_name = var.api_stack_name use_user_role = true }
  4. Erstellen Sie die Dateimain.tf, um die Ressourcen mithilfe des ParallelCluster Moduls zu definieren.

    Informationen zu den Bildeigenschaften, die Sie innerhalb des image_configuration Elements festlegen können, finden Sie unterImage-Konfigurationsdateien erstellen.

    Informationen zu den Optionen, die Sie für die Image-Erstellung festlegen können, z. B. image_id undrollback_on_failure, finden Sie unterpcluster build-image.

    data "aws-parallelcluster_list_official_images" "parent_image" { region = var.region os = var.os architecture = var.architecture } resource "aws-parallelcluster_image" "demo01" { image_id = "demo01" image_configuration = yamlencode({ "Build":{ "InstanceType": "c5.2xlarge", "ParentImage": data.aws-parallelcluster_list_official_images.parent_image.official_images[0].amiId, "UpdateOsPackages": {"Enabled": false} } }) rollback_on_failure = false }
  5. Erstellen Sie die Dateivariables.tf, um die Variablen zu definieren, die für dieses Projekt eingefügt werden können.

    variable "region" { description = "The region the ParallelCluster API is deployed in." type = string default = "us-east-1" } variable "profile" { type = string description = "The AWS profile used to deploy the clusters." default = null } variable "api_stack_name" { type = string description = "The name of the CloudFormation stack used to deploy the ParallelCluster API." default = "ParallelCluster" } variable "api_version" { type = string description = "The version of the ParallelCluster API." } variable "os" { type = string description = "The OS of the ParallelCluster image." } variable "architecture" { type = string description = "The architecture of the ParallelCluster image." }
  6. Erstellen Sie die Dateiterraform.tfvars, um Ihre beliebigen Werte für die Variablen festzulegen.

    Stellen Sie mit der folgenden Datei das benutzerdefinierte AMI bereit, das auf der Architektur Amazon Linux 2 für x86_64 us-east-1 basiert, und verwenden Sie dabei die vorhandene ParallelCluster API 3.11.1, die bereits mit dem Stacknamen bereitgestellt wurde. us-east-1 MyParallelClusterAPI-3111

    region = "us-east-1" api_stack_name = "MyParallelClusterAPI-3111" api_version = "3.11.1" os = "alinux2" architecture = "x86_64"
  7. Erstellen Sie die Dateioutputs.tf, um die von diesem Projekt zurückgegebenen Ausgaben zu definieren.

    output "parent_image" { value = data.aws-parallelcluster_list_official_images.parent_image.official_images[0] } output "custom_image" { value = aws-parallelcluster_image.demo01 }

    Das Projektverzeichnis ist:

    my-amis ├── main.tf - Terraform entrypoint where the ParallelCluster module is configured. ├── outputs.tf - Defines the cluster as a Terraform output. ├── providers.tf - Configures the providers: ParallelCluster and AWS. ├── terraform.tf - Import the ParallelCluster provider. ├── terraform.tfvars - Defines values for variables, e.g. region, PCAPI stack name. └── variables.tf - Defines the variables, e.g. region, PCAPI stack name.