So konfigurieren Sie Ansible Managed Knoten und führen Sie Ad -hoc -Befehle aus - Teil 3
- 3087
- 575
- Tom Jakobs
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-PASSAnsible 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 = tecmintAnsible 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:
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 -WebserverAnsible 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 YumAnsible 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 httpdBestä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 httpdBestä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 -kAnsible -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 -kAnsible 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 SetupAnsible 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.
- « So installieren und verwenden Sie MS SQL Server unter Linux
- So installieren Sie die Cockpit -Webkonsole in RHEL 8 »