Ansible -  Axel Miesen

Ansible (eBook)

Das Praxisbuch für Administratoren und DevOps-Teams

(Autor)

eBook Download: EPUB
2022 | 2. Auflage
442 Seiten
Rheinwerk Computing (Verlag)
978-3-8362-8908-5 (ISBN)
Systemvoraussetzungen
29,93 inkl. MwSt
  • Download sofort lieferbar
  • Zahlungsarten anzeigen

Wenn Sie auf Ihrer Serverfarm für Ordnung sorgen wollen, ist Ansible das Werkzeug der Wahl. Dieses Praxisbuch zeigt Ihnen, wie Sie das automatisierte Deployment Ihrer Dienste orchestrieren und so für standardisierte und dokumentierte Abläufe sorgen. Diese zentrale Konfiguration erleichtert Ihnen Betrieb und Skalierung, da Sie durch die konsequente Automatisierung Fehlerquellen reduzieren.

Aus dem Inhalt:

  • Basiseinrichtung und Inventory Management
  • Ad-hoc-Kommandos und Patterns
  • YAML: Die Konfigurations- und Serialisierungssprache
  • Playbooks, Tasks und Plays
  • Modularisierung mit Rollen und Includes
  • Die Modul-Bibliothek
  • Webinterfaces: Ansible AWX/Tower und mehr
  • Ansible und Docker
  • Callback Plugins
  • Beispielkonfigurationen und Best Practices


Die Fachpresse zur Vorauflage:
LINUX MAGAZIN: »Ein unverzichtbares Kompendium für alle, die sich in die Automatisierung mit Ansible einarbeiten wollen oder müssen.«



Axel Miesen ist zertifizierter Linux-Systemadministrator und Trainer. Seit 2001 hat er zahlreichen Schulungen zu Themen wie Linux-Shellscripting, Perl, Docker und Ansible durchgeführt.

1.4    Setup/Laborumgebung


Sie haben dieses Buch erworben, um sich mit Ansible vertraut zu machen.

Der bewährte Weg dazu ist Learning by Doing, d. h., Sie sollten die für Sie relevanten Beispiele und Vorgehensweisen in der Praxis nachvollziehen. Idealerweise steht Ihnen dazu eine Test- bzw. Laborumgebung zur Verfügung, deren Wunschausstattung ich nun beschreiben möchte.

Zunächst einmal benötigen Sie irgendeinen UNIX-artigen Host, auf dem die Ansible-Software installiert wird (den sogenannten Control Host oder auch die Control Machine). Jede gängige halbwegs aktuelle Linux-Distribution ist dazu geeignet, aber es ginge auch mit macOS, Solaris etc.

Eine native Windows-Version von Ansible gibt es nicht; mit Umwegen (z. B.

über Cygwin) kann man es aber durchaus auch auf Windows zum Laufen bringen.

Bitte sehen Sie jedoch an dieser Stelle unbedingt davon ab, da zu viele Tricks und Kniffe nötig wären.

Außerdem benötigen Sie noch mindestens einen zusätzlichen Host, der via Ansible administriert werden soll (einen sogenannten Target Host oder Managed Node). Am Anfang werden hier ebenfalls Linux-Systeme vorausgesetzt; sehr viel später werden wir sehen, dass man auch Windows-Systeme oder Netzwerk-Devices mit Ansible administrieren kann.

Die wichtigste Voraussetzung an dieser Stelle ist, dass der Control Host seine Target Hosts (im Falle von Linux) über SSH erreichen kann.

Nun kann ich natürlich nicht wissen, wie Ihre Arbeits- bzw. Testumgebung aussieht. Vielleicht ist Ihr Arbeitsplatzrechner seit Langem ein Linux-System und Sie haben bereits letzte Woche zehn vServer in der Cloud angemietet – womit Sie eigentlich direkt loslegen könnten. Möglicherweise ist aber auch nichts von alledem der Fall.

Die für dieses Buch vorgeschlagene hauptsächliche Testumgebung sehen Sie in Abbildung 1.1. Ich zeige Ihnen auch sogleich, wie Sie zu einer solchen Umgebung gelangen können, sofern Sie nicht in Eigenregie eine aufbauen möchten.

Abbildung 1.1     Unser Beispiel-Setup

Die Software Vagrant eignet sich hervorragend, um eine virtuelle Testumgebung bereitzustellen.

Das Produkt setzt lediglich eine übliche Virtualisierungslösung voraus (z. B. VirtualBox, VMware, HyperV) und kann dann mittels einer Beschreibungsdatei (dem Vagrantfile) eine definierte Menge von virtuellen Maschinen provisionieren. Ich gehe an dieser Stelle einmal von VirtualBox als Virtualisierer aus. Die benötigte Software bekommen Sie hier:

Listing 1.1 zeigt ein Vagrantfile, das Sie in irgendeinem neuen Verzeichnis ablegen:

# # Bitte gegebenenfalls anpassen: # NETWORK_PREFIX = "192.168.150" Vagrant.configure("2") do |config| config.vm.define "ansible" do |ansible| ansible.vm.box = "bento/debian-11" ansible.vm.hostname = "ansible" ansible.vm.network :private_network, ip: "#{NETWORK_PREFIX}.100" end config.vm.define "debian" do |debian| debian.vm.box = "bento/debian-11" debian.vm.hostname = "debian" debian.vm.network :private_network, ip: "#{NETWORK_PREFIX}.10" end config.vm.define "rocky" do |rocky| rocky.vm.box = "bento/rockylinux-8" rocky.vm.hostname = "rocky" rocky.vm.network :private_network, ip: "#{NETWORK_PREFIX}.20" end config.vm.define "suse" do |suse| suse.vm.box = "bento/opensuse-leap-15" suse.vm.hostname = "suse" suse.vm.network :private_network, ip: "#{NETWORK_PREFIX}.30" end config.vm.define "ubuntu" do |ubuntu| ubuntu.vm.box = "bento/ubuntu-20.04" ubuntu.vm.hostname = "ubuntu" ubuntu.vm.network :private_network, ip: "#{NETWORK_PREFIX}.40" end end

Listing 1.1     »Vagrantfile«: Provisionierung der Testumgebung

Diese Datei definiert die in Abbildung 1.1 gezeigten fünf Maschinen.

Allerdings müssen Sie für Ihre Umgebung vorher noch etwas erledigen:

  1. Legen Sie in der VirtualBox-Applikation ein neues Host-only-Netzwerk an.

    Das können Sie bequem mithilfe von DateiHost-only Netzwerk-Manager erledigen.

    Dort klicken Sie auf Erzeugen, merken sich dann die IPv4-Adresse oder passen sie gegebenenfalls nach Ihren eigenen Vorstellungen an.

    Im Buch nutze ich exemplarisch:

    IPv4-Adresse: 192.168.150.1 IPv4-Netzmaske: 255.255.255.0

    Wenn nichts dagegenspricht, wäre es durchaus sinnvoll, wenn Sie dieser Vorgabe folgen.

    Den VirtualBox-DHCP-Server für das neue Netzwerk belassen Sie bitte im deaktivierten Zustand. Falls Sie VirtualBox unter Linux betreiben: Per Default ist keine beliebige Wahl von Host-Only-Netzwerkadressen möglich.

    Sie müssen das als Root zunächst erlauben, indem Sie eine Datei /etc/vbox/networks.conf mit folgendem Inhalt erzeugen:

    * 0.0.0.0/0 ::/0

    Listing 1.2     »/etc/vbox/networks.conf«: Beliebige Netzwerke unter Linux erlauben

    Natürlich wären hier auch konkrete Werte konfigurierbar. Achten Sie auch darauf, dass keine unnötigen Leerzeilen in der Datei sind: Darauf haben nicht ganz aktuelle VirtualBox-Versionen auch schon allergisch reagiert.

  2. Gleichen Sie nun das NETWORK_PREFIX im Vagrantfile gegebenenfalls mit Ihrer VirtualBox-Konfiguration ab.

Die virtuellen Maschinen werden per Default mit 1 GByte RAM pro Stück provisioniert. In der Summe benötigt unser Setup also zunächst maximal 5 GByte RAM, real gemessen sicher aber etwas weniger. Wenn Ihr Hostsystem diese Größenordnung an Hauptspeicher nicht hergibt, müssten Sie den einen oder anderen Target Host einfach weglassen (was jedoch schade wäre, da spätere Beispiele mit all diesen Hosts arbeiten). Nach dieser Vorbereitung können Sie das ganze Szenario nun online bringen.

Wechseln Sie dazu in der Kommandozeilenumgebung in das Verzeichnis, in dem Sie das Vagrantfile abgelegt haben, und geben dort Folgendes ein:

$ vagrant up […]

Nach einiger Wartezeit sollten alle Maschinen laufen und sollten entsprechend ihrer konfigurierten IP-Adresse an-ping-bar sein:

$ ping 192.168.150.100 $ ping 192.168.150.10 $ ping 192.168.150.20 […]

Sie können sich nun beispielsweise am Control Host anmelden; falls Sie unter Windows arbeiten, können Sie gerne eine gewohnte Software wie PuTTY dazu verwenden. Username und Passwort sind jeweils »vagrant«.

Die Vagrant-Software bietet selbst auch einen bequemen Weg zur Anmeldung:

$ vagrant ssh ansible vagrant@ansible:~$ exit
Anmerkung

Der vagrant-Useraccount hat per Default uneingeschränkte sudo-Rechte. Wenn Sie also Root-Rechte benötigen, setzen Sie einfach sudo vor Ihr Kommando, oder Sie nehmen sich bei Bedarf eine dauerhafte Root-Shell mittels sudo -i.

Und bevor wir das Thema Vagrant wieder verlassen – Tabelle 1.1 zeigt noch eine Übersicht der allerwichtigsten Vagrant-Kommandos:

Befehl

Wirkung

vagrant global-status

Übersicht: Was läuft und was läuft nicht?

vagrant box list

bereits heruntergeladene Images auflisten

vagrant box update

heruntergeladene Images aktualisieren

vagrant up [<NAME>…]

Maschine(n) hochfahren

vagrant halt [<NAME>…]

Maschine(n) anhalten

vagrant reload [<NAME>…]

Maschine(n) neu starten

vagrant destroy [<NAME>…]

Maschine(n) wegwerfen

...

Erscheint lt. Verlag 5.5.2022
Sprache deutsch
Themenwelt Mathematik / Informatik Informatik Betriebssysteme / Server
Mathematik / Informatik Informatik Netzwerke
ISBN-10 3-8362-8908-3 / 3836289083
ISBN-13 978-3-8362-8908-5 / 9783836289085
Haben Sie eine Frage zum Produkt?
EPUBEPUB (Wasserzeichen)
Größe: 1,5 MB

DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasser­zeichen und ist damit für Sie persona­lisiert. Bei einer missbräuch­lichen Weiter­gabe des eBooks an Dritte ist eine Rück­ver­folgung an die Quelle möglich.

Dateiformat: EPUB (Electronic Publication)
EPUB ist ein offener Standard für eBooks und eignet sich besonders zur Darstellung von Belle­tristik und Sach­büchern. Der Fließ­text wird dynamisch an die Display- und Schrift­größe ange­passt. Auch für mobile Lese­geräte ist EPUB daher gut geeignet.

Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür die kostenlose Software Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür eine kostenlose App.
Geräteliste und zusätzliche Hinweise

Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.

Mehr entdecken
aus dem Bereich