So konfigurieren Sie Ansible Managed Knoten und führen Sie Ad -hoc -Befehle aus - Teil 3

So konfigurieren Sie Ansible Managed Knoten und führen Sie Ad -hoc -Befehle aus - Teil 3

In den beiden vorherigen Artikeln dieser Ansible -Serie haben wir Kernkomponenten des Ansible und der Einrichtung des Ansible Control Knotens erklärt. In diesem Teil 3 zeigen wir, wie Sie ansible verwaltete Knoten konfigurieren können, um Ad-hoc-Befehle auf Remote-Hosts auszuführen.

Setup Passwortlose SSH -Authentifizierung an ansible verwalteten Knoten einrichten

Als Rückblick auf unser letztes Thema erfordert das Verwalten von Remote -Hosts mit Ansible die Einrichtung einer passwortlosen SSH -Authentifizierung zwischen dem Ansible -Steuerknoten und den verwalteten Hosts. Dies beinhaltet die Erzeugung eines Schlüsselpaar. Dies ist ein entscheidender Schritt in Zukunft und erleichtert Ihre Arbeit viel einfacher.

Konfigurieren Sie die Eskalation von Privilegien auf verwalteten Knoten

Wenn Sie sich als regulärer Benutzer angemeldet haben. Zu diesen Aufgaben gehören die Packungsverwaltung, das Hinzufügen neuer Benutzer und Gruppen und die Änderung von Systemkonfigurationen, um nur einige zu erwähnen, nur einige. Um dies zu erreichen, müssen Sie bestimmte Richtlinien im Spielbuch aufrufen, um die Aufgaben als privilegierter Benutzer auf den Remote -Hosts auszuführen.

werden

Ansible ermöglicht es Ihnen 'werden' Ein anderer Benutzer auf dem verwalteten Knoten unterscheidet sich von dem, in dem derzeit angemeldet ist. Der Werde: Ja Die Richtlinie erhöht Ihre Berechtigungen und ermöglicht es Ihnen, Aufgaben auszuführen, die Root -Berechtigungen erfordern, z. B. das Installieren und Aktualisieren von Paketen und das Neustart des Systems.

Betrachten Sie ein Spielbuch httpd.YML Dadurch werden Apache -Webserver wie gezeigt installiert und gestartet:

--- - Name: Installieren und Starten von Apache -Webserver Hosts: Webservers -Aufgaben: - Name: Installieren Sie httpd yum: name = httpd state = Werde: Ja - Name: Überprüfen Sie den HTTPD -Statusdienst: name = httpd Status = Start 

Der Werde: Ja Mit der Richtlinie können Sie Befehle als Root -Benutzer auf dem Remote -Host ausführen.

werden_user

Eine andere Anweisung, mit der Sie ein anderer Benutzer werden können, ist die werden_user. Auf diese Weise können Sie beim Anmelden zu einem Sudo -Benutzer auf dem Remote -Host wechseln und nicht auf den Benutzer, an dem Sie sich anmelden.

Zum Beispiel einen Befehl als ausführen als Tecmint Benutzer in der Fernbedienung verwenden die Anweisung wie gezeigt.

- Name: Führen Sie einen Befehl als Apache -Benutzerbefehl aus: Somecommand werden: Ja werden_user: tecmint 

werden_method

Diese Anweisung überschreibt die in der festgelegte Standardmethode in Ansible.CFG Datei, die normalerweise auf sudo eingestellt ist.

werden_flags

Diese werden beispielsweise auf Spiel- oder Aufgabenebene verwendet, wenn Sie bei einem Benutzer wechseln müssen, wenn die Shell auf Nologin eingestellt ist.

Zum Beispiel,

- Name: Führen Sie einen Befehl aus als Befehl niemanden aus: Somecommand werden: true '-s /bin /sh' 

Befehlszeilenoptionen in der Eskalation in Privilegien

Schauen wir uns einige der Befehlszeilenoptionen an, mit denen Sie Ihre Berechtigungen beim Ausführen von Befehlen erhöhen können:

  • --Ask-BECOME-PASS, -K - Dies fordert Sie für das Kennwort des Sudo -Benutzers auf dem Remote -System auf, das Sie herstellen möchten.
$ Ansible-Playbook MyPlaybook.YML-Task-BECOME-PASS 
Ansible wird Pass
  • --werden, -B - Auf diese Weise können Sie die Aufgabe als Stammbenutzer ausführen, ohne ein Kennwort zu fordern.
$ Ansible-Playbook MyPlaybook.YML - -"-Become 
  • --user user = werden_user - Sie können Aufgaben als einen anderen Benutzer ausführen.
$ Ansible-Playbook MyPlaybook.yml--become-user = tecmint 
Ansible werden Benutzer

Validieren Sie eine Arbeitskonfiguration mit Ad-hoc-Ansible-Befehlen

Manchmal möchten Sie möglicherweise schnelle und einfache Aufgaben auf Remote -Hosts oder Servern in Ansible ausführen, ohne unbedingt ein Spielbuch erstellen zu müssen. In diesem Fall müssen Sie eine ausführen ad hoc Befehl.

Was ist ein Adhoc -Befehl?

Ein Ansible Ad-hoc-Befehl ist ein One-Line. Zu diesen Aufgaben gehören das Kopieren von Dateien zwischen Hosts, das Neustart von Servern, das Hinzufügen und Entfernen von Benutzern und das Installieren eines einzelnen Pakets.

In diesem Tutorial untersuchen wir verschiedene Anwendungen von Ansible Ad-hoc-Befehlen. Wir werden die benutzen Inventardatei unten für eine Demonstration.

[Webserver] 173.82.115.165 [Database_Servers] 173.82.202.239 

Grundlegende Verwendung von Adhoc -Befehlen

Die grundlegendste Verwendung von Ansible-Adhoc-Befehlen besteht darin, einen Host oder eine Gruppe von Hosts zu pingen.

# Ansible -m Ping alle 

Im obigen Befehl die -M Parameter ist die Moduloption. Ping ist der Adhoc -Befehl und der zweite Parameter repräsentiert alle alle Hosts in der Inventardatei. Die Ausgabe des Befehls ist unten angezeigt:

Ansible Ping Alle Gastgeber

Zu Ping, einer bestimmten Gruppe von Hosts, ersetzen 'alle' Parameter mit dem Gruppennamen. Im folgenden Beispiel testen wir die Konnektivität mit Hosts unter der Webservers -Gruppe.

# Ansible -m Ping -Webserver 
Ansible Ping -Gruppe von Gastgebern

Zusätzlich können Sie die verwenden -A Attribut zum Angeben regulärer Linux -Befehle in doppelten Anführungszeichen. Zum Beispiel zum Überprüfen der System -Betriebszeit von Remote -Systemen: Ausführen:

# ANSIBLE -A "UPTIME" 
Ansible Check -Betriebszeit des Remote -Hosts

Überprüfen Sie die Festplattennutzung von Remote -Hosts laufen.

# ANSIBLE -A "DF -TH" 
Ansible Check Disk Nutzung von Remote -Hosts

Es gibt Hunderte von Modulen, die Sie mit dem Adhoc -Befehl verwenden können. Führen Sie den folgenden Befehl unten aus, um die gesamte Liste der Module mit ihren Beschreibungen anzuzeigen.

# Ansible -doc -l 

Führen Sie den Befehl aus, um detaillierte Informationen zu einem bestimmten Modul anzuzeigen.

# Ansible-doc module_name 

Zum Beispiel, um nach weiteren Details zum Thema zu suchen Yum -Modul laufen:

# Ansible-Doc Yum 
Ansible Check yum Modul

Verwalten von Paketen / Diensten mit Ansible

Ansible Adhoc -Befehle können für die Installation und Entfernung von Paketen verwendet werden Yum Und geeignet Paketmanager.

So installieren Sie den Apache -Webserver auf der Centos 7 Hosting unter Webservers Group in der Inventardatei Führen Sie den Befehl aus:

# Ansible Webservers -m yum -a "name = httpd state = präsent" 
ANSIBLE APache auf Remote -Hosts installieren

Um die Installation des Apache -Webservers zu überprüfen, melden Sie sich beim Remote -Client an und führen Sie aus.

# RPM -qa | grep httpd 
Bestätigen Sie die Apache -Installation

Um Apache zu deinstallieren, ändern Sie einfach den Status von gegenwärtig Zu abwesend.

# Ansible Webservers -m yum -a "name = httpd state = abwesend" 
Ansible Apache entfernen

Erneut, um die Entfernung des HTTPD -Laufs zu bestätigen.

# RPM -qa | grep httpd 
Bestätigen Sie die Entfernung von Apache

Wie festgestellt, wurden Apache -Webserverpakete gespült.

Erstellen von Benutzern und Gruppen mit Ansible

Beim Erstellen von Benutzern die 'Benutzer'Modul ist nützlich. So erstellen Sie einen neuen Benutzer James mit Passwort roter Hut Geben Sie im Client System Database_Server den Befehl aus.

# Ansible Database_Server -m Benutzer -a "name = james password = redhat" 
Ansible erstellen Benutzer auf Remote -Hosts

Führen Sie den Befehl aus, um die Erstellung des neuen Benutzers zu bestätigen:

# Ansible Database_Servers -a "ID James" 
Ansible bestätigen die Erstellung von Benutzern

Um den Benutzer zu entfernen, führen Sie den Befehl aus:

# Ansible Database_Servers -m Benutzer -a "name = james state = abwesend" 
Ansible Benutzer entfernen

Privilegienkalation

Wenn Sie als regulärer Benutzer Ansible ausführen, bietet Ansible die Berechtigungskalation in Fernosthosts mithilfe des --werden Option zum Erwerb von Root -Privilegien und -k um das Passwort fordern.

Zum Beispiel zum Ausführen des Ansible Adhoc -Befehls 'netstat -pnltu'Mit der privilegierten Option --werden und Option -K Um das Passwort des Root -Benutzers aufzurufen, um den Befehl auszuführen.

$ ansible webserver -m Shell -a 'netstat -pnltu' - -become -k 
Ansible -Privileg eskalation

Verwenden Sie die andere Benutzer als ein anderer Benutzer als Root --Benutzer werden Attribut.

Zum Beispiel zum Ausführen 'df -th' als Tecmint Benutzer auf den Remote -Hosts und fordern Sie den Kennwort aus:

$ ansible All -m Shell -a 'df -th' - -become -user tecmint -k 
Ansible wird ein weiterer Benutzer

Fakten über Wirtssysteme sammeln

Fakten Siehe detaillierte Informationen zu einem System. Dies umfasst Informationen zu IP -Adresse, Systemarchitektur, Speicher und CPU, um einige zu erwähnen.

Um Informationen zu Remote -Hosts abzurufen, führen Sie den Befehl aus:

$ Ansible All -m Setup 
Ansible sammeln Systemfakten

Dateiübertragung / Kopieren von Dateien

Ansible verwendet das Modul Kopieren So kopieren Sie Dateien aus dem Ansible -Steuerelement sicher zu mehreren Remote -Hosts.

Unten finden Sie ein Beispiel für eine Kopieroperation:

# Ansible Webservers -m Copy -a "src =/var/log/Secure dest =/tmp/" 
Ansible -Dateien zum Remote -Host kopieren

Der Befehl kopiert die /var/log/sicher Datei im Ansible Control Node zu Remote -Hosts in der Webservers -Gruppe in der /tmp Ziel.

Du kannst den ... benutzen Dateimodul Berechtigungen ändern und Eigentümer einreichen.

# Ansible Webservers -m Datei -a "dest =/tmp/sichere Modus = 600" 
Ansible ändern Dateiberechtigungen

Darüber hinaus können Sie die Argumente für Eigentümer und Gruppen wie gezeigt anhängen:

# Ansible Webservers -m Datei -a "dest =/tmp/sichere Modus = 600 Eigentümer = Tecmint Group = Tecmint" 
Ansible Append -Benutzer- und Gruppenattribute

Sie können auch Verzeichnisse auf ähnliche Weise erstellen wie Mkdir -p wie gezeigt.

$ ansible Webservers -m -Datei -a "dest =/path/to/verzeichnis modus = 755 Eigentümer = Tecmint Group = Tecmint Status = Verzeichnis" 

Zum Beispiel,

$ ansible Webservers -m Datei -a "dest =/home/tecmint/data modus = 755 Eigentümer = Tecmint Group = Tecmint State = Verzeichnis" 
Ansible erstellen ein Verzeichnis
Abschluss

In diesem Artikel beleuchten wir, wie Sie verwaltete Knoten so konfigurieren können, dass Sie Ansible Ad-hoc-Befehle ausführen, um Remote-Hosts zu verwalten. Wir hoffen, Sie fanden es nützlich. Schießen Sie es aus und lassen Sie uns wissen, wie es verlief.