GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Ansible Guide:Das Ad-hoc-Kommando

Der Ad-Hoc-Befehl ist der einzeilige Ansible-Befehl, der eine Aufgabe auf dem Zielhost ausführt. Es ermöglicht Ihnen, eine einfache einzeilige Aufgabe für einen oder eine Gruppe von Hosts auszuführen, die in der Inventardateikonfiguration definiert sind. Ein Ad-hoc-Befehl hat nur zwei Parameter, die Gruppe eines Hosts, der die Aufgabe ausführen soll, und das auszuführende Ansible-Modul.

Der Ad-Hoc-Befehl bietet Ihnen mehr Vorteile beim Erkunden von Ansible selbst. Sie können Aufgaben ausführen, ohne zuerst ein Playbook zu erstellen, z. B. Server neu starten, Dienste verwalten, die Leitungskonfiguration bearbeiten, eine Datei auf nur einen Host kopieren, nur ein Paket installieren.

In diesem Tutorial werde ich die grundlegende Verwendung des Ansible Ad-Hoc-Befehls zeigen. Ich werde den Ad-Hoc-Befehl verwenden, um einfache Aufgaben auszuführen, die Sie als Systemadministrator täglich benötigen.

Voraussetzungen

Für diesen Leitfaden verwenden wir zwei Ubuntu 18.04 LTS-Server, Bionic Beaver. Der Ansible-Server erhält den Hostnamen „ansible-node“ mit der IP-Adresse 10.5.5.20 und der Provision-Server den Hostnamen „provision“ und die IP-Adresse 10.5.5.21.

Was werden wir tun?

  1. Grundlegender Ad-hoc-Befehl
  2. Dateiübertragung
  3. Update und Upgrade
  4. Paket verwalten
  5. Dienste verwalten
  6. Überprüfe das System

Grundlegende Verwendung von Ad-hoc-Befehlen

Zunächst lernen wir die grundlegende Verwendung von Ansible Ad-Hoc zur Verwaltung von Servern kennen. Wir lernen den grundlegenden Ad-Hoc-Befehl von Ansible kennen, verwenden den Ad-Hoc-Befehl mit SSH-Passwortauthentifizierung, die Rechteausweitung und verwenden den Ad-Hoc-Befehl für eine Gruppe von Hosts.

1. Grundbefehl

Der grundlegende Befehl von ansible ad-hoc gegen „alle“ Hosts in der Inventardatei und die Verwendung des „ping“-Moduls.

ansible all -m ping
  • Der erste Parameter „all“ für alle Hosts in der Inventardatei.
  • Der zweite Parameter innerhalb der '-m'-Option für das Modul, das das Ping-Modul ausführt.

Jetzt erhalten Sie das Ergebnis wie unten.

Ein Ad-hoc-Befehl für den Bereitstellungsserver war „SUCCESS“, ohne dass Änderungen auf dem Server vorgenommen wurden, und wir erhalten das Ergebnis des „Ping“-Moduls vom Bereitstellungsserver „pong“.

2. Hostgruppe und Einzelhost filtern

Jetzt können Sie den Ad-Hoc-Befehl für eine Gruppe von Hosts verwenden, die bereits in der Bestandsdatei definiert sind. Sie können Ihre benutzerdefinierte Inventardatei oder die Standard-Inventardatei „/etc/ansible/hosts“ verwenden.

Unten sehen Sie ein Beispiel zum Ausführen des Ad-hoc-Befehls für die Gruppe von Hosts mit dem Namen „hakase-testing“, die bereits in der Standardkonfigurationsdatei für das Inventar definiert sind.

ansible hakase-testing -m setup -a "filter=ansible_distribution*"

Wenn Sie die benutzerdefinierte Inventardatei verwenden, fügen Sie die Option „-i“ nach dem Namen der Inventardatei hinzu.

ansible hakase-testing -i hosts -m setup -a "filter=ansible_distribution*"

Sie erhalten dasselbe Ergebnis.

Wenn Sie nun die Inventory-Konfiguration mit einem einzelnen Host ausführen möchten, können Sie den Namen des Hosts wie unten verwenden.

ansible provision -m setup -a "filter=ansible_distribution*"

Und der Ad-hoc-Befehl wird nur auf dem „Bereitstellungs“-Server ausgeführt.

3. Verwendung des SSH-Passworts

Jetzt führen wir einen Ad-Hoc-Befehl mit der aufgeforderten SSH-Passwortauthentifizierung aus. Und um dies zu tun, müssen Sie das zusätzliche Paket namens 'sshpass' auf dem 'ansible-node' installieren.

Installieren Sie das sshpass-Paket mit dem folgenden apt-Befehl.

sudo apt install sshpass -y

Führen Sie nun den Ad-hoc-Befehl aus und fügen Sie am Ende die Option „--ask-pass“ hinzu.

ansible hakase-testing -m ping --ask-pass

Und Sie werden nach dem 'SSH-Passwort' für den Server gefragt.

Geben Sie Ihr ssh-Passwort ein und der Ad-hoc-Befehl wird auf dem Server ausgeführt.

4. Rechteausweitung

Das Ansible bietet Funktionen für die Rechteausweitung gegenüber Servern. Wenn Sie den Ad-hoc-Befehl als Nicht-Root-Benutzer ausführen möchten, können Sie die Option „--become“ verwenden, um die Root-Rechte zu erhalten, und die Option „-K“, um das Passwort abzufragen.

Führen Sie den Ad-hoc-Befehl „fdisk -l“ als Benutzer „hakase“ mit der Berechtigungsoption „--become“ und „-K“ aus, um das „SUDO-Passwort“ abzufragen.

ansible hakase-testing -m shell -a 'fdisk -l' -u hakase --become -K

Unten ist das Ergebnis.

Dateiübertragung

Jetzt verwenden wir den Ad-Hoc-Befehl für die Dateiübertragung zum und vom Server. Wir können eine Datei mit dem Modul „Kopieren“ auf den Bereitstellungsserver übertragen und mit dem Modul „Fetch“ eine Datei vom Server herunterladen.

1. Datei auf Host hochladen

In diesem Beispiel führen wir den Ad-hoc-Befehl aus und verwenden das Modul „copy“, um die sudoers-Konfiguration für den Benutzer hakase in das Verzeichnis „/etc/sudoers.d“ in der Gruppe „hakase-testing“ hochzuladen.

Führen Sie den folgenden Ad-hoc-Befehl aus.

ansible hakase-testing -m copy -a 'src=/home/hakase/hakase-sudo.conf dest=/etc/sudoers.d/hakase owner=root mode=0644' -u hakase --become -K

Jetzt werden Sie nach dem 'SUDO-Passwort' für den hakase-Benutzer gefragt. Geben Sie das Passwort ein und Sie erhalten das Ergebnis wie unten.

Die Datei wurde in das Zielverzeichnis „dest“ hochgeladen, und Sie erhalten das Ergebnis „geändert“ als „true“.

2. Datei vom Host herunterladen

Jetzt werden wir einen Ad-hoc-Befehl mit dem „fetch“-Modul verwenden, um die Datei vom Bereitstellungsserver auf den lokalen „ansible-node“-Server herunterzuladen.

Laden Sie die Konfigurationsdatei „/etc/sudoers.d/hakase“ vom „Provision“-Server in das lokale Verzeichnis namens „backup“ herunter.

ansible provision -m fetch -a 'src=/etc/sudoers.d/hakase dest=/home/hakase/backup/hakase-sudoers flat=yes'

Und Sie erhalten die Datei namens „hakase-sudoers“ im Verzeichnis „backup“.

Schritt 3 – Repository aktualisieren und Pakete aktualisieren

Um das Repository von Ubuntu-Servern zu aktualisieren und zu aktualisieren, können wir den Ad-hoc-Befehl mit dem apt-Modul verwenden.

Aktualisieren Sie das Repository in der Gruppe hakase-testing.

ansible hakase-testing -m apt -a 'update_cache=yes' --become

Aktualisieren Sie jetzt die Repositories und aktualisieren Sie alle Pakete mit der Option 'upgrade=dist' auf die neueste Version.

ansible hakase-testing -m apt -a 'upgrade=dist update_cache=yes' --become

Warten Sie, bis alle Pakete aktualisiert werden.

Pakete verwalten

Dies ist sehr nützlich, wenn Sie versuchen, Ihr eigenes Playbook zu erstellen und zu debuggen. Denn manchmal muss ein zusätzliches Paket auf dem System installiert werden. Dieser Ad-hoc-Befehl bietet Ihnen also eine einfache Möglichkeit, dieses Paket zu installieren, ohne sich bei jedem Server anzumelden.

1. Paket installieren

Installieren Sie ein einzelnes Paket mit dem Ad-hoc-Befehl mit dem apt-Modul wie unten beschrieben.

ansible hakase-testing -m apt -a 'name=nginx state=latest' --become

2. Paket entfernen

Entfernen Sie das Paket und löschen Sie alle Konfigurationen, die sich auf das Paket beziehen.

ansible hakase-testing -m apt -a 'name=nginx state=absent purge=yes' --become

3. Automatisch entfernen

Das folgende Beispiel entfernt das nginx-Paket und löscht alle konfigurationsbezogenen und entfernt dann alle nicht verwendeten Pakete auf dem System.

ansible hakase-testing -m apt -a 'name=nginx state=absent purge=yes autoremove=yes' --become

Dienste verwalten

In diesem Schritt verwenden wir das Dienstmodul des Ad-hoc-Befehls zum Verwalten des Systemdienstes auf dem Bereitstellungsserver.

1. Dienste starten

Starten Sie den nginx-Dienst und fügen Sie ihn der Startzeit hinzu.

ansible hakase-testing -m service -a 'name=nginx state=started enabled=yes' --become

Sie erhalten das Ergebnis „geändert“ und „aktiviert“ als „wahr“.

2. Dienst neu starten

Wenn Sie den Dienst neu starten möchten, können Sie den folgenden Befehl verwenden.

ansible hakase-testing -m service -a 'name=nginx state=restarted' --become

Der nginx-Dienst wurde neu gestartet.

3. Stoppen Sie einen Dienst

Um den Dienst zu stoppen, ändern Sie den 'state'-Wert in 'stopped'.

ansible hakase-testing -m service -a 'name=nginx state=stopped' --become

Der nginx-Dienst auf den Servern „hakase-testing“ wurde gestoppt.

Überprüfen des Systems

Jetzt verwenden wir das Modul „shell“ innerhalb des Ad-hoc-Befehls. Und wir werden eine einfache Systemüberwachung mit einem einfachen Linux-Befehl über Ansible Ad-hoc durchführen.

Installieren Sie zuerst das 'sysstat'-Paket auf allen Servern mit dem folgenden Ad-hoc-Befehl.

ansible hakase-testing -m apt -a 'name=sysstat state=latest' --become

Warten Sie auf die Installation des 'sysstat'-Pakets.

Sobald dies abgeschlossen ist, können Sie alle Server überprüfen.

1. Datenträger verfügbar

Überprüfen Sie die auf der Root-Partition verfügbare Festplatte mit dem Befehl fdisk.

ansible hakase-testing -m shell -a 'df -h /dev/sda2' --become

Ändern Sie '/dev/sda2' mit Ihrem eigenen Pfad.

2. RAM-Speichernutzung

Überprüfen Sie nun die RAM-Speichernutzung auf allen Servern mit dem Befehl 'free -m'.

ansible hakase-testing -m shell -a 'free -m' --become

Und Ihnen wird das Ergebnis wie folgt angezeigt.

3. CPU-Auslastung

Überprüfen der CPU-Auslastung aller Server mit dem Befehl mpstat.

ansible hakase-testing -m shell -a 'mpstat -P ALL' --become

Der Befehl mpstat ist Teil des 'sysstat'-Pakets.

4. Ports öffnen

Überprüfen der offenen Ports auf allen Systemen mit netstat über den Ad-hoc-Befehl.

ansible hakase-testing -m shell -a 'netstat -plntu' --become

5. Betriebszeit

Überprüfen Sie nun die Betriebszeit jedes Servers.

ansible hakase-testing -m shell -a 'uptime' --become

Linux
  1. Eine Anleitung zum Linux-Terminal für Anfänger

  2. Einführung in den Alternativen-Befehl in Linux

  3. Eine Einführung in den diff-Befehl

  4. Wie verwende ich den basename-Befehl?

  5. Der Befehl locate unter Linux

Meistern Sie die Linux-Befehlszeile

Eine Anleitung für Anfänger zum Navigieren im Linux-Dateisystem

Der Choose-Befehl unter Linux

Der Timer-Befehl in Linux

Ein praktischer Leitfaden für den Chroot-Befehl unter Linux

Der apt-Befehl – ​​Ein praktischer Gebrauchsleitfaden