Ansible -Befehlsmodul

Ansible -Befehlsmodul
In bestimmten Fällen ist dies erforderlich, um nur Anweisungen auf den Ziel -Remote -Hosts auszuführen, ähnlich wie bei einer Eingabeaufforderung in Windows, wie Sie es tun würden. Das Ansible -Befehlsmodul ist in diesem Szenario nützlich. Sie werden das Ansible -Befehlsmodul in diesem Artikel verstehen, einschließlich der Funktionsweise und wie Sie es verwenden können, um Anweisungen an verwaltete Remote -Hosts zu liefern.

Wenn wir in Ansible einige Befehle ausstellen möchten, um Änderungen vorzunehmen oder etwas auf dem Ziel -Remote -Host zu aktualisieren, verwenden wir das Befehlsmodul. Das Ansible AD-hoc-Modul ist das Standardmodul, wenn wir das "Befehl" -Modul im Ansible-Tool verwenden. Die einzigen ausführbaren Funktionen, die das Befehlsmodul ausführen kann. Das Hauptziel des Befehlsmoduls in ANSIBLE ist es, das lokale Terminal zu umgehen.

Es gibt einige Einschränkungen in Ansible, beispielsweise sind Variablen wie $ hostname oder $ home nicht zugänglich und Operationen wie „&“ und “<" etc are not functional in the command module. Any other Ansible module can be used if you wish to utilize these parameters. The command module in Ansible is unaffected by the remote host environment, which is why its outcomes are regarded as being more dependable and secure. On the target remote hosts or servers, that are specified as independent servers or hosting groups, the Command module is largely used to carry out standard Ubuntu instructions.

Voraussetzungen für die Verwendung des Befehlsmoduls in Ansible

Dieses Tutorial enthält praktische Demonstrationen von Ansible. Um das Ansible -Befehlsmodul zu verwenden, gehen wir davon aus, dass Sie die unten stehenden Anforderungen aufgeführt haben:

  • Wir benötigen zunächst eine ansible-bezogene Software in Ihrem System, damit wir das Ansible-Tool verwenden können, bevor wir das Befehlsmodul implementieren können. Wir verwenden Ansible 2.12 oder eine spätere Version für das Tutorial.
  • Infolgedessen benötigen wir einen Ansible -Controller, um die Befehle auf Remote -Hosts und den Remote -Hosts auszuführen, auf die wir uns für Implementierungen konzentrieren möchten.

Lassen Sie uns das Befehlsmodulprämisse genauer untersuchen und untersuchen, wie Ansible dies implementiert, indem wir mehrere Szenarien in die Praxis umsetzen.

Beispiel 01: Überprüfen Sie die Laufzeit eines Ziel -Remote -Hosts mit dem Befehlsmodul von Ansible

Jeder potenzielle ansible professionelle oder leistungsfähige Operator, wie ein Ansible Controller, muss über ein festes Wissen über einige Befehle verfügen, die im Tool ansible Konfiguration enthalten sind. Wir werden einen der wichtigsten Befehle des Befehlsmoduls verwenden, nämlich der Befehl „Uptime“ in Ansible. Der Befehlsinstrument zeigt die vorliegende Zeit, die Anzahl der aktiven Hosts, die typische Serverlast über die vorherigen 1, 5 und 15 Minuten sowie die Zeit, die Ihr Gerät funktioniert hat. Befolgen Sie die von Ihnen angegebenen Auswahl.

Lassen Sie uns zunächst das Playbook erstellen, in dem wir den Befehl zur Verfügung der Uptime schreiben, um die Verfügbarkeit des Remote -Hosts zu überprüfen. Der Befehl, mit dem wir das Spielbuch im Ansible -Tool erstellen werden, lautet wie folgt:

[root@master ansible]# nano command_module.YML

Nach dem Schreiben des obigen Befehls die command_module.Das YML -Playbook wird erstellt und in einen neuen Editor über den Namen des Playbooks, das "command_module" ist, erstellt und gestartet. In diesem Editor stellen wir zunächst die Remote -Hosts zur Verfügung, auf die wir abzielen möchten. Hier haben wir uns auf "alle" auf die Remote -Hosts abgefunden. Um die Informationen zu den gezielten Remote -Hosts zu erhalten, werden wir Ansible „Sammeln von Fakten“ verwenden, Modul. Die gesammelten Daten werden in der Regel als „Fakten“ oder „Variablen“ im Ansible -Tool bezeichnet.

Im Ansible -Tool können wir die Daten von Remote -Hosts einzeln sammeln, indem wir den spezifischen Befehl verwenden, der "Setup" ist, das heißt, "Setup" ist, dass es sich um "Setup" handelt. In Wirklichkeit wird die Variable für sammelige Fakten jedoch durchgeführt, indem dieses Setup -Modul standardmäßig in ansiblen Playbooks aufgerufen wird. Um die Daten zu sammeln, werden wir den "wahren" oder "falschen" Wert bestehen. Wie gezeigt haben wir „falsch“ bestanden, weil wir die Informationen des Zielhosts nicht erhalten möchten.

Als Nächst. Wir werden zunächst die Aufgabe benennen. Anschließend haben wir den Parameter "Register" verwendet, damit wir die Ausgabe in diesem Ansible -Parameter verfolgen und speichern können. Jetzt werden wir den Befehl übergeben, den wir ausführen möchten, der "Verfügbarkeit" ist. Dann haben wir den Befehl „Debug“ verwendet, um die Ausgabe der Variablen zu drucken.

- Gastgeber:
- alle
sammeln_facts: false
Aufgaben:
- Name: Führen Sie den Befehl Uptime über das Befehlsmodul aus
Register: UPtimeOutput
Befehl: "Verfügungszeit"
- debuggen:
var: UptimeOutput.stdout_lines

Durch das Aufschlagen von Strg+X wird der Playbook -Editor beendet. Jetzt erstellen wir die Bestandsdatei, die die Details zum Ziel -Remote -Host enthält. Der Befehl, den wir verwenden, um die Inventardatei in Ansible zu erstellen, wird unten erwähnt:

[Root@Master Ansible]# Nano Host.YML

Ein anderer Editor namens "Host" wird mit der Bestandsdatei eröffnet. Da im Spielbuch „alle“ Hosts erwähnt wurden, werden wir jetzt jeden Host einzeln durchgehen. Wir verwenden nur einen Host in der Bestandsdatei, den wir als „Host1“ bezeichnen werden, und wir werden dort seine Details angeben. Wir werden zunächst die IP -Adresse, dann die Identität des Hosts, die Anmeldeinform des Ansible -Tools, den Namen der Verbindung zwischen dem Controller und dem Host und schließlich der Portnummer angeben.

Alle:
Gastgeber:
Host1:
Ansible_Host: 192.168.3.229
ansible_user: Ansible
ansible_password: *******
Ansible_Connection: SSH
Ansible_port: 22

Wir werden nun das Playbook und die Inventardatei starten, die beide erstellt wurden, nachdem sie durch den unten aufgeführten Befehl geschrieben wurden:

[Root@Master Ansible]# Ansible-Playbook command_module.YML -ich Host.YML

Hier ist die Ausgabe, nachdem wir die Informationen von Host1 erfolgreich haben, wo wir Informationen haben. Wir haben die Zeit, Tage, die Daten der Benutzer und den Lastdurchschnitt des Host1.

Beispiel 02: Verwenden Sie den Befehl uname, um den Hostnamen und die Version des Remote -Hosts zu erhalten

Hier ist das zweite Beispiel für ein Befehlsmodul in Ansible, in dem wir den Befehl „Uname“ verwenden werden. Wir verwenden "Uname", um die Informationen des Remote -Hosts von Ansible zu erhalten, wie wir den Namen des Remote -Hosts und die Version des Ansible -Tools erhalten möchten. Zunächst werden wir das kürzlich erstellte Playbook, das Command_Module ist, eingeben.YML und modifizieren Sie dann die Aufgaben und Befehle. So öffnen Sie die command_module.YML Playbook, wir werden den Befehl „Nano“ verwenden:

[root@master ansible]# nano command_module.YML

Im Spielbuch haben wir die Aufgaben geändert, die unten im Code -Snippet gezeigt wurden. Wie in der Befehlsvariablen gezeigt, haben wir zusammen mit der Option "-A" den Befehl "uname" übergeben, damit wir die Informationen aller Hosts erhalten können.

- Gastgeber:
- alle
sammeln_facts: false
Aufgaben:
- Name: Ausführung der Uname -Anweisung
Register: Unameout
Befehl: "Uname -a"
- debuggen:
var: unameout.stdout_lines

Wir werden die Änderungen speichern und das Spielbuch schließen. Jetzt werden wir das Spielbuch ausführen, um die Ausgabe des Befehls „Uname“ zu erhalten und zu sehen, was wir bekommen. Zur Ausführung des Spielbuchs finden Sie den Befehl, den wir verwenden werden:

[Root@Master Ansible]# Ansible-Playbook command_module.YML -ich Host.YML

Das Ergebnis der erfolgreichen Durchführung des oben genannten Befehls ist unten gezeigt. Der Hostname und die Version sind in grüner Schriftart gezeigt.

Abschluss

Wir haben einen der Module von Ansible gelernt, das das Befehlsmodul ist. Wir haben besprochen, wie es in Ansible funktioniert. Darüber hinaus haben wir die beiden grundlegenden Szenarien des Befehlsmoduls gelernt, indem wir die Beispiele implementieren.