Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Définir un projet Terraform
Dans ce didacticiel, vous allez définir un projet Terraform simple pour déployer une ParallelCluster AMI personnalisée.
Créez un répertoire appelé
my-amis.Tous les fichiers que vous créez se trouveront dans ce répertoire.
Créez le fichier
terraform.tfpour importer le ParallelCluster fournisseur.terraform { required_version = ">= 1.5.7" required_providers { aws-parallelcluster = { source = "aws-tf/aws-parallelcluster" version = "~> 1.0" } } }Créez le fichier
providers.tfpour configurer les AWS fournisseurs ParallelCluster et.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 }Créez le fichier
main.tfpour définir les ressources à l'aide du ParallelCluster module.Pour consulter les propriétés de l'image que vous pouvez définir au sein de l'
image_configurationélément, voirCréez des fichiers de configuration d'image.Pour consulter les options que vous pouvez définir pour la création d'images, par exemple
rollback_on_failure,image_idet voirpcluster 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 }Créez le fichier
variables.tfpour définir les variables qui peuvent être injectées pour ce projet.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." }Créez le fichier
terraform.tfvarspour définir vos valeurs arbitraires pour les variables.Dans le fichier ci-dessous, déployez l'AMI personnalisée
us-east-1basée sur l'architecture Amazon Linux 2 pour x86_64, en utilisant l' ParallelCluster API 3.11.1 existante qui est déjà déployée avec le nom de la pile.us-east-1MyParallelClusterAPI-3111region = "us-east-1" api_stack_name = "MyParallelClusterAPI-3111" api_version = "3.11.1" os = "alinux2" architecture = "x86_64"Créez le fichier
outputs.tfpour définir les sorties renvoyées par ce projet.output "parent_image" { value = data.aws-parallelcluster_list_official_images.parent_image.official_images[0] } output "custom_image" { value = aws-parallelcluster_image.demo01 }Le répertoire du projet est le suivant :
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.