olly - stock.adobe.com

Aufgaben in Azure automatisieren und Verwaltung verbessern

Azure Automation hilft dabei, regelmäßige Aufgaben in Azure zu automatisieren, zum Beispiel zur Aktualisierung von VMs. Der Beitrag zeigt die Möglichkeiten und Vorteile.

Azure Automation ist ein Cloud-Dienst, der für die Automatisierung der Verwaltung von Azure-, anderer Cloud- und On-Premises-Umgebungen entwickelt wurde. Dieser Service ermöglicht die Automation der routinemäßigen, zeitaufwendigen und fehleranfälligen Managementaufgaben. Nutzer können mithilfe des Automatisierungskontos, das als zentrale Plattform für die Verwaltung und Überwachung dient, Automatisierungsprozesse effizient gestalten. Ein Beispiel für die Verwendung von Azure Automation ist die automatisierte Aktualisierung von Azure-VMs mit Windows und Linux. Automation bietet in Azure aber noch sehr viel mehr.

Kernkomponenten von Azure Automation

Die Automatisierungslösungen basieren primär auf zwei Komponenten: Runbooks und Desired State Configuration (DSC). Runbooks sind in diesem Kontext in PowerShell oder Python geschriebene Skripte, die Automatisierungsaufgaben ausführen. Diese reichen von einfachen Aufgaben wie der Überwachung des Dienstzustands bis zu komplexen Deployment-Routinen. Desired State Configuration ist ein mächtiges Werkzeug, das den gewünschten Zustand von Softwareumgebungen auf einer Vielzahl von Geräten sicherstellt, um konsistente Konfigurationen zu gewährleisten.

Azure Automation
Abbildung 1: Azure Automation bietet vielfältige Möglichkeiten zur Automatisierung von Ressourcen in Azure.

Runbooks in Azure Automation können so konfiguriert werden, dass sie basierend auf bestimmten Ereignissen oder nach einem Zeitplan gestartet werden. Diese Flexibilität ist entscheidend für die Aufrechterhaltung der Betriebszeiten und die dynamische Reaktion auf Zustandsänderungen oder spezifische Bedingungen in der Infrastruktur.

Sicherheitsmanagement in Azure Automation

Die Sicherheit wird durch die zentrale Verwaltung von Anmeldeinformationen, Zertifikaten und Schlüsseln in einem sicheren Speicher erhöht. Zusätzlich ermöglicht die Verwendung von Managed Identities für Azure-Ressourcen, dass Dienste und Automatisierungsskripte unter Verwendung der Azure-Identität ohne traditionelle Anmeldeinformationen ausgeführt werden können. Diese Methode reduziert das Risiko von Sicherheitsverletzungen erheblich.

Azure Automation bietet detaillierte Log- und Überwachungsfunktionen, die Einblicke in die Ausführung von Automatisierungsaufgaben geben. Administratoren können auf umfangreiche Protokolldaten zugreifen, die ihnen helfen, Probleme zu diagnostizieren und die Zuverlässigkeit ihrer Automatisierungslösungen zu verbessern.

Praktische Anwendungsfälle

Zu den häufigen Anwendungsfällen zählen die Automatisierung der Patch-Verwaltung, die Automatisierung der Skalierung von Diensten basierend auf der aktuellen Last und das automatische Management der Wiederherstellung nach Ausfällen. Die fortlaufende Entwicklung von Azure Automation zeigt sich in der stärkeren Integration mit künstlicher Intelligenz und maschinellem Lernen sowie der Erweiterung der Unterstützung für komplexe Multi-Cloud-Umgebungen. Diese Fortschritte werden die Möglichkeiten der Automatisierung weiter vergrößern und die Effizienz, Sicherheit und Skalierbarkeit der IT-Systeme erhöhen.

Azure Automation kann umfassend mit der PowerShell genutzt werden. In Azure Automation sind Runbooks zentrale Komponenten, die Automatisierungsaufgaben durchführen. Diese Runbooks können in PowerShell geschrieben werden. PowerShell-Runbooks ermöglichen es, komplexe Prozesse automatisieren, darunter das Verwalten von Ressourcen, das Überwachen von Diensten und das Ausführen von Wartungsarbeiten.

PowerShell-Runbook in Azure Automation
Abbildung 2: Erstellen Sie ein PowerShell-Runbook in Azure Automation.

Darüber hinaus bietet Azure Automation Unterstützung für PowerShell Desired State Configuration (DSC), eine Plattform, die dazu dient, die Konfiguration von Software und Diensten auf Maschinen in einer konsistenten Weise sicherzustellen. Mit PowerShell DSC innerhalb von Azure Automation können Administratoren sicherstellen, dass ihre Maschinen immer in einem definierten, gewünschten Zustand konfiguriert sind, was manuelle Konfigurationen minimiert und die Compliance erhöht.

Für die Interaktion mit Azure Automation über PowerShell ist das Azure PowerShell Modul erforderlich. Dieses Modul ermöglicht die Steuerung und das Management von Azure-Ressourcen direkt über das PowerShell-Konsole, was die Skripterstellung und Automatisierung weiter vereinfacht.

Erstellung eines PowerShell-Runbooks

Ein einfaches Beispiel für ein PowerShell-Runbooks, das die aktuellen Azure-VMs auflistet:

param(
    [string]$resourceGroupName
)
# Authentifizieren mit Azure
$connection = Get-AutomationConnection -Name 'AzureRunAsConnection'
Connect-AzAccount -ServicePrincipal -TenantId $connection.TenantID -ApplicationId $connection.ApplicationID -CertificateThumbprint $connection.CertificateThumbprint
# VMs im angegebenen Ressourcengruppe auflisten
$VMs = Get-AzVM -ResourceGroupName $resourceGroupName
$VMs.Name

Dieses Skript verbindet sich zunächst mit Azure unter Verwendung eines Service-Principal, der im Automatisierungskonto konfiguriert ist, und listet dann die Namen der VMs in der spezifizierten Ressourcengruppe auf. Für eine effektive Nutzung ist es wichtig, dass Administratoren ihre Runbooks modular aufbauen. Durch die Modularisierung können häufig verwendete Funktionen und Prozeduren in separate Skriptmodule ausgelagert werden, die dann von verschiedenen Runbooks wiederverwendet werden können. Das reduziert den Wartungsaufwand und erhöht die Übersichtlichkeit und Wiederverwendbarkeit des Codes. Ein DSC-Konfigurationsskript, das sicherstellt, dass der Windows-Feature Web-Server (IIS) auf einer Zielmaschine installiert ist:

Configuration InstallIIS
{
    Import-DscResource -ModuleName 'PSDesiredStateConfiguration'
    Node "localhost"
    {
        WindowsFeature WebServer
        {
            Ensure = "Present"
            Name = "Web-Server"
        }
    }
}

Nachdem dieses Skript in Azure Automation als DSC-Konfiguration hochgeladen wurde, kann es auf die zugeordneten Knoten angewendet werden, um sicherzustellen, dass IIS installiert und betriebsbereit ist. Das ist ein PowerShell-Runbook zum Neustart von VMs in einem Azure-Abonnement:

param(
    [Parameter(Mandatory=$true)]
    [string]$vmName,
    [Parameter(Mandatory=$true)]
    [string]$resourceGroupName
)

 

# Authentifizieren mit Azure
$connection = Get-AutomationConnection -Name 'AzureRunAsConnection'
Connect-AzAccount -ServicePrincipal -TenantId $connection.TenantID -ApplicationId $connection.ApplicationID -CertificateThumbprint $connection.CertificateThumbprint
# Neustart der VM
Restart-AzVM -Name $vmName -ResourceGroupName $resourceGroupName

Dieses Skript stellt eine Verbindung zu Azure her und führt einen Neustart der angegebenen virtuellen Maschine aus, was nützlich sein kann, um regelmäßige Wartung oder Updates zu automatisieren.

Erfahren Sie mehr über Cloud Computing