Använda verktyg för infrastrukturautomatisering med virtuella datorer i Azure

Gäller för: ✔️ Virtuella Linux-datorer ✔️ med virtuella Windows-datorer ✔️ – flexibla skalningsuppsättningar ✔️ Enhetliga skalningsuppsättningar

För att skapa och hantera virtuella Azure-datorer på ett konsekvent sätt i stor skala är någon form av automatisering vanligtvis önskvärd. Det finns många verktyg och lösningar som gör att du kan automatisera hela livscykeln för distribution och hantering av Azure-infrastruktur. Den här artikeln beskriver några av de verktyg för infrastrukturautomatisering som du kan använda i Azure. Dessa verktyg passar ofta in i någon av följande metoder:

Terraform

Terraform är ett automatiseringsverktyg som gör att du kan definiera och skapa en hel Azure-infrastruktur med ett enda mallformatspråk – HashiCorp Configuration Language (HCL). Med Terraform definierar du mallar som automatiserar processen för att skapa nätverks-, lagrings- och VM-resurser för en viss programlösning. Du kan använda dina befintliga Terraform-mallar för andra plattformar med Azure för att säkerställa konsekvens och förenkla infrastrukturdistributionen utan att behöva konvertera till en Azure Resource Manager-mall.

Lär dig att:

Azure Automation

Azure Automation använder runbooks för att bearbeta en uppsättning uppgifter på de virtuella datorer som du riktar in dig på. Azure Automation används för att hantera befintliga virtuella datorer i stället för att skapa en infrastruktur. Azure Automation kan köras på både virtuella Linux- och Windows-datorer och lokala virtuella eller fysiska datorer med en hybrid runbook worker. Runbooks kan lagras på en lagringsplats för källkontroll, till exempel GitHub. Dessa runbooks kan sedan köras manuellt eller enligt ett definierat schema.

Azure Automation tillhandahåller också en DSC-tjänst (Desired State Configuration) som gör att du kan skapa definitioner för hur en viss uppsättning virtuella datorer ska konfigureras. DSC säkerställer sedan att den nödvändiga konfigurationen tillämpas och att den virtuella datorn förblir konsekvent. Azure Automation DSC körs på både Windows- och Linux-datorer.

Lär dig att:

Azure DevOps Services

Azure DevOps Services är en uppsättning verktyg som hjälper dig att dela och spåra kod, använda automatiserade versioner och skapa en fullständig ci/CD-pipeline (kontinuerlig integrering och utveckling). Azure DevOps Services integreras med Visual Studio och andra redigerare för att förenkla användningen. Azure DevOps Services kan också skapa och konfigurera virtuella Azure-datorer och sedan distribuera kod till dem.

Läs mer om:

Azure Resource Manager-mall

Azure Resource Manager är distributions- och hanteringstjänsten för Azure. Den tillhandahåller ett hanteringslager som gör att du kan skapa, uppdatera och ta bort resurser i din Azure-prenumeration. Du kan använda hanteringsfunktioner som åtkomstkontroll, lås och taggar till att skydda och organisera dina resurser efter distributionen.

Lär dig att:

Bicep

Bicep är ett domänspecifikt språk (DSL) som använder deklarativ syntax för att distribuera Azure-resurser. I en Bicep-fil definierar du den infrastruktur som du vill distribuera till Azure och använder sedan filen under hela utvecklingslivscykeln för att distribuera infrastrukturen upprepade gånger. Dina resurser distribueras på ett konsekvent sätt.

Kom igång med snabbstarten.

Cloud-init

Cloud-init är ett vanligt sätt att anpassa en virtuell Linux-dator när den startas för första gången. Du kan använda cloud-init till att installera paket och skriva filer eller för att konfigurera användare och säkerhet. Eftersom cloud-init anropas under den inledande startprocessen finns det inga extra steg eller nödvändiga agenter för att tillämpa konfigurationen. Mer information om hur du formaterar dina #cloud-config filer på rätt sätt finns på dokumentationswebbplatsen cloud-init. #cloud-config filer är textfiler som kodas i base64.

Cloud-init fungerar med olika distributioner. Du använder till exempel inte apt-get install eller yum install när du vill installera ett paket. I stället definierar du en lista med paket att installera. Cloud-init använder automatiskt rätt pakethanteringsverktyg för den distribution du valt.

Vi arbetar aktivt med våra godkända Linux-distributionspartner för att ha moln-init-aktiverade avbildningar tillgängliga på Azure Marketplace. Dessa avbildningar gör att dina cloud-init-distributioner och konfigurationer fungerar sömlöst med virtuella datorer och vm-skalningsuppsättningar. Läs mer om cloud-init i Azure:

PowerShell DSC

PowerShell Desired State Configuration (DSC) är en hanteringsplattform för att definiera konfigurationen av måldatorer. DSC kan också användas på Linux via OMI-servern (Open Management Infrastructure).

DSC-konfigurationer definierar vad som ska installeras på en dator och hur värden ska konfigureras. En LCM-motor (Local Configuration Manager) körs på varje målnod som bearbetar begärda åtgärder baserat på push-konfigurationer. En pull-server är en webbtjänst som körs på en central värd för att lagra DSC-konfigurationer och associerade resurser. Pull-servern kommunicerar med LCM-motorn på varje målvärd för att tillhandahålla nödvändiga konfigurationer och rapportera om efterlevnad.

Lär dig att:

Anpassade Azure-skripttillägg

Azure Custom Script Extension för Linux eller Windows laddar ned och kör skript på virtuella Azure-datorer. Du kan använda tillägget när du skapar en virtuell dator eller när som helst när den virtuella datorn används.

Skript kan laddas ned från Azure Storage eller någon offentlig plats, till exempel en GitHub-lagringsplats. Med tillägget för anpassat skript kan du skriva skript på valfritt språk som körs på den virtuella källdatorn. Dessa skript kan användas för att installera program eller konfigurera den virtuella datorn efter behov. För att skydda autentiseringsuppgifter kan känslig information som lösenord lagras i en skyddad konfiguration. Dessa autentiseringsuppgifter dekrypteras endast i den virtuella datorn.

Lär dig att:

Ansible

Ansible är en automatiseringsmotor för konfigurationshantering, skapande av virtuella datorer eller programdistribution. Ansible använder en agentlös modell, vanligtvis med SSH-nycklar, för att autentisera och hantera måldatorer. Konfigurationsuppgifter definieras i spelböcker, med flera Ansible-moduler tillgängliga för att utföra specifika uppgifter. Mer information finns i Så här fungerar Ansible.

Lär dig att:

Chef

Chef är en automationsplattform som hjälper dig att definiera hur infrastrukturen konfigureras, distribueras och hanteras. Vissa komponenter inkluderar Chef Habitat för programlivscykelautomatisering snarare än infrastrukturen, och Chef InSpec som hjälper till att automatisera efterlevnaden av säkerhets- och principkrav. Chef-klienter installeras på måldatorer med en eller flera centrala Chef-servrar som lagrar och hanterar konfigurationerna. Mer information finns i En översikt över Chef.

Lär dig att:

Puppet

Puppet är en företagsklar automationsplattform som hanterar programleveransen och distributionsprocessen. Agenter installeras på måldatorer så att Puppet Master kan köra manifest som definierar önskad konfiguration av Azure-infrastrukturen och de virtuella datorerna. Puppet kan integreras med andra lösningar som Jenkins och GitHub för ett förbättrat devops-arbetsflöde. Mer information finns i Så här fungerar Puppet.

Lär dig att:

Packer

Packer automatiserar byggprocessen när du skapar en anpassad VM-avbildning i Azure. Du använder Packer för att definiera operativsystemet och köra skript efter konfigurationen som anpassar den virtuella datorn efter dina specifika behov. När den virtuella datorn har konfigurerats registreras den sedan som en hanterad diskavbildning. Packer automatiserar processen för att skapa den virtuella källdatorn, nätverks- och lagringsresurserna, köra konfigurationsskript och sedan skapa vm-avbildningen.

Lär dig att:

Jenkins

Jenkins är en kontinuerlig integreringsserver som hjälper till att distribuera och testa program och skapa automatiserade pipelines för kodleverans. Det finns hundratals plugin-program för att utöka jenkins-kärnplattformen och du kan även integrera med många andra produkter och lösningar via webhooks. Du kan installera Jenkins manuellt på en virtuell Azure-dator, köra Jenkins inifrån en Docker-container eller använda en fördefinierad Azure Marketplace-avbildning.

Lär dig att:

Nästa steg

Det finns många olika alternativ för att använda verktyg för infrastrukturautomatisering i Azure. Du har friheten att använda den lösning som bäst passar dina behov och din miljö. Om du vill komma igång och prova några av de inbyggda verktygen i Azure kan du se hur du automatiserar anpassningen av en virtuell Linux - eller Windows-dator .