Alle Beiträge von Thomas Joos

Mitglieder zu einer DAG hinzufügen, entfernen und reparieren

Bricht das Hinzufügen von Mitgliedern ab, sollten Sie die beteiligten Server neu starten. Nehmen Sie danach die Server nacheinander auf, um festzustellen, warum sich einzelne Server nicht hinzufügen lassen.

Oft liegt das Problem an fehlerhaften Berechtigungen, Netzwerkverbindungsproblemen oder einer falsch konfigurierten Namensauflösung. Überprüfen Sie nach dem Neustart im Server-Manager oder dem Windows Admin Center ob das Windows-Feature für Failover-Cluster installiert ist.

Teilweise hat der Assistent zum Hinzufügen von neuen Servern zu DAGs ein Problem, wenn eine Neuinstallation des Servers aussteht, oder die Failovercluster-Verwaltung nicht installiert ist. Ist das Feature installiert und wurde der Server neu gestartet, sollten sich die Server nacheinander problemlos hinzufügen lassen.

Kommt es beim Aufnehmen einzelner Mitglieder immer noch zu Problemen, sollten Sie das Exchange Admin Center auf dem jeweiligen Server starten, sich direkt mit dem Server verbinden und den Server der DAG hinzufügen.

Alle notwendigen Schritte zur Verwaltung einer DAG nehmen Sie am besten im Exchange Admin Center vor, Sie müssen den Cluster nicht mit der Failovercluster-Verwaltung konfigurieren. Jeder Postfachserver kann nur in einer Datenbankverfügbarkeitsgruppe Mitglied sein. Nur Datenbanken auf Postfachservern mit Exchange 2019, die Mitglied einer DAG sind, lassen sich durch die DAG auch absichern.

Sie können über das gleiche Menü auch Server wieder aus der DAG entfernen. Zuvor müssen Sie aber auf dem Server alle Replikate der Datenbanken entfernen. Neben dem Exchange Admin Center, können Sie auch Server in der Exchange Management Shell zu einer DAG hinzufügen. Dazu verwenden Sie folgendes Cmdlet:

Add-DatabaseAvailabilityGroupServer -Identity <DAG-Name> -MailboxServer <Servername>

Um einen Server au seiner DAG mit der Exchange Management Shell zu entfernen, verwenden Sie den folgenden Befehl:

Remove-DatabaseAvailabilityGroupServer -Identity <DAG-Name> -MailboxServer <Servername>

Tritt ein Fehlerfall ein, und ein Server in einer DAG ist nicht mehr verfügbar, können Sie diesen über das Exchange-Setupprogramm wieder reparieren. Gehen Sie dazu genauso vor wie bei der Wiederherstellung eines normalen Servers .

Überprüfen Sie nach der Wiederherstellung, ob die Replikation noch funktioniert. Unter Umständen müssen Sie diese auf den anderen Servern anhalten und den Server neu in die DAG und die Postfachkopien aufnehmen.

Verwalten von Postfachdatenbankkopien

Sie sehen die Länge der Warteschlange von Daten, die noch übertragen werden müssen, und Sie sehen welche Datenbank aktiv ist. Über die Links „Details anzeigen“ lassen sich Einstellungen ändern.

In den Eigenschaften sehen Sie den aktuellen Zustand der Datenbank und können die Aktivierungseinstellungsnummer anpassen.

Das Feld „Länge der Kopiewarteschlange“ zeigt die Anzahl der zu kopierenden Transaktionsprotokolle an, die Exchange noch in die Datenbank schreiben muss. Der Wert sollte möglichst gering sein, damit sichergestellt ist, dass die Daten in der Postfachdatenbankkopie aktuell sind.

„Länge der Wiedergabewarteschlange“ zeigt die Anzahl der Transaktionsprotokolle an, die auf dem Server kopiert sind, aber noch nicht in die Datenbank geschrieben wurden. Weiter unten sehen Sie die Daten der letzten Protokolle und die Zeiten des Imports.

Beim Aktivieren einer passiven Postfachdatenbankkopie legen Sie fest, dass eine der erstellten Postfachdatenbankkopien zur produktiven Datenbank wird und Anwender zukünftig mit dieser Datenbank arbeiten. Die bisherige Datenbank wird dann zur passiven Kopie.

Microsoft bezeichnet diesen Vorgang auch als Switchover, hierbei hebt Exchange die Bereitstellung der produktiven Datenbank auf und verwendet die passive Datenbankkopie als neue aktive, produktive Datenbank.

Navigieren Sie dazu im Exchange Admin Center zu „Server/Datenbanken“. Klicken Sie auf die passive Postfachdatenbank, die Sie zukünftig als produktive Datenbank verwenden wollen. Klicken Sie auf „Aktivieren“.

Kubernetes-Manager WKSctl steht als Open Source kostenlos zur Verfügung

WKSctl hilft dabei Kubernetes-Cluster zu betreiben und zu verwalten. Auch die Überwachung der Cluster auf Funktion und die Anpassung von Einstellungen sind mit WKSctl möglich.  Der Vorteil von WKSctl besteht darin, dass das Projekt mit verschiedenen Betriebssystemen funktioniert und auch mit virtuellen Umgebungen genutzt werden kann.

Auf der Projektseite wird mit einer Quick Start-Anleitung beschrieben, wie Kubernetes-Cluster mit WKSctl installiert und betrieben werden können. Die Entwickler stellen auch eine Dokumentation für den Betrieb zur Verfügung.

WKSctl kennt zwei verschiedene Varianten. Das Tool kann im alleinstehenden Modus (Standalone) betrieben werden, oder über GitOps

Wird WKSctl im alleinstehenden Modus betrieben, erstellt WKSctl einen statische Cluster auf Basis von „cluster.yaml“ und „machines.yaml“ über die CLI.

Zusammen mit GitOps kann WKSCtl Anpassungen an den beiden Dateien“cluster.yaml“ und „machines.yaml“ in Git speichern. Nach der Aktualisierung der Dateien, werden die angebundenen Cluste r anschließend aktualisiert.  Die Vorgehensweise ist auf der Seite „Get started with wksctl“ beschrieben. 

Open Application Model und Distributed Application Runtime verfügbar

Kubernetes und Microservices spielen auch für Microsoft eine große Rolle. Das zeigt die Integration von Containern in Windows Server 2016/2019 und Windows, inklusive der Implementierung von Kubernetes-Clustern, zum Beispiel zur Entwicklung und für Testumgebungen. 

Microsoft stellt jetzt mit Open Application Model (OAM) und ein Distributed Application Runtime (Dapr) zwei neue Projekte bereit, mit denen sich Container schneller und einfacher entwickeln lassen. 

Im Fokus von OAM steht das Entwickeln von Anwendungen für die Cloud, vor allem auf Basis von Microservices. Im Fokus des Open Source steht das Entwickeln von Containern, die mit Kubernetes verwaltet werden sollen. 

Bei Dapr handelt es sich um eine Laufzeitumgebung, die ebenfalls Microservices im Fokus har. Dapr kann mit verschiedenen Programmiersprachen genutzt werden.

Beide Projekte und deren Code sind über Github verfügbar:

Open Application Mode auf Github

Distributed Application Runtime auf Github

 

Mit Variablen in Ansible arbeiten

Eine Liste aller ansible_ Variablen lassen sich durch die von Ansible gesammelten Daten der angebundenen Computer abfragen. Die angebundenen Computer lassen sich wiederum in Playbooks und Vorlagen nutzen. Um eine Liste aller Möglichkeiten zu sehen, die für eine Maschine verfügbar sind, kann das Modul „Setup“ als Ad-hoc-Aktion ausgeführt werden:

ansible -m setup <hostname>

Der Befehl zeigt alle Informationen an, die für diesen Host verfügbar sind. Die Daten lassen sich auch weiterverwenden. So kann die Ausgabe des Befehls über ein Pipeline an einen Pager übergeben werden. 

Sollen alle für einen Host definierten Inventarisierungsvariablen angezeigt werden, kann das mit dem folgenden Befehl erfolgen:

ansible-inventory –list –yaml

Um alle hostspezifischen Variablen anzuzeigen, die Fakten und andere Quellen beinhalten können steht folgender Befehl zur Verfügung:

 

ansible -m debug -a „var=hostvars[‚hostname‘]“ localhost

Ein weiteres Beispiel für Variablen ist:

{{ hostvars[inventory_hostname][‚ansible_‘ + welche_Schnittstelle][‚ipv4‘][‚address‘] }}}}}

„inventory_hostname“ verwendet den aktuellen Host. In diesem Beispiel wird die IPv4-Adresse ausgegeben. Mehr dazu ist 

Cloud-Automatisierung mit Ansible

Ansible kann nicht nur dazu genutzt werden, um lokale Rechenzentren zu automatisieren und die Verwaltung von Rechnern, Berechtigungen und Diensten zu automatisieren. Auch die Verwaltung von Cloud-Ressourcen ist möglich. Hier besteht die Möglichkeit neben Office 365 auch Microsoft Azure, Amazon Web Services (AWS) und OpenStack zu automatisieren.

Damit Cloud-Lösungen mit Ansible automatisiert werden können, stellen die Entwickler und deren Community neben den Core-Modulen, die in jeder Ansible-Installation dabei sind, auch Module für Cloud-Lösungen bereit. Über diese lassen sich zum Beispiel Dienste in Microsoft Azure, AWS und OpenStack über Ansible automatisieren.

Microsoft Azure mit Ansible verwalten

Sollen Cloud-Lösungen wie Microsoft Azure mit Ansible verwaltet werden, muss natürlich zunächst eine Schnittstelle zwischen Ansible und der Cloud-Lösung hergestellt werden. Am Beispiel von Microsoft Azure arbeitet Ansible mit dem Azure Resource Manager zusammen.

Damit das funktioniert, müssen am Beispiel von Microsoft Azure, auf dem Host mit Ansible, Module aus dem Azure SDK installiert werden:

pip install ‚ansible[azure]‘

$ pip install .[azure]

Wer mit der Azure Cloud Shell arbeitet, kann Ansible direkt ansprechen, denn hier sind die Befehle für die Verwendung von Ansible automatisch installiert. Nach der Authentifizierung an Azure lassen sich jetzt Ansible-Aktionen entweder in der lokalen Befehlszeile, der PowerShell, im Terminal, oder der Azure Cloud Shell durchführen.

CentOS 8 einsetzen

Die Neuerungen in RHEL 8 wurden weitgehend auch in CentOS 8 übernommen.  Eine ausführliche Liste der Neuerungen ist in den Release Notes verfügbar (https://wiki.centos.org/Manuals/ReleaseNotes/CentOS8.1905)

Auch die neue Version 8.x ist kostenlos verfügbar. Das gilt auch für den kommerziellen Einsatz. Natürlich gibt es keinen Support durch Red Hat. Wer auf CentOS setzt profitiert zwar kostenlos von den Möglichkeiten, die auch RHEL 8 bietet, erhält aber nicht den entsprechenden Support. 

Die neue Version kann wieder als ISO-Datei heruntergeladen werden. Diese ist allerdings 6.6 GB groß.  Wer auf die externe Paketquelle EPEL setzt, kann diese in CentOS mit dem folgenden Befehl aktivieren:

yum install epel-release

CentOS aktualisieren

Soll ein einzelner Server zu einer aktuelleren Version von CentOS aktualisiert werden, sollte zunächst überprüft werden, welche Version auf dem Server installiert ist.  Die installierte Version wird mit dem folgenden Befehl überprüft:

cat /etc/redhat-release

Wer will, kann auch LSB (Linux Standard Base) installieren und danach die Version abrufen:

sudo yum install redhat-lsb-core
lsb_release -d

Ab CentOS 7.0 ist der Befehl „hostnamectl“ verfügbar. Mit dem Befehl lassen sich Informationen zur installierten CentOS-Version abrufen und auch die exakte Version des installierten Linux-Kernels.

Vor der Aktualisierung sollte der Server natürlich gesichert werden, um Probleme zu vermeiden, die durch Sicherheits-Updates verursacht werden. Das Überprüfen auf eine neue Version wird mit dem folgenden Befehl durchgeführt:

sudo yum check-update

Dadurch werden neue Versionen der verfügbaren Updates angezeigt. Das gilt auch für installierte Anwendungen wie Nagios oder Icinga. Die Aktualisierung wird anschließend mit dem folgenden Befehl durchgeführt:

sudo yum update

Die Installation der Updates muss noch bestätigt werden. 

 

 

Serverswitchover und Rechenzentrumswitchover

Die Replikation der Datenbanken zwischen den beteiligten Servern erfolgt über Transaktionsprotokolle.

Im Exchange Admin Center finden Sie die Einstellungen über Server/Database Availabilty Groups. Bei einer DAG handelt es sich zunächst um ein leeres Objekt in Active Directory.Fügen Sie der DAG den ersten Server hinzu, erstellt Exchange für die Datenbankverfügbarkeitsgruppe automatisch einen Failovercluster.

Bei einem Serverswitchover können Sie alle aktiven Postfachdatenbanken vom aktuellen Postfachserver auf einen oder mehrere Postfachserver mit entsprechenden Postfachdatenbankkopien umschalten. Die Server, auf denen Sie die Postfachdatenbankkopien aktivieren, also zu den produktiven Datenbanken machen, müssen Mitglied in derselben Datenbankverfügbarkeitsgruppe sein.

Serverswitchover durchführen

Um einen Serverswitchover durchzuführen, können Sie die Exchange Admin Center einsetzen. Navigieren Sie zu Server. Wählen Sie den gewünschten Postfachserver aus, auf dem aktuell die produktiven Datenbanken gespeichert sind, und klicken auf den Server. Wählen Sie Serverswitchover aus.

Anschließend können Sie Exchange die Wahl überlassen, welche Postfachdatenbankkopien auf den verschiedenen Servern mit den Kopien aktiv geschaltet werden, oder Sie können manuell einen Zielserver auswählen, auf dem Exchange die Postfachdatenbankkopien zukünftig als produktive Datenbanken einsetzt.

Oracle Datenbanken per PowerShell ansprechen

Für den Zugriff auf Oracle-Datenbanken mit der PowerShell, sind die Oracle Developer Tools für Visual Studio sinnvoll, genauer gesagt „ODP.Net“ aus diesen Tools. Dabei handelt es sich um den Oracle Data Provider (ODP). Mit dieser Variante benötigen Sie keinen Oracle-Client und können problemlos mit der PowerShell auf Oracle-Server und Oracle-Datenbanken zugreifen.

Oracle stellt ODP.NET kostenlos zum Download bereit. Auf Basis dieser Erweiterung können Oracle-Datenbanken auch von Dritthersteller-Tools angesprochen werden, auch von der PowerShell.

Bestandteil von ODP.Net ist die DLL „Oracle.ManagementDataAccess.dll“. Diese befindet sich im Installationsverzeichnis der Developer Tools. Die DLL-Datei wird auf den Rechnern benötigt, mit denen Sie per PowerShell auf Oracle-Datenbanken zugreifen wollen. Zuerst muss also die Installation von ODP.NET erfolgen. Danach kann in der PowerShell eine Verbindung aufgebaut werden. Dazu wird die DLL zunächst in der PowerShell geladen:

Add-Type -Path „C:\ODP\Oracle.ManagedDataAccess.dll“

Sie können ein PowerShell-Skript schreiben, die Befehle einzeln angeben und auch die Anmeldedaten auf verschiedenen Wegen nutzen. Ein Beispiel für die Anbindung ist:

$Str = „Data Source=dbs1:1521;User Id=admin;Password=geheim“

$Cn = [Oracle.ManagedDataAccess.Client.OracleConnection]::new()

$Cn.ConnectionString = $Str

$Cn.Open()