Les utilisateurs de Cloud Assembly 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.
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
- 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"
- Créez, balisez et transmettez l'image de conteneur personnalisée vers votre propre référentiel Docker sur votre site déconnecté.
- Dans Cloud Assembly sur votre site déconnecté, sous , accédez à l'intégration d'exécution Terraform.
- 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
.
Héberger l'interface de ligne de commande Terraform localement
- Téléchargez les fichiers binaires de l'interface de ligne de commande Terraform.
- Téléchargez les fichiers binaires de l'interface de ligne de commande Terraform sur votre serveur Web ou FTP local.
- Dans Cloud Assembly, accédez à .
- 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.
- 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 Cloud Assembly.
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 Cloud Assembly.
Dépannage
Lors du déploiement, ouvrez le déploiement dans Cloud Assembly. 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