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:

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 steht eine Reihe von Ansible-Modulen 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:

Chef

Chef ist eine Automatisierungsplattform, mit der Sie die Konfiguration, Bereitstellung und Verwaltung Ihrer Infrastruktur definieren können. Zusätzlich verfügbare 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:

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:

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 VMs und Skalierungsgruppen von virtuellen Computern (VMSS). Erfahren Sie mehr über cloud-init in Azure:

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:

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 verwendet 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:

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:

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:

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:

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:

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:

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:

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.