Ansible-Inventare im Griff

Hosts können in Ansible über das Inventory gruppiert werden. Neben selbst definierten Gruppen können Inventories auch die vordefinierten Standard-Gruppen „all“ und „ungrouped“ nutzen. Diese Gruppen gibt es automatisch, auch wenn keine eigenen Gruppen angelegt worden sind.

Hosts können auch Mitglied in mehreren Gruppen sein. Das kann sinnvoll sein, wenn es Gruppen nach Art der Server gibt und Gruppen für die Position. Ein Weberver kann zum Beispiel Mitglied in der Gruppe der Dateiserver sein und gleichzeitig Mitglied der Gruppe „west“. Ein Beispiel für eine solche Gruppierung sieht am Beispiel von YAML folgendermaßen aus:

all:

  hosts:

    mail.example.com:

  children:

    webservers:

      hosts:

        foo.example.com:

        bar.example.com:

    dbservers:

      hosts:

        one.example.com:

        two.example.com:

        three.example.com:

    east:

      hosts:

        foo.example.com:

        one.example.com:

        two.example.com:

    west:

      hosts:

        bar.example.com:

        three.example.com:

    prod:

      hosts:

        foo.example.com:

        one.example.com:

        two.example.com:

    test:

      hosts:

        bar.example.com:

        three.example.com:

Gruppen können auch eingebettet sein. Das bedeutet, dass eine Gruppe und damit deren Hosts Mitglied einer anderen Gruppe sein können, die ebenfalls eigene Hosts und auch andere Gruppen enthält:

all:
hosts:
mail.example.com:
children:
webservers:
hosts:
foo.example.com:
bar.example.com:
dbservers:
hosts:
one.example.com:
two.example.com:
three.example.com:
east:
hosts:
foo.example.com:
one.example.com:
two.example.com:
west:
hosts:
bar.example.com:
three.example.com:
prod:
children:
east:
test:
children:
west:

Einstieg in das Inventory von Ansible

Im Inventory  wird festgelegt, welche Computer im Netzwerk durch Ansible verwaltet werden sollen. Die Computer können im Inventory auch gruppiert werden.  Die Daten werden entweder im YAML-Format oder als INI-Datei gespeichert . Im folgenden gehen wir auf die Konfiguration mit YAML ein:


all:
hosts:
fileserver1:
ansible_host: 192.168.178.12

In dieser Datei wird zum Beispiel festgelegt, dass der Server „fileserver1“ mit der IP-Adresse 192.168.178.12 erreichbar ist.  Die Datei kann entsprechend erweitert werden, wenn mehr Server angebunden werden sollen. Auch hier werden wieder der Name des Servers in Ansible und die IP-Adresse angegeben:


all:
hosts:
fileserver1:
ansible_host: 192.168.178.12
fileserver2:
ansible_host: 192.168.178.13
fileserver3:
ansible_host: 192.168.178.14
Exchange01:
ansible_host: 192.168.178.23

Auf Basis dieser Daten lassen sich die Server auch gruppieren. Dazu wird die Option „children“ genutzt:


all:
hosts:
fileserver1:
ansible_host: 192.168.178.12
fileserver2:
ansible_host: 192.168.178.13
fileserver3:
ansible_host: 192.168.178.14
Exchange1:
ansible_host: 192.168.178.23
children:
fileserver:
hosts:
fileserver1:
fiileserevr2:
webserver3:
Exchange:
Exhange01:

Bevor mit Ansible weiter gearbeitet wird, sollte zunächst überprüft werden, ob die Server im Inventory auch erreicht werden können:

ansible -i inventory.yaml all -m ping

Anstatt die Option „all“  können auch die einzelnen Gruppennamen verwendet werden. 

Für das Erstellen von Inventories können auch INI-Dateien verwendet:

mail.example.com

[webservers]
foo.example.com
bar.example.com

[dbservers]
one.example.com
two.example.com
three.example.com

Office 365 mit der PowerShell gemeinsam verwalten

Um Office 365 und Microsoft Azure zu verwalten, müssen Sie zusätzliche Module herunterladen und auf dem Server installieren:

„Install-Module -Name AzureAD“

Danach müssen Sie noch den Microsoft Online Services-Anmelde-Assistenten (http://www.microsoft.com/de-de/download/details.aspx?id=41950) installieren. Anschließend muss auch das Modul für die Verwaltung von Office 365 installiert werden:

„Install-Module MSOnline“

Nachdem Sie die Erweiterungen installiert haben, können Sie sich in der PowerShell zunächst mit Ihrem Office 365-Konto verbinden. Dazu verwenden Sie das CMDlet „Connect-MsolService“. Findet die Powershell das Modul nicht, lassen Sie es mit Import-Module MSOnline laden. Im Fenster authentifizieren Sie sich mit einem Administrator-Benutzer an Office 365.  Mit dem CMDlet get-command *msol* lassen Sie sich die einzelnen CMDlets anzeigen.

Visual Studio Code mit der PowerShell nutzen und Exchange Online verwalten

Visual Studio Code (https://code.visualstudio.com) (VSCode) steht als Open Source kostenlos zur Verfügung. Mit Windows, Linux und macOS  werden die wichtigsten Plattformen unterstützt. Der Quelltext-Editor dient vor allem für die Entwicklung von Webanwendungen, kann aber auch für herkömmliche Anwendungen verwendet werden, wie zum Beispiel der Verwaltung. Microsoft stellt Visual Studio Code (VSCode) (https://code.visualstudio.com/download) kostenlos als Opensource zur Verfügung. VSCode kann auch als grafische Oberfläche/Entwicklungsumgebung für die PowerShell genutzt werden.

In Kombination sind VSCode und PowerShell Core ein mächtiges Verwaltungswerkzeug, über verschiedene Betriebssysteme hinweg, vor allem auch, wenn zusätzlich noch mit Cloudlösungen wie Exchange Online gearbeitet wird. Auch Skripte lassen sich schreiben, und mit anderen Programmiersprachen kombinieren.

Ansible unter Windows konfigurieren

Nachdem Ansible installiert wurde, müssen Sie sich zur Verwaltung mit Benutzername und Kennwort anmelden. Ist das nicht gewünscht, können Sie sich über „ssh-keygen“  einen SSH-Schlüssel für WSL und die Ansbile-Verwaltung erstellen. 

Ansible iist generell im WSL nach der Installation einsatzbereit, verfügt aber noch über keine Config-Dateien. Diese lassen sich im WSL aber herunterladen und in Ansible integrieren.

Die Integration kann über die PowerShell erfolgen, oder die Befehlszeile.  Ansible und Linux werden über die Linux-Bash verwaltet. Diese wird über „bash“ gestartet. 

Die Linux-Dateien von Debian und Ansible befinden sich im Verzeichnis 

C:\Users\<Benutzername>\AppData\Local\Packages\TheDebianProject.DebianGNULinux_<Versionsnummer>\LocalState\rootfs

In dieses Verzeichnis muss gewechselt werden, bevor die Konfigurationsdateien heruntergeladen werden:

wget https://raw.githubusercontent.com/ansible/ansible/devel/examples/ansible.cfg -O „/etc/ansible/ansible.cfg“

In der Linux-Bash steht Ansible zur Verfügung. Die Konfiguration kann mit „ansible“ vorgenommen und überprüft werden.  Mit der Umgebung lassen sich auch Ansible-Aufgaben vornehmen.

Ansible-Playbooks werden mit „ansible-playbook“ verwaltet.  Das funktioniert auch bei der Installation unter Windows. 

 

Automatisierung von Rechenzentren

Um Ansible auf einem Windows-Rechner zu installieren, wird Windows 10 oder Windows Server 2019 benötigt. In Windows 10 wird dazu die PowerShell mit Administrator-Rechten gestartet. Das ist bei Windows Server 2019 nicht notwendig. Die Installation des Windows-Subsystem für Linux wird mit folgendem Befehl vorgenommen:

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

Nach der Installation muss der Rechner neu gestartet werden. Durch die Installation von WSL befindet sich noch kein Linux-System in Windows, sondern es wurde lediglich die Funktion installiert, dass ein solches Linux-System integriert werden kann.

Beim Einsatz von Windows 10 sind die verschiedenen Linux-System im Windows-Store zu finden. Dazu muss lediglich nach „linux“ gesucht werden. Für die Installation von Ansible kann Debian sinnvoll sein. Sobald Debian installiert und gestartet ist, kann die Ansible-Installation mit folgenden Befehlen durchgeführt werden:

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

Oft wird noch „Sudo“ für die Installation benötigt. Danach steht Ansible zur Verfügung und kann für Test- und Entwicklungssysteme genutzt werden. 

Verbindungsaufbau zu Exchange Online mit der PowerShell

Im ersten Schritt sollten Sie die Anmeldedaten eines Administrators, der das Recht hat eine Verbindung zu Exchange Online aufzubauen, in einer Variablen speichern:

„$user = Get-Credential“

Die Speicherung in der Variablen hat den Vorteil, dass Sie so schnell Authentifizierungen durchführen können, da Sie an der entsprechenden Stelle nur die Variable einfügen müssen. Danach bauen Sie eine Sitzung zu Exchange Online auf. Die Sitzung speichern Sie in einer Variablen, da Sie dadurch die Möglichkeit haben die Sitzung ein einem geöffneten PowerShell-Fenster zu importieren:

$session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $user -Authentication Basic -AllowRedirection

Erscheint keine Fehlermeldung, können Sie die gespeicherte Sitzung in der PowerShell oder PowerShell Core importieren und mit Exchange Online arbeiten. Dazu verwenden Sie den Befehl:

Import-PSSession $session

PowerShell Core für die Verwaltung nutzen

Ab Version 7.0 steht die Powershell in Windows, macOS und Linux zur Verfügung. Die neue Version unterstützt nahezu alle Module, die auch die PowerShell 5 in Windows unterstützt.

Die Installation von PowerShell Core 6.x ist neben Windows-Clients auch auf Servern ab Windows Server 2008 R2 und neuer möglich. Um PowerShell Core 6.x auf Linux-Rechnern zu installieren, ist Ubuntu (14.04 und 16.04), Debian 8, CentOS, Red Hat Enterprise Linux 7, OpenSUSE 42,1 oder Arch Linux notwendig. Für andere Distributionen bietet Microsoft auf GitHub ein eigenes Paket zur Installation an.

Sobald die PowerShell Core auf einem Linux-Rechner installiert wurde, zum Beispiel mit

“sudo apt-get update”

“Sudo apt-get install -y powershell”

Danach kann die PowerShell auch über den Befehl „powershell“ in SSH-Sitzungen gestartet werden, zum Beispiel über Putty.

Energiebedarf der Rechenzentren in Deutschland steigt weiter an

Mit 14 Mrd. kWh im Jahr 2018 benötigen die Rechenzentren 6% mehr Energie als im Vorjahr (Abbildung). Dieser deutliche Anstieg ist insbesondere auf den Aufbau von Cloud-Computing-Kapazitäten zurückzuführen. Der Energiebedarf traditioneller Rechenzentren ist dagegen rückläufig. Gemäß Analysen im Projekt TEMPRO sind  Cloud Rechenzentren in Deutschland im Jahr 2018 für 23% des Energiebedarfs aller Rechenzentren verantwortlich. In Summe werden die (Energie-)Effizienzvorteile von Cloud Computing durch das starke Wachstum der Branche also mehr als ausgeglichen.

Die TEMPRO-Kurzstudie zur Entwicklung des Energiebedarfs der Rechenzentren wird in Kürze veröffentlicht. Sie befasst sich auch mit der zukünftigen Bedeutung von Edge Computing für den Energiebedarf der Rechenzentren.

Boom bei Kompaktrechenzentren?

Das Projekt HotFlAd – Abwärmenutzung aus Kompakt-Rechenzentren mit Hot-Fluid-Adsorptionskälte-System hat zum Ziel, eine wirtschaftlich attraktive Nutzung von Abwärme in Rechenzentren zu ermöglichen. Die NeRZ-Mitglieder dc-ce, InvenSor, Tobol, Thomas Krenn und Borderstep entwickeln und demonstrieren gemeinsam mit der TU Berlin und Noris Network eine Lösung zur Abwärmenutzung in Kompakt-Rechenzentren.

Zu dem Workshop in Berlin wurden Experten von Rechenzentrumsbetreibern und Forschungsinstituten eingeladen, um über die künftigen Marktpotenziale solcher Lösungen zu diskutieren. Die Experten sahen insbesondere beim Einsatz in Kombination mit 5G-Netzen und im Bereich von dezentralen Cloud-Lösungen große Chancen für energieeffiziente Kompaktrechenzentren. Bis zum Jahr 2025 werden mehrere tausende neue solcher Rechenzentren in Deutschland erwartet. Dabei reicht die Spannweite von Kleinstrechenzentren (bis 5 kW) im Bereich der öffentlichen 5G-Netze über Campus-Rechenzentren (bis 20 kW) bis zu dezentralen Edge-Cloud-Rechenzentren mit mehreren hundert Kilowatt elektrischer Anschlussleistung.

Die Ergebnisse des Workshops fließen in eine im Rahmen des Projekts HotFlAd durchgeführte Marktuntersuchung zu Edge-Rechenzentren ein, über die im Rahmen dieses Blogs weiter berichtet wird.

Weitere Informationen zum Thema Energieeffizienz in Rechenzentren: www.ne-rz.de

BAM – CMS Blog