Utilisation de GitLab CI/CD pour déployer Terraform et des modèles AWS CDK CloudFormation - AWS Directives prescriptives

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.

Utilisation de GitLab CI/CD pour déployer Terraform et des modèles AWS CDK CloudFormation

DPAcontient des modèles GitLab CI/CD que vous utilisez comme éléments de base pour déployer Terraform et le code AWS Cloud Development Kit (AWS CDK) IaC. CloudFormation Cette section décrit les éléments suivants pour ce cas d'utilisation :

  • Structure de pipeline normalisée

  • Stages et travaux réutilisables

  • Règles relatives à la structure du pipeline

  • Outils intégrés pour les scans de sécurité

Prérequis

  • Un actif Compte AWS

  • Autorisations de mise à disposition de ressources à l'aide de modèles IaC

  • GitLab compte avec tout type de version sans licence, premium ou d'entreprise prenant en charge GitLab les fonctionnalités CI/CD

  • GitLab exécuteurs requis configurés pour exécuter des tâches avec des images Docker spécifiques

Outils

Instructions

  1. Copiez le gitlab-ci répertoire et hébergez-le dans votre groupe GitLab organisationnel.

  2. Assurez-vous que les applications peuvent accéder au groupe GitLab organisationnel qui contient les DPA modèles.

  3. Pour l'application, incluez le point d'entrée DPA spécifique pour le pipeline comme suit :

    • Terraform

      include: - project: <GITLAB_GROUP_PATH/<REPOSITORY_NAME> ref: main # best practise to create release tag and use the same file: gitlab-ci/entrypoints/gitlab/terraform-infrastructure.yml
    • AWS CDK

      include: - project: <GITLAB_GROUP_PATH/<REPOSITORY_NAME> ref: main # best practise to create release tag and use the same file: gitlab-ci/entrypoints/gitlab/cdk-infrastructure.yml
    • CloudFormation

      include: - project: <GITLAB_GROUP_PATH/<REPOSITORY_NAME> ref: main # best practise to create release tag and use the same file: gitlab-ci/entrypoints/gitlab/cf-infrastructure.yml
  4. Pour l'application, définissez les variables suivantes afin de permettre le déploiement sur DEV et INTEGRATION les environnements.

    AWS_REGION: us-east-2 # region where deployment should happen DEV_AWS_ACCOUNT: 123456789012 # Dev environment AWS account number DEV_ARN_ROLE: arn:aws:iam::123456789012:role/dpa-gitlab-access-role # IAM role ARN that will be used to provision resources in Dev DEV_DEPLOY: "true" # true / false to enable deployment to DEV environment DEV_ENV: "dev" # Dev environment name INT_AWS_ACCOUNT: 123456789012 # Integration environment AWS account number INT_ARN_ROLE: arn:aws:iam::123456789012:role/dpa-gitlab-access-role # IAM role ARN that will be used to provision resources in Integration INT_DEPLOY: "true" # true / false to enable deployment to Integration environment INT_ENV: "int" # Integration environment name