Cloud Assembly-gebruikers die Terraform-integraties moeten ontwerpen en uitvoeren indien niet verbonden met internet, kunnen hun runtime-omgeving instellen door dit voorbeeld te volgen.
Bij dit proces wordt ervan uitgegaan dat u uw eigen Docker-register hebt en dat u zonder internetverbinding toegang hebt tot de opslagplaatsen.
De aangepaste containerimage maken
- Maak een aangepaste containerimage die de binaire bestanden van de Terraform-providerinvoegtoepassing bevat.
In het volgende Docker-bestand ziet u een voorbeeld van het maken van een aangepaste image met de Terraform GCP-provider.
Voor de download van de basisimage
projects.registry.vmware.com/vra/terraform:latest
in het Docker-bestand is internettoegang vereist tot het VMware Harbor-register op projects.registry.vmware.com.Firewallinstellingen of proxyinstellingen kunnen ertoe leiden dat de imagebuild mislukt. Mogelijk heeft u toegang nodig tot releases.hashicorp.com om de binaire bestanden van de Terraform-providerinvoegtoepassing te downloaden. U kunt echter uw privéregister gebruiken om de binaire bestanden van de invoegtoepassing als optie te leveren.
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"
- Bouw, tag en push de aangepaste containerimage naar uw eigen Docker-opslagplaats op uw locatie zonder verbinding.
- Ga in Cloud Assembly op uw locatie zonder verbinding onder naar uw Terraform-runtime-integratie.
- Maak of bewerk de runtimecontainerinstellingen om uw opslagplaats toe te voegen voor de aangepaste containerimage. De naam van het voorbeeld van de ingebouwde aangepaste containerimage is
registry.ourcompany.com/project1/image1:latest
.
De Terraform CLI lokaal hosten
- Download de binaire bestanden voor de Terraform CLI.
- Upload de binaire bestanden voor de Terraform CLI naar uw lokale webserver of FTP-server.
- Ga in Cloud Assembly naar .
- Maak of bewerk de Terraform-versie zodat deze de URL naar de binaire bestanden voor de Terraform CLI bevat die op uw lokale server worden gehost.
- Als voor uw lokale web- of FTP-server aanmeldingsverificatie is vereist, selecteert u Basisverificatie en voert u de verificatiegegevens voor gebruikersnaam en wachtwoord in die toegang geven tot de server.
Als u het verificatietype wilt wijzigen, moet u de rol van cloudbeheerder in Cloud Assembly hebben.
Terraform-configuraties ontwerpen en implementeren
Als de runtime is geïmplementeerd, kunt u Terraform-configuratiebestanden aan git toevoegen, cloudsjablonen voor die bestanden ontwerpen en implementeren.
Zie Terraform-configuraties in Cloud Assembly voorbereiden om aan de slag te gaan.
Problemen oplossen
Open de implementatie in Cloud Assembly tijdens het implementeren. Zoek op het tabblad Geschiedenis naar Terraform-gebeurtenissen en klik op Logboeken weergeven aan de rechterkant. Wanneer uw lokale Terraform-provider werkt, worden de volgende berichten in het logboek weergegeven.
Initializing provider plugins
Terraform has been successfully initialized
Voor een meer robuust logboek kunt u de cloudsjablooncode handmatig bewerken om TF_LOG: DEBUG
toe te voegen, zoals in het volgende voorbeeld wordt weergegeven.
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
Uw eigen basisimage maken
Hoewel VMware de basisimage bij projects.registry.vmware.com/vra/terraform:latest
af en toe bijwerkt, kan die image verouderd zijn en kwetsbaarheden bevatten.
Als u uw eigen basisimage wilt bouwen, gebruikt u in plaats daarvan het volgende Docker-bestand.
FROM alpine:latest as final RUN apk add --no-cache git wget curl openssh