View a markdown version of this page

Définir un projet Terraform - AWS ParallelCluster

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.

  1. Créez un répertoire appelémy-amis.

    Tous les fichiers que vous créez se trouveront dans ce répertoire.

  2. Créez le fichier terraform.tf pour importer le ParallelCluster fournisseur.

    terraform { required_version = ">= 1.5.7" required_providers { aws-parallelcluster = { source = "aws-tf/aws-parallelcluster" version = "~> 1.0" } } }
  3. Créez le fichier providers.tf pour 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 }
  4. Créez le fichier main.tf pour 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 exemplerollback_on_failure, image_id et 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 }
  5. Créez le fichier variables.tf pour 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." }
  6. Créez le fichier terraform.tfvars pour définir vos valeurs arbitraires pour les variables.

    Dans le fichier ci-dessous, déployez l'AMI personnalisée us-east-1 basé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-1 MyParallelClusterAPI-3111

    region = "us-east-1" api_stack_name = "MyParallelClusterAPI-3111" api_version = "3.11.1" os = "alinux2" architecture = "x86_64"
  7. Créez le fichier outputs.tf pour 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.