View a markdown version of this page

定義 Terraform 專案 - AWS ParallelCluster

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

定義 Terraform 專案

在本教學課程中,您將定義簡單的 Terraform 專案來部署 ParallelCluster 自訂 AMI。

  1. 建立名為 的目錄my-amis

    您建立的所有檔案都將在此目錄中。

  2. 建立 檔案terraform.tf以匯入 ParallelCluster 供應商。

    terraform { required_version = ">= 1.5.7" required_providers { aws-parallelcluster = { source = "aws-tf/aws-parallelcluster" version = "~> 1.0" } } }
  3. 建立 檔案providers.tf以設定 ParallelCluster 和 AWS 提供者。

    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. 建立 檔案main.tf以使用 ParallelCluster 模組定義資源。

    若要檢閱您可以在 image_configuration元素中設定的映像屬性,請參閱 建置映像組態檔案

    若要檢閱您可以為影像建立設定的選項,例如 image_idrollback_on_failure,請參閱 pcluster 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. 建立 檔案variables.tf以定義可為此專案注入的變數。

    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. 建立 檔案terraform.tfvars以設定變數的任意值。

    使用下列檔案,使用已部署在us-east-1堆疊名稱為 的現有 ParallelCluster API 3.11.1,us-east-1以適用於 x86_64 架構的 Amazon Linux 2 在 中部署自訂 AMI。 MyParallelClusterAPI-3111

    region = "us-east-1" api_stack_name = "MyParallelClusterAPI-3111" api_version = "3.11.1" os = "alinux2" architecture = "x86_64"
  7. 建立 檔案outputs.tf以定義此專案傳回的輸出。

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

    專案目錄為:

    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.