Les utilisateurs de Automation Assembler qui ont besoin de concevoir et d'exécuter des intégrations Deform tout en étant déconnectés d'Internet peuvent configurer leur environnement d'exécution en suivant cet exemple.

Note : Pour obtenir une source pour la création d'image, l'installation implique de se connecter brièvement à Internet. Vous devrez peut-être effectuer ces étapes en dehors de votre site déconnecté si une connexion temporaire n'est pas possible.

Ce processus part du principe que vous disposer de votre propre registre Docker et que vous pouvez accéder à ses référentiels sans connexion Internet.

Créer l'image de conteneur personnalisée

  1. Créez une image de conteneur personnalisée qui inclut les fichiers binaires du plug-in du fournisseur Terraform.

    Le Dockerfile suivant montre un exemple de création d'image personnalisée avec le fournisseur GCP Terraform.

    Le téléchargement de l'image de base projects.registry.vmware.com/vra/terraform:latest dans le Dockerfile nécessite un accès Internet au registre VMware Harbor à projects.registry.vmware.com.

    Les paramètres de pare-feu ou de proxy peuvent entraîner l'échec de la build d'image. Vous pouvez avoir besoin d'activer un accès à releases.hashicorp.com pour télécharger les fichiers binaires du plug-in du fournisseur Terraform. Cependant, vous pouvez utiliser votre registre privé pour fournir les binaires du plug-in en tant qu'option.

    FROM projects.registry.vmware.com/vra/terraform:latest as final
     
    # Create provider plug-in directory
    ARG plugins=/tmp/terraform.d/plugin-cache/linux_amd64
    RUN mkdir -m 777 -p $plugins
      
    # Download and unzip all required provider plug-ins from hashicorp to provider directory
    RUN cd $plugins \
        && wget -q https://releases.hashicorp.com/terraform-provider-google/3.58.0/terraform-provider-google_3.58.0_linux_amd64.zip \
        && unzip *.zip \
        && rm *.zip
      
    # For "terraform init" configure terraform CLI to use provider plug-in directory and not download from internet
    ENV TF_CLI_ARGS_init="-plugin-dir=$plugins -get-plugins=false"
  2. Créez, balisez et transmettez l'image de conteneur personnalisée vers votre propre référentiel Docker sur votre site déconnecté.
  3. Dans Automation Assembler sur votre site déconnecté, sous Infrastructure > Connexions > Intégrations, accédez à l'intégration d'exécution Terraform.
  4. Créez ou modifiez les paramètres du conteneur d'exécuter pour ajouter votre référentiel pour l'image de conteneur personnalisée. Le nom d'image de conteneur personnalisé de l'exemple est registry.ourcompany.com/project1/image1:latest.
    Image de conteneur Terraform

Héberger l'interface de ligne de commande Terraform localement

  1. Téléchargez les fichiers binaires de l'interface de ligne de commande Terraform.
  2. Téléchargez les fichiers binaires de l'interface de ligne de commande Terraform sur votre serveur Web ou FTP local.
  3. Dans Automation Assembler, accédez à Infrastructure > Configurer > Versions de Terraform.
  4. Créez ou modifiez la version de Terraform afin qu'elle inclut l'URL aux fichiers binaires de l'interface de ligne de commande Terraform hébergés sur votre serveur local.
  5. Si votre serveur Web ou FTP local nécessite une authentification de connexion, sélectionnez Authentification de base, et entrez les informations d'identification du nom d'utilisateur et du mot de passe donnant accès au serveur.

    Pour modifier le type d'authentification, vous devez disposer du rôle d'administrateur de cloud dans Automation Assembler.

    URL de l'interface de ligne de commande Terraform

Concevoir et déployer des configurations Terraform

Une fois l'exécution en place, vous pouvez ajouter des fichiers de configuration Terraform à Git, concevoir des modèles de cloud pour eux et les déployer.

Pour démarrer, consultez Préparation des configurations Terraform dans Automation Assembler.

Dépannage

Lors du déploiement, ouvrez le déploiement dans Automation Assembler. Sous l'onglet Historique, recherchez les événements Terraform et clique sur Afficher les journaux à droite. Lorsque votre fournisseur Terraform local fonctionne, les messages suivants figurent dans le journal.

Initializing provider plugins

Terraform has been successfully initialized

Pour un journal plus robuste, vous pouvez modifier manuellement le code du modèle de cloud pour ajouter des TF_LOG: DEBUG comme le montre l'exemple suivant.

resources:
  terraform:
    type: Cloud.Terraform.Configuration
    properties:
      providers:
        - name: google
          # List of available cloud zones: gcp/us-west1
          cloudZone: gcp/us-west1
      environment:
        # Configure terraform CLI debug log settings
        TF_LOG: DEBUG
      terraformVersion: 0.12.29
      configurationSource:
        repositoryId: fc569ef7-f013-4489-9673-6909a2791071
        commitId: 3e00279a843a6711f7857929144164ef399c7421
        sourceDirectory: gcp-simple

Création de votre propre image de base

Bien que VMware mette parfois à jour l'image de base dans projects.registry.vmware.com/vra/terraform:latest, cette image peut être obsolète et contenir des vulnérabilités.

Pour créer votre propre image de base, utilisez plutôt le fichier Docker suivant.

FROM alpine:latest as final
RUN apk add --no-cache git wget curl openssh