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:
Automatisera konfigurationen av virtuella datorer
- Verktygen inkluderar Mallen Ansible, Chef, Puppet, Bicep och Azure Resource Manager.
- Verktyg som är specifika för anpassning av virtuella datorer inkluderar cloud-init för virtuella Linux-datorer, PowerShell Desired State Configuration (DSC) och Azure Custom Script Extension för alla virtuella Azure-datorer.
Automatisera infrastrukturhantering
- Bland verktygen finns Packer för att automatisera anpassade VM-avbildningsversioner och Terraform för att automatisera infrastrukturbyggprocessen.
- Azure Automation kan utföra åtgärder i din Azure- och lokal infrastruktur.
Automatisera programdistribution och leverans
- Exempel är Azure DevOps Services och Jenkins.
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:
- Skapa en PowerShell-runbook.
- Använd Hybrid Runbook Worker för att hantera lokala resurser.
- Använd Azure Automation DSC.
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:
- Distribuera virtuella datorer med oanvänd kapacitet med hjälp av en Resource Manager-mall.
- Skapa en virtuell Windows-dator från en Resource Manager-mall.
- Ladda ned mallen för en virtuell dator.
- Skapa en Azure Image Builder-mall.
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.
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:
- Cloud-init-stöd för virtuella Linux-datorer i Azure
- Prova en självstudie om automatiserad VM-konfiguration med hjälp av cloud-init.
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:
- Skapa en virtuell Linux-dator med Azure CLI och använd tillägget för anpassat skript.
- Skapa en virtuell Windows-dator med Azure PowerShell och använd tillägget för anpassat skript.
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:
- Installera och konfigurera Ansible på Linux för användning med Azure.
- Skapa en virtuell Linux-dator.
- Hantera en virtuell Linux-dator.
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:
- Distribuera Chef Automate från Azure Marketplace.
- Installera Chef på Windows och skapa virtuella Azure-datorer.
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:
- Använd Packer för att skapa en virtuell Linux-datoravbildning i Azure.
- Använd Packer för att skapa en virtuell Windows-datoravbildning i Azure.
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:
- Skapa en utvecklingsinfrastruktur på en virtuell Linux-dator i Azure med Jenkins, GitHub och Docker.
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 .