Verwenden von Infrastrukturautomatisierungstools mit virtuellen Computern in Azure
Gilt für: ✔️ Linux-VMs ✔️ Windows-VMs ✔️ Flexible Skalierungsgruppen ✔️ Einheitliche Skalierungsgruppen
Für die umfangreiche konsistente Erstellung und Verwaltung virtueller Azure-Computer (Virtual Machines, VMs) empfiehlt sich in der Regel eine Form der Automatisierung. Es gibt zahlreiche Tools und Lösungen, mit denen Sie die gesamte Azure-Infrastrukturbereitstellung und den gesamten Verwaltungslebenszyklus automatisieren können. In diesem Artikel werden einige der Infrastrukturautomatisierungstools vorgestellt, die Sie in Azure verwenden können. Diese Tools lassen sich in der Regel einem der folgenden Konzepte zuordnen:
Automatisieren der Konfiguration virtueller Computer
- Zu den Tools gehören Ansible, Chef, Puppet, Bicep und die Azure Resource Manager-Vorlage.
- Spezifische Tools für die Anpassung virtueller Computer sind cloud-init für virtuelle Linux-Computer sowie PowerShell DSC (Desired State Configuration) und die benutzerdefinierte Skripterweiterung von Azure für alle virtuellen Azure-Computer.
Automatisieren der Infrastrukturverwaltung
- Zur Verfügung stehen Tools wie Packer zum Automatisieren benutzerdefinierter VM-Image-Builds und Terraform zum Automatisieren des Infrastrukturbuildprozesses.
- Azure Automation kann Aktionen für Ihre Azure-Infrastruktur und Ihre lokale Infrastruktur ausführen.
Automatisieren der Anwendungsbereitstellung und -übermittlung
- Beispiele sind Azure DevOps Services und Jenkins.
Terraform
Terraform ist ein Automatisierungstool, mit dem Sie eine gesamte Azure-Infrastruktur mit einer einzelnen Vorlagenformatsprache – der HashiCorp Configuration Language (HCL) – definieren und erstellen können. Mit Terraform definieren Sie Vorlagen, die die Erstellung von Netzwerk-, Speicher- und VM-Ressourcen für eine bestimmte Anwendungslösung automatisieren. Ihre vorhandenen Terraform-Vorlagen können Sie für andere Plattformen mit Azure verwenden, um die Konsistenz zu gewährleisten und die Infrastrukturbereitstellung ohne Umwandlung in eine Azure Resource Manager-Vorlage zu vereinfachen.
In diesem Artikel werden folgende Themen erläutert:
- Installieren und Konfigurieren von Terraform mit Azure
- Erstellen einer Azure-Infrastruktur mit Terraform
Azure-Automatisierung
Azure Automation verwendet Runbooks, um eine Reihe von Aufgaben auf Ihren virtuellen Zielcomputern zu verarbeiten. Azure Automation dient zur Verwaltung vorhandener virtueller Computer und nicht zur Erstellung einer Infrastruktur. Azure Automation kann für virtuelle Linux- und Windows-Computer sowie für lokale virtuelle oder physische Computer mit einem Hybrid Runbook Worker ausgeführt werden. Runbooks können in einem Quellcodeverwaltungs-Repository (beispielsweise GitHub) gespeichert werden. Diese Runbooks können dann manuell oder nach einem definierten Zeitplan ausgeführt werden.
Azure Automation bietet auch einen DSC-Dienst (Desired State Configuration), mit dem Sie Definitionen für die Konfiguration einer bestimmten Gruppe von virtuellen Computern erstellen können. DSC stellt dann sicher, dass die erforderliche Konfiguration angewendet wird und der virtuelle Computer konsistent bleibt. Azure Automation DSC kann auf Computern unter Windows und Linux ausgeführt werden.
In diesem Artikel werden folgende Themen erläutert:
- Erstellen eines PowerShell-Runbooks
- Verwalten von lokalen Ressourcen mithilfe eines Hybrid Runbook Workers
- Verwenden von Azure Automation DSC
Azure DevOps Services
Azure DevOps Services ist eine Suite von Tools, mit denen Sie Code freigeben und nachverfolgen, automatisierte Builds verwenden und eine vollständige CI/CD-Pipeline (Continuous Integration/Continuous Development) erstellen können. Azure DevOps Services lässt sich zur Vereinfachung in Visual Studio und andere Editoren integrieren. Mit Azure DevOps Services können Sie auch virtuelle Azure-Computer erstellen und konfigurieren und anschließend Code für sie bereitstellen.
Weitere Informationen:
Azure Resource Manager-Vorlage
Azure Resource Manager ist der Bereitstellungs- und Verwaltungsdienst für Azure. Er bietet eine Verwaltungsebene, die das Erstellen, Aktualisieren und Löschen von Ressourcen in Ihrem Azure-Abonnement ermöglicht. Mithilfe von Verwaltungsfeatures wie Zugriffssteuerung, Sperren und Tags können Sie Ihre Ressourcen nach der Bereitstellung schützen und organisieren.
In diesem Artikel werden folgende Themen erläutert:
- Bereitstellen von Spot-VMs mithilfe einer Resource Manager-Vorlage
- Erstellen eines virtuellen Windows-Computers mit einer Resource Manager-Vorlage
- Herunterladen einer Vorlage für einen virtuellen Computer
- Erstellen einer Azure Image Builder-Vorlage
Bicep
Bicep ist eine domänenspezifische Sprache (Domain-Specific Language, DSL), die eine deklarative Syntax zur Bereitstellung von Azure-Ressourcen verwendet. In einer Bicep-Datei definieren Sie die Infrastruktur, die Sie in Azure bereitstellen möchten, und verwenden diese Datei dann während des gesamten Entwicklungslebenszyklus, um Ihre Infrastruktur wiederholt zu implementieren. Ihre Ressourcen werden auf einheitliche Weise bereitgestellt.
Erste Schritte mit der Schnellstartanleitung.
cloud-init
Cloud-init ist ein weit verbreiteter Ansatz zum Anpassen einer Linux-VM beim ersten Start. Sie können mit cloud-init Pakete installieren und Dateien schreiben oder Benutzer und Sicherheit konfigurieren. Da cloud-init während des ersten Startvorgangs aufgerufen wird, müssen Sie keine zusätzlichen Schritte oder Agents auf Ihre Konfiguration anwenden. Weitere Informationen zum ordnungsgemäßen Formatieren Ihrer #cloud-config
-Dateien finden Sie auf der cloud-init-Dokumentationswebsite. #cloud-config
-Dateien sind Base64-codierte Textdateien.
Cloud-init funktioniert auch Distributionen übergreifend. Verwenden Sie z.B. nicht apt-get install oder yum install, um ein Paket zu installieren. Stattdessen können Sie eine Liste mit zu installierenden Paketen definieren. „cloud-init“ verwendet automatisch das native Paketverwaltungstool für die ausgewählte Distribution.
Wir arbeiten aktiv mit unseren Linux-Distributionspartnern zusammen, um cloud-init-fähige Images im Azure Marketplace zur Verfügung zu stellen. Mit diesen Images funktionieren Ihre cloud-init-Bereitstellungen und -Konfigurationen nahtlos bei virtuellen Computern und Virtual Machine Scale Sets. Erfahren Sie mehr über cloud-init in Azure:
- Anpassen einer Linux-VM in Azure mit cloud-init | Microsoft-Dokumentation
- Gewusst wie: Anpassen eines virtuellen Linux-Computers beim ersten Start
PowerShell DSC
PowerShell DSC (Desired State Configuration) ist eine Verwaltungsplattform zum Definieren der Konfiguration von Zielcomputern. DSC kann über den OMI-Server (Open Management Infrastructure) auch unter Linux verwendet werden.
DSC-Konfigurationen definieren, was auf einem Computer installiert und wie der Host konfiguriert werden soll. Eine LCM-Engine (Local Configuration Manager) wird auf jedem Zielknoten ausgeführt, der angeforderte Aktionen auf der Grundlage gepushter Konfigurationen verarbeitet. Ein Pull-Server ist ein Webdienst, der auf einem zentralen Host ausgeführt wird, um die DSC-Konfigurationen und die dazugehörigen Ressourcen zu speichern. Der Pull-Server kommuniziert mit der LCM-Engine auf den einzelnen Zielhosts, um die erforderlichen Konfigurationen bereitzustellen und Complianceberichte zu erstellen.
In diesem Artikel werden folgende Themen erläutert:
- Erstellen einer einfachen DSC-Konfiguration
- Konfigurieren eines DSC-Pull-Servers
- Verwenden von DSC für Linux
Benutzerdefinierte Skripterweiterung von Azure
Die benutzerdefinierte Skripterweiterung von Azure (verfügbar für Linux und Windows) lädt Skripts auf virtuelle Azure-Computer herunter und führt sie dort aus. Die Erweiterung kann beim Erstellen eines virtuellen Computers oder zu einem beliebigen Zeitpunkt für einen verwendeten virtuellen Computer genutzt werden.
Skripts können aus Azure-Speicher oder von einem anderen öffentlichen Speicherort (etwa einem GitHub-Repository) heruntergeladen werden. Mit der benutzerdefinierten Skripterweiterung können Sie Skripts in einer beliebigen Sprache schreiben, die auf dem virtuellen Quellcomputer ausgeführt werden kann. Mit diesen Skripts können Sie Anwendungen installieren oder den virtuellen Computer nach Ihren Vorstellungen konfigurieren. Zum Schutz von Anmeldeinformationen können vertrauliche Informationen wie etwa Kennwörter in einer geschützten Konfiguration gespeichert werden. Diese Anmeldeinformationen werden erst auf dem virtuellen Computer entschlüsselt.
In diesem Artikel werden folgende Themen erläutert:
- Erstellen eines virtuellen Linux-Computers mit der Azure-Befehlszeilenschnittstelle und Verwenden der benutzerdefinierten Skripterweiterung
- Erstellen eines virtuellen Windows-Computers mit Azure PowerShell und Verwenden der benutzerdefinierten Skripterweiterung
Ansible
Ansible ist ein Automatisierungsmodul für die Konfigurationsverwaltung, VM-Erstellung oder Anwendungsbereitstellung. Für die Authentifizierung und Verwaltung der Zielcomputer kommt bei Ansible ein Agent-loses Modell (üblicherweise mit SSH-Schlüsseln) zum Einsatz. Konfigurationsaufgaben werden in Playbooks definiert. Dabei stehen mehrere Ansible-Module zur Ausführung bestimmter Aufgaben zur Verfügung. Weitere Informationen finden Sie unter How Ansible works (Funktionsweise von Ansible).
In diesem Artikel werden folgende Themen erläutert:
- Installieren und Konfigurieren von Ansible unter Linux für die Verwendung mit Azure
- Erstellen eines virtuellen Linux-Computers
- Verwalten eines virtuellen Linux-Computers
Chef
Chef ist eine Automatisierungsplattform, mit der Sie die Konfiguration, Bereitstellung und Verwaltung Ihrer Infrastruktur definieren können. Einige Komponenten sind Chef Habitat für die Automatisierung des Anwendungslebenszyklus (anstelle der Infrastruktur) und Chef InSpec zur Automatisierung der Einhaltung von Sicherheits- und Richtlinienanforderungen. Auf den Zielcomputern werden Chef-Clients installiert, und es ist mindestens ein zentraler Chef-Server zum Speichern und Verwalten der Konfigurationen vorhanden. Weitere Informationen finden Sie in der Übersicht über Chef.
In diesem Artikel werden folgende Themen erläutert:
- Bereitstellen von Chef Automate über den Azure Marketplace
- Installieren von Chef unter Windows und Erstellen virtueller Azure-Computer
Puppet
Puppet ist eine für Unternehmen geeignete Automatisierungsplattform zur Anwendungsübermittlung und -bereitstellung. Auf den Zielcomputern werden Agents installiert, um Puppet Master das Ausführen von Manifesten zu ermöglichen, die die gewünschte Konfiguration der Azure-Infrastruktur und der virtuellen Computer definieren. Zur Optimierung des DevOps-Workflows kann Puppet mit anderen Lösungen wie Jenkins und GitHub kombiniert werden. Weitere Informationen finden Sie unter How Puppet works (Funktionsweise von Puppet).
In diesem Artikel werden folgende Themen erläutert:
Packer
Packer automatisiert den Buildprozess beim Erstellen eines benutzerdefinierten VM-Images in Azure. Mit Packer können Sie das Betriebssystem definieren und Skripts nach der Konfiguration ausführen, um den virtuellen Computer für Ihre speziellen Anforderungen anzupassen. Der konfigurierte virtuelle Computer wird dann als verwaltetes Datenträgerimage erfasst. Packer automatisiert das Erstellen des virtuellen Quellcomputers sowie der Netzwerk- und Speicherressourcen, das Ausführen der Konfigurationsskripts und das anschließende Erstellen des VM-Images.
In diesem Artikel werden folgende Themen erläutert:
- Erstellen eines Linux-VM-Images in Azure mithilfe von Packer
- Erstellen eines Windows-VM-Images in Azure mithilfe von Packer
Jenkins
Jenkins ist ein Continuous Integration-Server zum Bereitstellen und Testen von Anwendungen sowie zum Erstellen automatisierter Pipelines für die Codeübermittlung. Die Kernplattform von Jenkins lässt sich mit hunderten von Plug-Ins erweitern und über Webhooks auch in zahlreiche andere Produkte und Lösungen integrieren. Sie können Jenkins manuell auf einem virtuellen Azure-Computer installieren oder innerhalb eines Docker-Containers ausführen oder ein vorgefertigtes Azure Marketplace-Image verwenden.
In diesem Artikel werden folgende Themen erläutert:
Nächste Schritte
Infrastrukturautomatisierungstools können in Azure auf unterschiedlichste Weise verwendet werden. Sie können sich flexibel für die Lösung entscheiden, die am besten zu Ihren Anforderungen und zu Ihrer Umgebung passt. Falls Sie noch keine Erfahrung haben und einige der in Azure integrierten Tools ausprobieren möchten, informieren Sie sich über die Automatisierung der Anpassung eines virtuellen Computers unter Linux oder Windows.