Hulpprogramma's voor infrastructuurautomatisering gebruiken met virtuele machines in Azure

Van toepassing op: ✔️ Linux-VM's ✔️ Windows VM's ✔️ Flexibele schaalsets ✔️ Uniforme schaalsets

Als u virtuele Azure-machines (VM's) op een consistente manier op schaal wilt maken en beheren, is een vorm van automatisering doorgaans gewenst. Er zijn veel hulpprogramma's en oplossingen waarmee u de volledige implementatie en beheerlevenscyclus van de Azure-infrastructuur kunt automatiseren. In dit artikel worden enkele hulpprogramma's voor infrastructuurautomatisering beschreven die u in Azure kunt gebruiken. Deze hulpprogramma's passen doorgaans in een van de volgende benaderingen:

Ansible

Ansible is een automatiseringsen engine voor configuratiebeheer, het maken van VM's of het implementeren van toepassingen. Ansible maakt gebruik van een model zonder agent, meestal met SSH-sleutels, om doelmachines te verifiëren en te beheren. Configuratietaken worden gedefinieerd in playbooks, met een aantal Ansible-modules die beschikbaar zijn voor het uitvoeren van specifieke taken. Zie How Ansible works (Hoe Ansible werkt) voor meer informatie.

Leer hoe u het volgende doet:

Chef

Chef is een automatiseringsplatform waarmee u kunt definiëren hoe uw infrastructuur wordt geconfigureerd, geïmplementeerd en beheerd. Aanvullende onderdelen omvatten Chef Lifecycle voor automatisering van de levenscyclus van toepassingen in plaats van de infrastructuur, en Chef InSpec waarmee u de naleving van beveiligings- en beleidsvereisten kunt automatiseren. Chef-clients worden geïnstalleerd op doelmachines, met een of meer centrale Chef-servers die de configuraties opslaan en beheren. Zie An Overview of Chef (Een overzicht van Chef) voor meer informatie.

Leer hoe u het volgende doet:

Puppet

Puppet is een automatiseringsplatform dat klaar is voor bedrijven en waarmee het leverings- en implementatieproces van toepassingen wordt verwerkt. Agents worden geïnstalleerd op doelmachines zodat Puppet Master manifesten kan uitvoeren die de gewenste configuratie van de Azure-infrastructuur en -VM's definiëren. Puppet kan worden geïntegreerd met andere oplossingen, zoals Jenkins en GitHub voor een verbeterde devops-werkstroom. Zie Hoe Puppet werkt voor meer informatie.

Leer hoe u het volgende doet:

Cloud-init

Cloud-init is een veelgebruikte benadering voor het aanpassen van een Linux-VM als deze voor de eerste keer wordt opgestart. U kunt cloud-init gebruiken voor het installeren van pakketten en schrijven van bestanden, of om gebruikers en beveiliging te configureren. Omdat cloud-init wordt aangeroepen tijdens het eerste opstartproces, zijn er geen extra stappen of vereiste agents om uw configuratie toe te passen. Zie de #cloud-config documentatiesite van cloud-initvoor meer informatie over het correct opmaken van uw bestanden. #cloud-config bestanden zijn tekstbestanden die zijn gecodeerd in base64.

Cloud-init werkt ook in distributies. U gebruikt bijvoorbeeld niet apt-get install of yum install om een pakket te installeren. In plaats daarvan kunt u een lijst definiëren met te installeren pakketten. Cloud-init maakt automatisch gebruik van het hulpprogramma voor systeemeigen pakketbeheer voor de distro die u selecteert.

We werken actief samen met onze goedgekeurde Linux-distributiepartners om cloud-init-ingeschakelde afbeeldingen beschikbaar te maken in de Azure Marketplace. Dankzij deze installatie afbeeldingen werken uw cloud-init-implementaties en -configuraties naadloos met VM's en virtuele-machineschaalsets. Meer informatie over cloud-init in Azure:

PowerShell DSC

PowerShell Desired State Configuration (DSC) is een beheerplatform voor het definiëren van de configuratie van doelmachines. DSC kan ook worden gebruikt in Linux via de OmI-server (Open Management Infrastructure).

DSC-configuraties definiëren wat er op een computer moet worden geïnstalleerd en hoe de host moet worden geconfigureerd. Een LCM Configuration Manager-engine (Local Configuration Manager) wordt uitgevoerd op elk doel-knooppunt dat aangevraagde acties verwerkt op basis van pushconfiguraties. Een pull-server is een webservice die wordt uitgevoerd op een centrale host voor het opslaan van de DSC-configuraties en de bijbehorende resources. De pull-server communiceert met de LCM-engine op elke doelhost om de vereiste configuraties te bieden en te rapporteren over naleving.

Leer hoe u het volgende doet:

Aangepaste scriptextensie voor Azure

De aangepaste scriptextensie van Azure voor Linux of Windows scripts op virtuele Azure-VM's downloaden en uitvoeren. U kunt de extensie gebruiken wanneer u een VM maakt of op elk moment nadat de VM in gebruik is.

Scripts kunnen worden gedownload uit Azure Storage of een openbare locatie, zoals een GitHub opslagplaats. Met de aangepaste scriptextensie kunt u scripts schrijven in elke taal die wordt uitgevoerd op de bron-VM. Deze scripts kunnen worden gebruikt om toepassingen te installeren of de VM naar wens te configureren. Om referenties te beveiligen, kunnen gevoelige gegevens, zoals wachtwoorden, worden opgeslagen in een beveiligde configuratie. Deze referenties worden alleen ontsleuteld binnen de VM.

Leer hoe u het volgende doet:

Packer

Packer automatiseert het bouwproces wanneer u een aangepaste VM-afbeelding maakt in Azure. U gebruikt Packer om het besturingssysteem te definiëren en scripts na de configuratie uit te voeren die de VM aanpassen aan uw specifieke behoeften. Zodra de VM is geconfigureerd, wordt deze vastgelegd als een managed disk-afbeelding. Packer automatiseert het proces voor het maken van de bron-VM, netwerk- en opslagresources, het uitvoeren van configuratiescripts en het maken van de VM-installatiebestand.

Leer hoe u het volgende doet:

Terraform

Terraform is een automatiseringshulpprogramma waarmee u een volledige Azure-infrastructuur kunt definiëren en maken met één sjabloonindelingstaal: de HashiCorp Configuration Language (HCL). Met Terraform definieert u sjablonen die het proces voor het maken van netwerk-, opslag- en VM-resources voor een bepaalde toepassingsoplossing automatiseren. U kunt uw bestaande Terraform-sjablonen voor andere platforms met Azure gebruiken om consistentie te garanderen en de implementatie van de infrastructuur te vereenvoudigen zonder dat u hoeft te converteren naar een Azure Resource Manager sjabloon.

Leer hoe u het volgende doet:

Azure Automation

Azure Automation runbooks gebruikt om een set taken te verwerken op de VM's die u als doel hebt. Azure Automation wordt gebruikt voor het beheren van bestaande VM's in plaats van om een infrastructuur te maken. Azure Automation kunnen worden uitgevoerd op zowel Linux- als Windows-VM's, evenals on-premises virtuele of fysieke machines met een hybride runbook worker. Runbooks kunnen worden opgeslagen in een opslagplaats voor broncodebeheer, zoals GitHub. Deze runbooks kunnen vervolgens handmatig of volgens een gedefinieerd schema worden uitgevoerd.

Azure Automation biedt ook een Desired State Configuration(DSC)-service waarmee u definities kunt maken voor de configuratie van een bepaalde set VM's. DSC zorgt er vervolgens voor dat de vereiste configuratie wordt toegepast en dat de VM consistent blijft. Azure Automation DSC wordt uitgevoerd op zowel Windows- als Linux-machines.

Leer hoe u het volgende doet:

Azure DevOps Services

Azure DevOps Services is een reeks hulpprogramma's waarmee u code kunt delen en bijhouden, geautomatiseerde builds kunt gebruiken en een volledige CI/CD-pijplijn (Continue integratie en ontwikkeling) kunt maken. Azure DevOps Services kan worden geïntegreerd met Visual Studio en andere editors om het gebruik te vereenvoudigen. Azure DevOps Services kan ook virtuele Azure-VM's maken en configureren en er vervolgens code op implementeren.

Meer informatie over:

Jenkins

Jenkins is een continue integratieserver die helpt bij het implementeren en testen van toepassingen en het maken van geautomatiseerde pijplijnen voor het leveren van code. Er zijn honderden invoegvoegingen om het Jenkins-basisplatform uit te breiden en u kunt ook integreren met veel andere producten en oplossingen via webhooks. U kunt Jenkins handmatig installeren op een azure-VM, Jenkins uitvoeren vanuit een Docker-container of een vooraf gebouwde Azure Marketplace gebruiken.

Leer hoe u het volgende doet:

Azure Resource Manager-sjabloon

Azure Resource Manager is de implementatie- en beheerservice voor Azure. Het biedt een beheerlaag waarmee u resources in uw Azure-abonnement kunt maken, bijwerken en verwijderen. U kunt beheerfuncties gebruiken, zoals toegangscontrole, vergrendelingen en tags, om uw resources te beveiligen en te organiseren na de implementatie.

Leer hoe u het volgende doet:

Volgende stappen

Er zijn veel verschillende opties voor het gebruik van hulpprogramma's voor infrastructuurautomatisering in Azure. U hebt de vrijheid om de oplossing te gebruiken die het beste past bij uw behoeften en omgeving. Als u aan de slag wilt gaan en enkele van de hulpprogramma's wilt uitproberen die zijn ingebouwd in Azure, bekijkt u hoe u de aanpassing van een Linux- of Windows-VM automatiseert.