Archiv der Kategorie: DCI – Toms Admin Blog

Installation von Exchange 2019 delegieren

Der Administrator, der den Server installiert, benötigt bei diesem Vorgang keine Rechte für die Organisation, da der Organisations-Admin alles Notwendige vorgegeben hat.

Der erste Server der Organisation lässt sich allerdings nicht auf diesem Weg delegieren. Für eine solche Installation verwenden Sie die Option /NewProvisionedServer der Setupdatei von Exchange 2019. Bei diesem Vorgang legt das Setupprogramm alle notwendigen Serverobjekte an, konfiguriert die Gruppenmitgliedschaften und setzt entsprechende Berechtigungen. Die Syntax des Befehls lautet:

Setup.exe /NewProvisionedServer:<Server-Name> /IAcceptExchangeServerLicenseTerms

Über eine solche Delegierung lässt sich Exchange allerdings nur installieren, eine Deinstallation ist auf diesem Weg nicht möglich. Nach der Bereitstellung sehen Sie den Server bereits in der Exchange Admin Center über Server. Das Computerkonto des Servers muss dazu aber bereits in Active Directory vorhanden sein. Anlegen lässt sich das Konto zum Beispiel über das Snap-In Active Directory-Benutzer und -Computer.

Wie Sie Rechte in Exchange auf Basis von Rollen vergeben, zeigen wir Ihnen in Kapitel 16. Damit Administratoren delegierte Server installieren können, müssen zuvor die Benutzerkonten in die Rollengruppe Delegated Setup aufgenommen werden. Sie benötigen dazu die Exchange Management Shell. Über den Befehl

Get-RoleGroupMember „Delegated Setup“

lassen Sie sich die aktuellen Mitglieder der Gruppe anzeigen.

Mit dem Befehl

Add-RoleGroupMember „Delegated Setup“ -Member <Benutzerkonto>

nehmen Sie Benutzerkonten in die Gruppe auf.

Entfernen können Sie Benutzer über

Remove-RoleGroupMember „Delegated Setup“ -Member <Benutzerkonto>

Mit Ansible adhoc-Befehle und dynamische Inventarisierungs-Dateien nutzen

Standardmäßig speichert Ansible seine Inventurdateien im Verzeichnis „/etc/ansible/hosts“ gespeichert. Mit der Option „-i“ lassen sich benutzerdefinierte Inventurdateien nutzen, und zwar mit „ansible“ und „ansible-playbook“.  Die Syntax dazu ist folgende:

ansible all -m ping -i <Benutzerdefiniertes Inventar>

Das funktioniert auch mit „ansible-playbooks“:

ansible-playbook <Playbook> -i  <Inventar>

Mit Ansible lassen sich auch dynamische Inventadateien nutzen. Sinnvoll ist das, wenn sich die Inventare deutlich ändern.  Solche Dateien stehen auch kostenlos auf GitHub zur Verfügung. 

Nach dem Download der Skripte und deren Anpassung an die eigene Infrastruktur, lassen sich diese schnell und einach ausführen, zum Beispiel mit:

ansible all -m ping -i cobbler.py

Natürlich lassen sich auch Befehle auf einem Knoten durchführen. Dazu wird die Option „-a“ verwendet. Um einen Befehl mit der Bezeichnung  auf allen Knoten durchzuführen, wird  zum Beispiel der folgende Befehl verwendet:

ansible all -a „uname -a“

 

Tipps für Ansible

Um sicherzustellen, dass alle Ansible-Knoten miteinander kommunizieren können, sollte die Verbindung dieser Knoten regelmäßig getestet werden. Die Verbindung ist auch wichtig, da nur so alle Playbooks auf allen Knoten verfügbar sind und daher auch die einzelnen Automatisierungsaufgaben durchgeführt werden können, die wiederum auf den Playbooks aufbauen. Der Befehl zum überprüfen der Verbindungen ist:

ansible all -m ping

Der Befehl verbindet sich mit allen Knoten, die im Cluster definiert sind und verwendet dazu die Anmeldedaten des entsprechenden Benutzers. Antworten die anderen Knoten funktioniert Ansible generell. 

Die Verbindungen werden mit den Anmeldedaten des aktuell angemeldeten Benutzers durchgeführt. Mit dem Befehl lassen sich aber auch andere Benutzer anmelden, um mit deren Rechten zu testen, ob die Verbindung funktioniert. Dazu wird die Option „-u“ verwendet,  zusammen mit dem Benutzerkonto:

ansible all -m ping -u thomas

Auch bei der Verwendung von Playbooks lassen sich natürlich andere Benutzerkonten hinterlegen, mit denen ein bestimmtes Playbook gestartet wird:

ansible-playbook serveriis.yml -u thomas

Auch der SSH-Key, mit dem die Verbindungen getestet oder Playbooks ausgeführt werden kann angepasst werden:

ansible all -m ping –private-key=<Pfad zur Datei mit dem Schlüssel>

Die Verbindung kann auch mit einer herkömmlichen Authentifizierung durchgeführt  werden:

ansible all -m ping –ask-pass

Das funktioniert natürlich auf dem gleichen Weg mit „ansible-playbook“:

ansible-playbook playbook.yml –ask-pass

 

Azure Kubernetes Services lokal verwalten

Kubectl kann genutzt werden, sobald es in Azure CLI installiert wurde.

Wenn die Anmeldung an Azure in der Azure CLI erfolgreich mit az login erfolgt ist, kann kubectl mit az aks install-cli installiert werden. Anschließend sollte der Pfad von kubectl noch in die Befehlspfade des Windows-Rechners eingebunden werden:

set PATH=%PATH%;C:\Users\thomas\.azure-kubectl

Danach kann der Cluster in Azure mit der lokalen kubectl verbunden werden:

aks get-credentials –resource-group kubernetes-joos –name kubernetes-joos-cluster

Jetzt lässt sich der Kubernetes-Cluster in Microsoft Azure genauso verwalten, wie eine lokale Kubernetes-Installation. Um zum Beispiel die Deployments im Namensraum kube-system anzuzeigen wird der folgende Befehl eingegeben:

kubectl get deployments -n kube-system

Der Cluster kann auch im Webportal von Microsoft Azure angepasst werden. Hier kann er zum Beispiel erweitert werden.  Soll ein Cluster gelöscht werden, lässt sich das mit dem folgenden Befehl durchführen, ebenfalls wieder am Beispiel des in diesem Beitrags behandelten Beispiel-Clusters:

az aks delete –resource-group kubernetes-joos –name kubernetes-joos-cluster

Alle Einstellungen eines Kubernetes-Clusters lassen sich in der Weboberfläche des Clusters im Azure-Webportal problemlos anpassen. Hier kann ein Cluster auch skaliert werden, und dadurch schnell und einfach mehr Leistung erhalten. Dazu wird lediglich die Anzahl der Worker-Nodes erhöht. 

Kubernetes in Microsoft Azure ausführen

Um Kubernetes in Azure zu nutzen, wird auf Basis der Kubernetes-Dienste in Azure ein neuer Cluster erstellt. Das können Sie entweder im Webportal durchführen, mit der Azure Cloud Shell, oder der Azure CLI.

Die Azure Cloud Shell und Azure CLI nutzen Sie aktuell am einfachsten im neuen Windows Terminal, das Microsoft auf Github und im Microsoft Store für Windows 10 zur Verfügung stellt.  Die Installation kann aber auch manuell erfolgen. Den Download dazu stellt Microsoft kostenlos zur Verfügung:

Azure CLI

Die Installation kann auch über die PowerShell erfolgen, inklusive Download:

Invoke-WebRequest -Uri https://aka.ms/installazurecliwindows -OutFile .\AzureCLI.msi; Start-Process msiexec.exe -Wait -ArgumentList ‚/I AzureCLI.msi /quiet‘

Die Anmeldung am entsprechenden Azure-Konto erfolgt danach mit

az login

Kubernetes-Dienste können Sie auch in einer eigenen Ressourcengruppe zusammenfassen. Die Gruppe können Sie beim Erstellen des Kubernetes-Clusters in der grafischen Oberfläche erstellen, oder mit „az“ in der Azure CLI. Ein Beispiel in der Azure CLI sieht folgendermaßen aus:

az group create –name kubernetes-joos –location westeurope

In der Ressourcengruppe können Sie anschließend einen Kubernetes-Cluster erstellen. Auch hier können Sie wieder das Azure-Webportal verwenden, oder Azure CLI. Die Syntax dazu ist:

az aks create –resource-group <Name der Ressourcengruppe> –name <Name des Clusters> –node-count <Anzahl Worker Nodes> –enable-addons monitoring –generate-ssh-keys

Beispiel:

az aks create –resource-group kubernetes-joos –name kubernetes-joos-cluster –node-count 1 –enable-addons monitoring –generate-ssh-keys

Die Erstellung im Webportal ist aber einfacher und schneller.

Zur Verwaltung eines Kubernetes-Clusters wird meistens „kubectl“ verwendet. Sie können Kubectl auch über die Azure CLI installieren lassen, zum Beispiel mit:

az aks install-cli

Anschließend muss Kubectl noch mit dem Cluster verknüpft werden:

az aks get-credentials –resource-group kubernetes-joos –name kubernetes-joos-cluster

Um das Kubernetes-Dashboard aufzurufen, verwenden Sie den folgenden Befehl:

az aks browse –resource-group  kubernetes-joos –name kubernetes-joos-cluster

Danach kann Kubernetes in Microsoft Azure

Chef Automation Server auf Ubuntu installieren

Um Chef auf einem Ubuntu-Server zu installieren, sollten zunächst die System-Pakete aktualisiert werden:

sudo apt update
sudo apt install curl wget

Danach sollte der Status von AppArmor überprüft werden. Chef hat kein Profil für AppArmor, sodass der Modus von AppArmor auf „complain“ oder „disabled“ gesetzt werden sollte:

sudo apparmor_status

Die Installation kann über das Terminal erfolgen. Dazu sollte die Version von Chef angegeben werden, die über das Terminal installiert wird.  Der Download kann dann entweder mit „Wget“ erfolgen oder manuell. Danach kann die Installation erfolgen:

Dazu wird die Version als Variable gespeichert:

VERSION=“13.0.17″

sudo dpkg -i chef-server-core_${VERSION}-1_amd64.deb

wget https://packages.chef.io/files/stable/chef-server/${VERSION}/ubuntu/18.04/chef-server-core_${VERSION}-1_amd64.deb

sudo dpkg -i chef-server-core_${VERSION}-1_amd64.deb

sudo chef-server-ctl reconfigure

Danach muss Chef noch konfiguriert werden. Die Entwickler zeigen die Vorgehensweise umfassend auf Ihrer Webseite

 

Mit Konfigurationsmanagement das Rechenzentrum im Griff behalten

Die einheitliche Konfiguration von Servern, Serverdiensten, Containern und anderen Objekten in Active Directory stellt eine wichtige Herausforderung für moderne Rechenzentren dar. In vielen Fällen wird für die Automatisierung auf die Tools Ansible, Chef oder Puppet gesetzt.

Ein zentraler Fokus von Ansible, Chef und Puppet liegt auch darin sicherzustellen, dass eine vorgegebene Konfiguration auch ständig eingehalten wird. Ändern Administratoren bestimmte Einstellungen ab, die durch Ansible, Chef oder Puppet vorgegeben wurden, können diese Systeme die Konfiguration wieder so abändern, dass sie den Vorgaben entspricht. 

Auch Sicherheitlücken oder Fehlkonfigurationen auf mehreren Servern und Anwendungen sind einfacher zu beheben, wenn die entsprechende Konfiguration auf einmal verteilt werden kann, am besten durch das einfache Ändern einer einzelnen Konfigurationsdatei.

Während Chef auf Ruby aufbaut, um Konfigurationen zu erstellen, nutzt Ansible einfache YAML-Dateien. 

Windows-Subsystem für Linux installieren

Um in Windows 10 das Windows-Subsystem für Linux zu installieren wird die PowerShell mit administrativen Rechten gestartet. Danach erfolgt die Installation mit folgendem Befehl:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

Danach muss eine Linux-Distribution installiert werden. Das kann in Windows 10 über den Store erfolgen, oder wie in Windows Server 2019 über die PowerShell. Anschließend steht in der Befehlszeile der Befehl „bash“ zur Verfügung, mit dem sich innerhalb der PowerShell und der Eingabaufforderung Linux-Befehle nutzen lassen. Zusätzlich bietet Microsoft die neue Shell Windows-Terminal für Windows 10. Diese wird auch für Windows Server 2019 verfügbar gemacht.  Parallel dazu hat Microsoft in Windows 10 und Windows Server 2019 auch die beiden Linux-Befehle „curl“ und „tar“ integriert.

Windows-Subsystem für Linux auf Windows Server 2019 nutzen

In Windows Server 2019 kann zur Installation von WSL der folgende Befehl in der PowerShell verwendet werden:

Install-WindowsFeature -Name Microsoft-Windows-Subsystem-Linux

Das Windows Subsystem for Linux hat selbst keine Linux-Befehle mit an Bord, sondern kann Linux-Distributionen anbinden, die nach der Installation der WSL erst über den Microsoft-Store in Windows 10, oder als direkter Link installiert werden müssen. Aktuell stehen folgende Distributionen mit ihren Befehlen zur Verfügung:

Ubuntu (https://www.microsoft.com/store/p/ubuntu/9nblggh4msv6)
OpenSUSE (https://www.microsoft.com/store/apps/9njvjts82tjx)
SLES (https://www.microsoft.com/store/apps/9p32mwbh6cns)
Kali Linux (https://www.microsoft.com/store/apps/9PKR34TNCV07)
Debian GNU/Linux (https://www.microsoft.com/store/apps/9MSVKQC78PK6)

Der Download kann auch direkt erfolgen, zum Beispiel für Windows Server 2019. Nach der Installation muss die Distribution eingerichtet werden. Dazu muss in den meisten Fällen die ausführbare Datei der Distribution gestartet werden. Im Rahmen der Einrichtung wird ein neuer Benutzername für die Linux-Distribution angelegt sowie ein dazu gehöriges Kennwort.

Download der Installationsdateien:

Ubuntu 18.04: https://aka.ms/wsl-ubuntu-1804

Ubuntu 18.04 ARM: https://aka.ms/wsl-ubuntu-1804-arm

Ubuntu 16.04: https://aka.ms/wsl-ubuntu-1604

Debian GNU/Linux: https://aka.ms/wsl-debian-gnulinux

Kali Linux: https://aka.ms/wsl-kali-linux

OpenSUSE: https://aka.ms/wsl-opensuse-42

SLES: https://aka.ms/wsl-sles-12

Ansible installieren

Ansible kann in der Linux-Shell installiert werden:

apt-get update && sudo apt-get -y upgrade
apt-get -y install python-pip python-dev libffi-dev libssl-dev
pip install ansible

 

Ansible in Windows-Netzwerken einsetzen

Ansible gehört zu den bekanntesten Lösungen, wenn es darum geht Linux-Server und Linux-Netzwerke zu automatisieren, und Einstellungen zentral vorzugeben. Aber auch für Microsoft-Netzwerke und Windows-Server ist Ansible geeignet. Die Installation der Server-Lösung erfolgt zwar auf einem Linux-Server, es lassen sich aber auch Windows-Server einbinden, um automatisiert zu werden.

Um Windows-Server mit Ansible zu automatisieren, sind generell keine Linux-Kenntnisse notwendig. Wer sich mit Ansible und den Ansible-Skripten auskennt, kann auch ganz gut mit rudimentären Linux-Kenntnissen ein Ansible-System aufbauen, was auch durchaus Sinn ergibt. 

Aktuelle Windows-Versionen verwalten – auch Windows Server 2019

Ansible ist in der Lage auch zahlreiche Windows-Server identisch und automatisiert zu konfigurieren. Die Entwickler stellen dazu einen eigenen Windows Guides-Bereich zur Verfügung, mit dem sich Windows-Server anbinden, bereitstellen und automatisieren lassen.

Ansible arbeitet auch mit dem Linux-Subsystem für Linux zusammen. Bei dieser Software lassen sich Linux-Befehle auf Windows-Servern nutzen. Dazu wird eine Linux-Distributiuon im Hintergrund auf dem Windows-Server installiert. Die PowerShell und Eingabeaufforderung bieten darauf hin die Möglichkeit auch mit Linux-Befehlen zu arbeiten und ermöglichen sogar die Installation von Linux-Programmen auf Windows-Servern. Auf diesem Weg kann zum Beispiel auch ein nativer Ansible-Client installiert werden.

Es schadet also nicht, sich mit dem Windows-Subsystem für Linux in Windows 10 Pro/Enterprise und Windows Server 2019 auseinanderzusetzen. Diese Windows-Versionen lassen sich besonders einfach an Ansible anbinden.

Generell muss auf den Servern und Arbeitsstationen, die mit Ansible automatisiert werden WinRM und SSH installiert und aktiviert werden. Die Vorgehensweise dazu zeigen die Entwickler auf ihrer Webseite.

Einstieg in die Orchestrierung mit Ansible

Sobald Ansible über die Paketverwaltung in Linux installiert wurde, zum Beispiel mit 

yum install ansible

apt-get install ansible

erfolgt die Konfiguration über die beiden Dateien „ansible.cfg“ und „hosts“, die sich beide standardmäßig im Verzeichnis „etc\ansible“ befinden. 

Wenn Ansible einsatzbereit ist, und die Server zur Verwaltung mit SSH-Schlüsseln angebunden sind, lassen sich Automatisierungen mit „Playbooks“ durchführen.  Die Vorgehensweise dazu wird in der Dokumentation beschrieben.

In der Shell werden dazu vor allem die beiden Befehle „ansible“ und
„ansible-playbook“ verwendet. Wer mit Ansible arbeitet, nutzt die auf YAML-basierten Skripte, die als „Playbooks“ bezeichnet werden. Die Skripte können mit Tools, wie zum Beispiel Notepad++ erstellt und verwaltet werden. 

Liegt ein Skript, also ein Playbook vor, kann dieses auf dem Computer, auf dem Ansible installiert ist, für Hosts ausgeführt werden, die wiederum durch Ansible verwaltet werden. Das sind die Hosts, die im Ansible-Verzeichins in der Datei „Hosts“ aufgelistet sind. Playbooks werden mit „ansible-playbook“ gestartet.