Containerinstallatiekopieën configureren om implementaties uit te voeren
Azure Deployment Environments (ADE) ondersteunt een uitbreidbaarheidsmodel waarmee u uw omgevingsdefinitie kunt configureren met het IaC-sjabloonframework van uw voorkeur. U kunt aangepaste installatiekopieën opslaan in een containerregister, zoals Azure Container Registry (ACR) of Docker Hub, en deze vervolgens in uw omgevingsdefinities raadplegen om omgevingen te implementeren.
In dit artikel leert u hoe u aangepaste Bicep-containerinstallatiekopieën bouwt om uw omgevingsdefinities in ADE te implementeren. U leert hoe u een standaardinstallatiekopie van Microsoft gebruikt of hoe u een aangepaste infrastructuur voor het inrichten van installatiekopieën configureert met behulp van het Bicep Infrastructure-as-Code-framework (IaC).
In dit artikel leert u hoe u aangepaste Terraform-containerinstallatiekopieën bouwt om implementatieomgevingen te maken met Azure Deployment Environments (ADE). U leert hoe u een aangepaste installatiekopie configureert om infrastructuur in te richten met behulp van het Terraform IaC-framework (Infrastructure-as-Code).
In dit artikel leert u hoe u Pulumi gebruikt voor implementaties in ADE. U leert hoe u een standaardinstallatiekopie van Pulumi gebruikt of hoe u een aangepaste installatiekopie configureert om infrastructuur in te richten met behulp van het IaC-framework (Infrastructure-as-Code).
Vereisten
- Een Azure-account met een actief abonnement. Gratis een account maken
- Azure Deployment Environments die zijn ingesteld in uw Azure-abonnement.
- Als u ADE wilt instellen, volgt u de quickstart: Azure Deployment Environments configureren.
Containerinstallatiekopieën gebruiken met ADE
U kunt een van de volgende methoden gebruiken om containerinstallatiekopieën met ADE te gebruiken:
- Gebruik een standaardcontainerinstallatiekopieën voor eenvoudige scenario's de standaard ARM-Bicep-containerinstallatiekopieën die door ADE worden geleverd.
- Maak een aangepaste containerinstallatiekopieën Voor complexere scenario's maakt u een aangepaste containerinstallatiekopieën die voldoen aan uw specifieke vereisten.
Een standaardcontainerinstallatiekopieën gebruiken
ADE ondersteunt Arm (Azure Resource Manager) en Bicep zonder extra configuratie. U kunt een omgevingsdefinitie maken waarmee Azure-resources voor een implementatieomgeving worden geïmplementeerd door de sjabloonbestanden (zoals azuredeploy.json en environment.yaml) toe te voegen aan uw catalogus. ADE gebruikt vervolgens de standaard ARM-Bicep-containerinstallatiekopieën om de implementatieomgeving te maken.
In het bestand environment.yaml geeft de runner
eigenschap de locatie op van de containerinstallatiekopieën die u wilt gebruiken. Als u de standaardinstallatiekopieën wilt gebruiken die op de Microsoft-artefactregister is gepubliceerd, gebruikt u de respectieve id'srunner
.
In het volgende voorbeeld ziet u een runner
afbeelding die verwijst naar de standaard-ARM-Bicep-containerinstallatiekopieën:
name: WebApp
version: 1.0.0
summary: Azure Web App Environment
description: Deploys a web app in Azure without a datastore
runner: Bicep
templatePath: azuredeploy.json
U ziet de standaard-Bicep-containerinstallatiekopieën in de standaardopslagplaats van ADE onder de map Runner-Images voor de ARM-Bicep-installatiekopieën .
Zie Een omgevingsdefinitie toevoegen en configureren voor meer informatie over het maken van omgevingsdefinities die gebruikmaken van de ADE-containerinstallatiekopieën om uw Azure-resources te implementeren.
Een aangepaste containerinstallatiekopie maken
- Een aangepaste installatiekopieën maken met behulp van een script
- Handmatig een aangepaste installatiekopieën maken
Een aangepaste containerinstallatiekopieën maken met behulp van een script
Door een aangepaste containerinstallatiekopieën te maken, kunt u uw implementaties aanpassen aan uw vereisten. U kunt een installatiekopieën maken en bouwen op basis van de standaardinstallatiekopieën van ADE en deze naar uw containerregister pushen met behulp van een snelstartscript van Microsoft. U vindt het script in de opslagplaats Implementatieomgevingen. Als u het snelstartscript wilt gebruiken, forkt u de opslagplaats en voert u het script lokaal uit.
Het script bouwt een installatiekopieën en pusht deze naar het opgegeven Azure Container Registry (ACR) onder de opslagplaats 'ade' en de tag 'latest'. Voor dit script zijn uw registernaam en map voor uw aangepaste installatiekopieën vereist, moet azure CLI en Docker Desktop zijn geïnstalleerd en in uw PATH-variabelen. Hiervoor moet u machtigingen hebben om naar het opgegeven register te pushen.
Als u het snelstartscript wilt gebruiken om deze voorbeeldinstallatiekopieën snel te bouwen en naar een Azure Container Registry te pushen, moet u het volgende doen:
- Fork deze opslagplaats in uw persoonlijke account.
- Zorg ervoor dat de Azure CLI en de Docker Desktop-toepassing zijn geïnstalleerd op uw computer en in uw PATH-variabelen.
- Zorg ervoor dat u gemachtigd bent om installatiekopieën naar uw geselecteerde Azure Container Registry te pushen.
U kunt het script aanroepen met behulp van de volgende opdracht in PowerShell:
.\quickstart-image-build.ps1 -Registry '{YOUR_REGISTRY}' -Directory '{DIRECTORY_TO_YOUR_IMAGE}'
Als u bovendien wilt pushen naar een specifieke opslagplaats en tagnaam, kunt u het volgende uitvoeren:
.\quickstart-image.build.ps1 -Registry '{YOUR_REGISTRY}' -Directory '{DIRECTORY_TO_YOUR_IMAGE}' -Repository '{YOUR_REPOSITORY}' -Tag '{YOUR_TAG}'
Als u de installatiekopieën in uw omgevingsimplementaties wilt gebruiken, moet u de locatie van de installatiekopieën toevoegen aan uw manifestbestand . U moet mogelijk machtigingen voor de ACR configureren om de aangepaste installatiekopieën beschikbaar te maken voor ADE.
Containerinstallatiekopieën gebruiken met ADE
U kunt een van de volgende methoden gebruiken om containerinstallatiekopieën met ADE te gebruiken:
- Maak een aangepaste containerinstallatiekopieën met behulp van een script: gebruik het gepubliceerde script om een specifieke Terraform-installatiekopieën te maken.
- Maak een aangepaste containerinstallatiekopie met behulp van een GitHub-werkstroom: gebruik de gepubliceerde GitHub-werkstroom uit het uitbreidbaarheidsmodel van ADE met terraform-opslagplaats.
- Handmatig een aangepaste containerinstallatiekopieën maken: handmatig een aangepaste Terraform-specifieke installatiekopieën maken
Een aangepaste containerinstallatiekopie maken
- Een installatiekopieën maken met behulp van een script
- Een installatiekopieën maken met behulp van een GitHub-werkstroom
- Handmatig een installatiekopieën maken
Een aangepaste containerinstallatiekopieën maken met behulp van een script
Door een aangepaste containerinstallatiekopieën te maken, kunt u uw implementaties aanpassen aan uw vereisten. U kunt een installatiekopieën bouwen op basis van de standaardinstallatiekopieën van ADE en deze naar uw containerregister pushen met behulp van een snelstartscript van Microsoft. U vindt het script in de implementatieomgevingen met de Terraform-opslagplaats. Als u het snelstartscript wilt gebruiken, forkt u de opslagplaats en voert u het script lokaal uit.
Als u het snelstartscript wilt gebruiken om deze voorbeeldinstallatiekopieën snel te bouwen en naar een Azure Container Registry te pushen, moet u het volgende doen:
- Fork deze opslagplaats in uw persoonlijke account.
- Zorg ervoor dat de Azure CLI en de Docker Desktop-toepassing zijn geïnstalleerd op uw computer en in uw PATH-variabelen.
- Zorg ervoor dat u gemachtigd bent om installatiekopieën naar uw geselecteerde Azure Container Registry te pushen.
Het script bouwt een installatiekopieën en pusht deze naar het opgegeven Azure Container Registry (ACR) onder de opslagplaats 'ade' en de tag 'latest'. Voor dit script zijn uw registernaam en map voor uw aangepaste installatiekopieën vereist, moet azure CLI en Docker Desktop zijn geïnstalleerd en in uw PATH-variabelen. Hiervoor moet u machtigingen hebben om naar het opgegeven register te pushen. U kunt het script aanroepen met behulp van de volgende opdracht in PowerShell:
.\quickstart-image-build.ps1 -Registry '{YOUR_REGISTRY}' -Directory '{DIRECTORY_TO_YOUR_IMAGE}'
Als u bovendien wilt pushen naar een specifieke opslagplaats en tagnaam, kunt u het volgende uitvoeren:
.\quickstart-image.build.ps1 -Registry '{YOUR_REGISTRY}' -Directory '{DIRECTORY_TO_YOUR_IMAGE}' -Repository '{YOUR_REPOSITORY}' -Tag '{YOUR_TAG}'
Als u de installatiekopieën in uw omgevingsimplementaties wilt gebruiken, moet u de locatie van de installatiekopieën toevoegen aan uw manifestbestand . U moet mogelijk machtigingen voor de ACR configureren om de aangepaste installatiekopieën beschikbaar te maken voor ADE.
Een standaardcontainerinstallatiekopieën van Pulumi gebruiken
Het Pulumi-team biedt een vooraf samengestelde installatiekopieën om u op weg te helpen, die u kunt zien in de map Runner-Image . Deze installatiekopieën zijn openbaar beschikbaar in de Docker Hub van Pulumi, pulumi/azure-deployment-environments
zodat u deze rechtstreeks vanuit uw ADE-omgevingsdefinities kunt gebruiken.
Hier volgt een voorbeeldbestand environment.yaml dat gebruikmaakt van de vooraf gemaakte installatiekopieën:
name: SampleDefinition
version: 1.0.0
summary: First Pulumi-Enabled Environment
description: Deploys a Storage Account with Pulumi
runner: pulumi/azure-deployment-environments:0.1.0
templatePath: Pulumi.yaml
U vindt een aantal voorbeeldomgevingdefinities in de map Omgevingen.
Een aangepaste installatiekopie maken
Door een aangepaste containerinstallatiekopieën te maken, kunt u uw implementaties aanpassen aan uw vereisten. U kunt aangepaste installatiekopieën maken op basis van de standaardafbeeldingen van Pulumi en deze aanpassen aan uw vereisten. Nadat u de aanpassing van de installatiekopieën hebt voltooid, moet u de installatiekopieën bouwen en naar het containerregister pushen.
Als u een installatiekopieën wilt maken die is geconfigureerd voor ADE, voert u de volgende stappen uit:
- Maak een aangepaste installatiekopieën op basis van een standaardinstallatiekopieën.
- Installeer de gewenste pakketten.
- Configureer bewerkingsshellscripts.
- Maak shellscripts voor bewerkingen die gebruikmaken van de Pulumi CLI.
1. Een aangepaste installatiekopieën maken op basis van een standaardinstallatiekopieën
Maak een DockerFile met een FROM-instructie die verwijst naar een standaardinstallatiekopie die wordt gehost op Microsoft-artefactregister.
Hier volgt een voorbeeld van een FROM-instructie, die verwijst naar de standaardkerninstallatiekopie:
FROM mcr.microsoft.com/deployment-environments/runners/core:latest
Met deze instructie wordt de laatst gepubliceerde basisinstallatiekopie opgehaald en wordt deze een basis voor uw aangepaste installatiekopie.
2. Vereiste pakketten installeren
U kunt de Pulumi CLI installeren op een uitvoerbare locatie, zodat deze kan worden gebruikt in uw implementatie- en verwijderingsscripts.
Hier volgt een voorbeeld van dat proces, waarbij u de nieuwste versie van de Pulumi CLI installeert:
RUN apk add curl
RUN curl -fsSL https://get.pulumi.com | sh
ENV PATH="${PATH}:/root/.pulumi/bin"
Afhankelijk van de programmeertaal die u wilt gebruiken voor Pulumi-programma's, moet u mogelijk een of meer bijbehorende runtimes installeren. De Python-runtime is al beschikbaar in de basisinstallatiekopieën.
Hier volgt een voorbeeld van het installeren van Node.js en TypeScript:
# install node.js, npm, and typescript
RUN apk add nodejs npm
RUN npm install typescript -g
De standaardinstallatiekopieën van ADE zijn gebaseerd op de Azure CLI-installatiekopieën en hebben de ADE CLI- en JQ-pakketten vooraf geïnstalleerd. Meer informatie over de Azure CLI en het JQ-pakket.
Als u meer pakketten wilt installeren die u nodig hebt in uw installatiekopie, gebruikt u de RUN-instructie.
Er zijn vier stappen voor het implementeren van infrastructuur via Pulumi:
-
pulumi login
- verbinding maken met de statusopslag, hetzij in het lokale bestandssysteem of in Pulumi Cloud -
pulumi stack select
- maak of selecteer de stack die moet worden gebruikt voor de specifieke omgeving -
pulumi config set
- implementatieparameters doorgeven als Pulumi-configuratiewaarden -
pulumi up
- voer de implementatie uit om een nieuwe of bestaande infrastructuur in Azure te maken of bij te werken
Tijdens het ingangspunt van de kerninstallatiekopie worden alle bestaande lokale statusbestanden naar de container gehaald en wordt de map opgeslagen onder de omgevingsvariabele $ADE_STORAGE
. Voer de volgende opdrachten uit om toegang te krijgen tot het bestaande statusbestand:
mkdir -p $ADE_STORAGE
export PULUMI_CONFIG_PASSPHRASE=
pulumi login file://$ADE_STORAGE
Als u zich in plaats daarvan wilt aanmelden bij Pulumi Cloud, stelt u uw Pulumi-toegangstoken in als een omgevingsvariabele en voert u de volgende opdrachten uit:
export PULUMI_ACCESS_TOKEN=YOUR_PULUMI_ACCESS_TOKEN
pulumi login
Parameters die zijn ingesteld voor de huidige omgeving, worden opgeslagen onder de variabele $ADE_OPERATION_PARAMETERS
. Daarnaast worden de geselecteerde Azure-regio en resourcegroepnaam doorgegeven ADE_ENVIRONMENT_LOCATION
en ADE_RESOURCE_GROUP_NAME
respectievelijk. Voer de volgende opdrachten uit om de configuratie van uw Pulumi-stack in te stellen:
# Create or select the stack for the current environment
pulumi stack select $ADE_ENVIRONMENT_NAME --create
# Store configuration values in durable storage
export PULUMI_CONFIG_FILE=$ADE_STORAGE/Pulumi.$ADE_ENVIRONMENT_NAME.yaml
# Set the Pulumi stack config
pulumi config set azure-native:location $ADE_ENVIRONMENT_LOCATION --config-file $PULUMI_CONFIG_FILE
pulumi config set resource-group-name $ADE_RESOURCE_GROUP_NAME --config-file $PULUMI_CONFIG_FILE
echo "$ADE_OPERATION_PARAMETERS" | jq -r 'to_entries|.[]|[.key, .value] | @tsv' |
while IFS=$'\t' read -r key value; do
pulumi config set $key $value --config-file $PULUMI_CONFIG_FILE
done
Als u bovendien ADE-bevoegdheden wilt gebruiken om infrastructuur in uw abonnement te implementeren, moet uw script gebruikmaken van ADE Managed Service Identity (MSI) bij het inrichten van de infrastructuur met behulp van de Pulumi Azure Native- of Klassieke Azure-provider. Als uw implementatie speciale machtigingen nodig heeft om uw implementatie te voltooien, zoals bepaalde rollen, wijst u deze machtigingen toe aan de identiteit van het projectomgevingstype die wordt gebruikt voor de implementatie van uw omgeving. ADE stelt de relevante omgevingsvariabelen in, zoals de client-, tenant- en abonnements-id's binnen het toegangspunt van de kerninstallatiekopieën. Voer daarom de volgende opdrachten uit om ervoor te zorgen dat de provider ADE MSI gebruikt:
export ARM_USE_MSI=true
export ARM_CLIENT_ID=$ADE_CLIENT_ID
export ARM_TENANT_ID=$ADE_TENANT_ID
export ARM_SUBSCRIPTION_ID=$ADE_SUBSCRIPTION_ID
U kunt nu de pulumi up
opdracht uitvoeren om de implementatie uit te voeren:
pulumi up --refresh --yes --config-file $PULUMI_CONFIG_FILE
Tijdens het verwijderingsscript kunt u in plaats daarvan de destroy
opdracht uitvoeren, zoals wordt weergegeven in het volgende voorbeeld:
pulumi destroy --refresh --yes --config-file $PULUMI_CONFIG_FILE
Ten slotte transformeert u het uitvoerobject van Pulumi naar de opgegeven ADE-indeling via het JQ-pakket om de uitvoer van uw implementatie te uploaden en toegankelijk te maken bij toegang tot uw omgeving via de Azure CLI. Stel de waarde in op de omgevingsvariabele $ADE_OUTPUTS, zoals wordt weergegeven in het volgende voorbeeld:
stackout=$(pulumi stack output --json | jq -r 'to_entries|.[]|{(.key): {type: "string", value: (.value)}}')
echo "{\"outputs\": ${stackout:-{\}}}" > $ADE_OUTPUTS
De aangepaste installatiekopieën bouwen
U kunt uw installatiekopieën bouwen met behulp van de Docker CLI. Zorg ervoor dat de Docker Engine op uw computer is geïnstalleerd . Navigeer vervolgens naar de map van uw Dockerfile en voer de volgende opdracht uit:
docker build . -t {YOUR_REGISTRY}.azurecr.io/{YOUR_REPOSITORY}:{YOUR_TAG}
Als u bijvoorbeeld uw installatiekopieën wilt opslaan onder een opslagplaats in het register met de naam customImage
en wilt uploaden met de tagversie, 1.0.0
voert u het volgende uit:
docker build . -t {YOUR_REGISTRY}.azurecr.io/customImage:1.0.0
De aangepaste installatiekopieën beschikbaar maken voor ADE
Als u aangepaste installatiekopieën wilt gebruiken, moet u deze opslaan in een containerregister. U kunt een openbaar containerregister of een privécontainerregister gebruiken. Azure Container Registry (ACR) wordt ten zeerste aanbevolen vanwege de nauwe integratie met ADE, kan de installatiekopie worden gepubliceerd zonder openbare anonieme pull-toegang toe te staan. U moet uw aangepaste containerinstallatiekopieën bouwen en naar een containerregister pushen om deze beschikbaar te maken voor gebruik in ADE.
Het is ook mogelijk om de installatiekopieën op te slaan in een ander containerregister, zoals Docker Hub, maar in dat geval moet deze openbaar toegankelijk zijn.
Let op
Als u de containerinstallatiekopie opslaat in een register met anonieme (niet-geverifieerde) pull-toegang, is deze openbaar toegankelijk. Doe dit niet als uw afbeelding gevoelige informatie bevat. Sla deze in plaats daarvan op in Azure Container Registry (ACR) met anonieme pull-toegang uitgeschakeld.
Als u een aangepaste installatiekopieën wilt gebruiken die is opgeslagen in ACR, moet u ervoor zorgen dat ADE over de juiste machtigingen beschikt om toegang te krijgen tot uw installatiekopieën. Wanneer u een ACR-exemplaar maakt, is deze standaard beveiligd en kunnen geverifieerde gebruikers alleen toegang krijgen.
U kunt Pulumi gebruiken om een Azure Container Registry te maken en uw installatiekopieën ernaar te publiceren. Raadpleeg het voorbeeld van inrichten/aangepaste installatiekopieën voor een zelfstandig Pulumi-project waarmee alle vereiste resources in uw Azure-account worden gemaakt.
Selecteer het juiste tabblad voor meer informatie over elke benadering.
Een privéregister gebruiken met beveiligde toegang
Standaard is toegang tot het ophalen of pushen van inhoud vanuit een Azure Container Registry alleen beschikbaar voor geverifieerde gebruikers. U kunt de toegang tot ACR verder beveiligen door de toegang van bepaalde netwerken te beperken en specifieke rollen toe te wijzen.
Als u een exemplaar van ACR wilt maken, dat kan worden uitgevoerd via de Azure CLI, azure portal, PowerShell-opdrachten en meer, volgt u een van de quickstarts.
Netwerktoegang beperken
Als u de netwerktoegang tot uw ACR wilt beveiligen, kunt u de toegang tot uw eigen netwerken beperken of de toegang tot openbare netwerken volledig uitschakelen. Als u de netwerktoegang beperkt, moet u de firewall-uitzondering vertrouwde Microsoft-services toegang geven tot dit containerregister inschakelen.
Toegang vanuit openbare netwerken uitschakelen:
Maak een ACR-exemplaar of gebruik een bestaand exemplaar.
Ga in Azure Portal naar de ACR die u wilt configureren.
Selecteer Netwerken in het linkermenu onder Instellingen.
Selecteer Uitgeschakeld op de pagina Netwerken op het tabblad Openbare toegang onder Openbare netwerktoegang.
Controleer onder Firewall-uitzondering of Vertrouwde Microsoft-services toegang tot dit containerregister toestaan is geselecteerd en selecteer vervolgens Opslaan.
De rol AcrPull toewijzen
Het maken van omgevingen met behulp van containerinstallatiekopieën maakt gebruik van de ADE-infrastructuur, inclusief projecten en omgevingstypen. Elk project heeft een of meer projectomgevingstypen, die leestoegang nodig hebben tot de containerinstallatiekopie die de omgeving definieert die moet worden geïmplementeerd. Als u de installatiekopieën in uw ACR veilig wilt openen, wijst u de AcrPull-rol toe aan elk type projectomgeving.
De AcrPull-rol toewijzen aan het projectomgevingstype:
Ga in Azure Portal naar de ACR die u wilt configureren.
Selecteer toegangsbeheer (IAM) in het linkermenu.
Selecteer Toevoegen>Roltoewijzing toevoegen.
Wijs de volgende rol toe. Raadpleeg Azure-rollen toewijzen met Azure Portal voor informatie over het toewijzen van rollen.
Instelling Weergegeven als - Rol Selecteer AcrPull. Toegang toewijzen aan Selecteer Gebruiker, groep of service-principal. Leden Voer de naam in van het projectomgevingstype dat toegang nodig heeft tot de installatiekopie in de container. Het projectomgevingstype wordt weergegeven zoals in het volgende voorbeeld:
In deze configuratie gebruikt ADE de beheerde identiteit voor het PET, ongeacht of het systeem is toegewezen of door de gebruiker is toegewezen.
Tip
Deze roltoewijzing moet worden gemaakt voor elk type projectomgeving. Het kan worden geautomatiseerd via de Azure CLI.
Wanneer u klaar bent om uw installatiekopieën naar uw register te pushen, voert u de volgende opdracht uit:
docker push {YOUR_REGISTRY}.azurecr.io/{YOUR_IMAGE_LOCATION}:{YOUR_TAG}
De installatiekopieën verbinden met uw omgevingsdefinitie
Wanneer u omgevingsdefinities maakt voor het gebruik van uw aangepaste installatiekopieën in de implementatie, bewerkt u de runner
eigenschap in het manifestbestand (environment.yaml of manifest.yaml).
runner: "{YOUR_REGISTRY}.azurecr.io/{YOUR_REPOSITORY}:{YOUR_TAG}"
Zie Een omgevingsdefinitie toevoegen en configureren voor meer informatie over het maken van omgevingsdefinities die gebruikmaken van de ADE-containerinstallatiekopieën om uw Azure-resources te implementeren.