Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung |
linux:ansible:playbook_example_12 [01.12.2023 17:53. ] – [Ansible Stdout Compact Logger] django | linux:ansible:playbook_example_12 [17.03.2024 15:00. ] (aktuell) – django |
---|
====== Ansible cowsay: Die sprechende Kuh, oder auch mehr Getier oder doch nur puristisch mit dem Stdout Compact Logger? ====== | {{htmlmetatags>metatag-robots=() |
| metatag-keywords=(Ansible,Arch Linux,Ansible Stdout Compact Logger,logging ansible output,ansible log output) |
| metatag-description=(Ansible cowsay: Die sprechende Kuh, oder auch mehr Getier oder doch nur puristisch mit dem Ansible Stdout Compact Logger?) |
| }} |
| ====== Ansible cowsay: Die sprechende Kuh, oder auch mehr Getier oder doch nur puristisch mit dem Ansible Stdout Compact Logger? ====== |
{{:centos:ansible:ansible_logo.png?nolink&125|Bild: Ansible Logo}} \\ \\ | {{:centos:ansible:ansible_logo.png?nolink&125|Bild: Ansible Logo}} \\ \\ |
===== cowsay ===== | ===== cowsay ===== |
Dass Admins zuweilen einen besonderen Humor haben und sich an doch sonderlichen Dingen erfreuen können, hat auch beim Thema Ansible seinen Platz gefunden: **cowsay**, die sprechende Kuh. | Dass Admins zuweilen einen besonderen Humor haben und sich an doch sonderlichen Dingen erfreuen können, hat auch beim Thema Ansible seinen Platz gefunden: **cowsay**, die sprechende Kuh. |
| |
Der ein oder andere wird sich nun vielleicht fragen: //Was? Noch nie davon gehört noch nie gesehen.// | Der ein oder andere wird sich nun vielleicht fragen: //**Was? Noch nie davon gehört, noch nie gesehen!**// |
| |
Nun, die Ausgabe bei einem Ansible-Playbook lauf kennen wir ja nun schon zu genüge, die Ausgabe hier ist altbekannt: | Nun, die Ausgabe bei einem Ansible-Playbook lauf kennen wir ja nun schon zu genüge, die Ausgabe hier ist altbekannt: |
| |
==== Ausgabe ==== | ==== Ausgabe ==== |
Rufen wir nun ein doch etwas umfangreicheres Playbook auf, haben wir nun eine kompakte Zusammenfassung aller relevanten Vorgänge und kein doch eher aufgeblähtes Ausgabe mit vielen **''%%***%%''** und **Leer**-Zeilen. | Rufen wir nun ein doch etwas umfangreicheres Playbook auf, haben wir nun eine kompakte Zusammenfassung aller relevanten Vorgänge und kein doch eher aufgeblähtes Ausgabe mit vielen **%%***%%**- und **Leer**-Zeilen. |
<html><pre class="code"> | <html><pre class="code"> |
<font style="color: rgb(25, 100, 5)">✔ </font><font style="color: rgb(196, 160, 0)">~/ansible </font><font style="color: rgb(0, 0, 0)">[</font><font style="color: rgb(116, 80, 123)">main</font><font style="color: rgb(25, 100, 5)">✔</font><font style="color: rgb(0, 0, 0)">] | <font style="color: rgb(25, 100, 5)">✔ </font><font style="color: rgb(196, 160, 0)">~/ansible </font><font style="color: rgb(0, 0, 0)">[</font><font style="color: rgb(116, 80, 123)">main</font><font style="color: rgb(25, 100, 5)">✔</font><font style="color: rgb(0, 0, 0)">] |
<html><pre class="code"> | <html><pre class="code"> |
<font style="color: rgb(0, 0, 0)">[18:23:34] ↳ arch_iso: Keyring orgdnungsgemäß initialisieren.</font> | <font style="color: rgb(0, 0, 0)">[18:23:34] ↳ arch_iso: Keyring orgdnungsgemäß initialisieren.</font> |
<font style="color: rgb(25, 100, 5)">↳ localhost | SUCCESS | 1.73s</font> | <font style="color: rgb(25, 100, 5)">↳ vml000202 | SUCCESS | 1.12s</font> |
<font style="color: rgb(0, 0, 0)">[18:23:35] ↳ arch_iso: Default Schlüssel neu laden.</font> | <font style="color: rgb(0, 0, 0)">[18:23:35] ↳ arch_iso: Default Schlüssel neu laden.</font> |
<font style="color: rgb(25, 100, 5)">↳ localhost | SUCCESS | 6ms</font> | <font style="color: rgb(25, 100, 5)">↳ vml000202 | SUCCESS | 4.44s</font> |
<font style="color: rgb(0, 0, 0)">[18:23:39] ↳ arch_iso: System aktualisieren.</font> | <font style="color: rgb(0, 0, 0)">[18:23:39] ↳ arch_iso: System aktualisieren.</font> |
<font style="color: rgb(196, 160, 0)">↳ localhost | CHANGED | 1.64s</font> | <font style="color: rgb(25, 100, 5)">↳ vml000202 | SUCCESS | 1.38s</font> |
<font style="color: rgb(0, 0, 0)">[18:23:41] ↳ arch_iso: ggf. vorhandene Altlasten beseitigen.</font> | <font style="color: rgb(0, 0, 0)">[18:23:41] ↳ arch_iso: ggf. vorhandene Altlasten beseitigen.</font> |
<font style="color: rgb(25, 100, 5)">↳ localhost | SUCCESS | 5ms</font> | <font style="color: rgb(196, 160, 0)">↳ vml000202 | CHANGED | 6.09s</font> |
<font style="color: rgb(0, 0, 0)">[18:23:47] ↳ arch_iso: Installation des Paketes archiso.</font> | <font style="color: rgb(0, 0, 0)">[18:23:47] ↳ arch_iso: Installation des Paketes archiso.</font> |
<font style="color: rgb(25, 100, 5)">↳ localhost | SUCCESS | 521ms</font> | <font style="color: rgb(25, 100, 5)">↳ vml000202 | SUCCESS | 2.24s</font> |
<font style="color: rgb(0, 0, 0)">[18:23:49] ↳ arch_iso: Verzeichnis releng kopieren.</font> | <font style="color: rgb(0, 0, 0)">[18:23:49] ↳ arch_iso: Verzeichnis releng kopieren.</font> |
| <font style="color: rgb(25, 100, 5)">↳ vml000202 | SUCCESS | 497ms</font> |
| <font style="color: rgb(0, 0, 0)">[18:23:50] ↳ arch_iso: Verzeichnis für den systemd autostart des sshd anlegen.</font> |
| <font style="color: rgb(25, 100, 5)">↳ vml000202 | SUCCESS | 484ms</font> |
| <font style="color: rgb(0, 0, 0)">[18:23:50] ↳ arch_iso: symbolic-link für den Autostart des SSHD setzen.</font> |
| <font style="color: rgb(25, 100, 5)">↳ vml000202 | SUCCESS | 500ms</font> |
| <font style="color: rgb(0, 0, 0)">[18:23:51] ↳ arch_iso: Tage berechnen die seit dem 01.01.1970 vergangen sind.</font> |
| <font style="color: rgb(25, 100, 5)">↳ vml000202 | SUCCESS | 523ms</font> |
| <font style="color: rgb(0, 0, 0)">[18:23:51] ↳ arch_iso: Ergebnis in einer Variable zur weiteren Bearbeitung vorhalten.</font> |
| <font style="color: rgb(25, 100, 5)">↳ vml000202 | SUCCESS | 31ms</font> |
| <font style="color: rgb(0, 0, 0)">[18:23:51] ↳ arch_iso: Root-Passwort in der /etc/shadow Datei ablegen.</font> |
| <font style="color: rgb(196, 160, 0)">↳ vml000202 | CHANGED | 1.10s</font> |
| <font style="color: rgb(0, 0, 0)">[18:23:52] ↳ arch_iso: Verzeichnis für den ssh-key beim User Root anlegen.</font> |
| <font style="color: rgb(196, 160, 0)">↳ vml000202 | CHANGED | 537ms</font> |
| <font style="color: rgb(0, 0, 0)">[18:23:53] ↳ arch_iso: SSH-Key für den Zugriff für root hinterlegen.</font> |
| <font style="color: rgb(196, 160, 0)">↳ vml000202 | CHANGED | 917ms</font> |
| <font style="color: rgb(0, 0, 0)">[18:23:54] ↳ arch_iso: Autologin des Users root deaktivieren.</font> |
| <font style="color: rgb(25, 100, 5">↳ vml000202 | SUCCESS | 518ms</font> |
| <font style="color: rgb(0, 0, 0)">[18:23:54] ↳ arch_iso: broadcom-wl aus der zu installierenden Pakete löschen.</font> |
| <font style="color: rgb(196, 160, 0)">↳ vml000202 | CHANGED | 576ms</font> |
| <font style="color: rgb(0, 0, 0)">[18:23:55] ↳ arch_iso: ISO erstellen.</font> |
| <font style="color: rgb(196, 160, 0)">↳ vml000202 | SUCCESS | 8m12s</font> |
| <font style="color: rgb(0, 0, 0)">[18:32:07] ↳ arch_iso: Installation des Paketes apache.</font> |
| <font style="color: rgb(25, 100, 5)">↳ vml000202 | SUCCESS | 2.13s</font> |
| <font style="color: rgb(0, 0, 0)">[18:32:09] ↳ arch_iso: http.conf anpassen.</font> |
| <font style="color: rgb(25, 100, 5)">↳ vml000202 | SUCCESS | 997ms</font> |
| <font style="color: rgb(0, 0, 0)">[18:32:10] ↳ arch_iso: Sicherstellen, dass der HTTP-Daemon startet.</font> |
| <font style="color: rgb(25, 100, 5)">↳ vml000202 | SUCCESS | 942ms</font> |
| <font style="color: rgb(0, 0, 0)">[18:32:11] ↳ arch_iso: Datum ermitteln.</font> |
| <font style="color: rgb(25, 100, 5)">↳ vml000202 | SUCCESS | 466ms</font> |
| <font style="color: rgb(0, 0, 0)">[18:32:12] ↳ arch_iso: Ergebnis in einer Variable zur weiteren Bearbeitung vorhalten.</font> |
| <font style="color: rgb(25, 100, 5)">↳ vml000202 | SUCCESS | 24ms</font> |
| <font style="color: rgb(0, 0, 0)">[18:32:12] ↳ arch_iso: ISO auf dem KVM-Wirt I holen.</font> |
| <font style="color: rgb(196, 160, 0)">↳ vml000202 -> kvm | CHANGED | 17.35s</font> |
| <font style="color: rgb(0, 0, 0)">[18:32:29] ↳ arch_iso: ISO auf dem KVM-Wirt II holen.</font> |
| <font style="color: rgb(43, 100, 164)">vml000202 | UNREACHABLE!: Failed to connect to the host via ssh: django@pml010102.intra.nausch.org: Permission denied (publickey,password).</font> |
| <font style="color: rgb(0, 0, 0)">[18:32:29] system</font> |
<font style="color: rgb(25, 100, 5)">-- Play recap --</font> | <font style="color: rgb(25, 100, 5)">-- Play recap --</font> |
<font style="color: rgb(0, 0, 0)">[18:23:49] ↳ arch_iso: Verzeichnis releng kopieren.</font> | <font style="color: rgb(255, 0, 0)">vml000202 </font><font style="color: rgb(0, 0, 0)">: </font><font style="color: rgb(25, 100, 5)">ok=22 </font><font style="color: rgb(196, 160, 0)">changed=6 </font><font style="color: rgb(255, 0, 0)"><b>unreachable=1</b></font><font style="color: rgb(0, 0, 0)"> failed=0 skipped=0 rescued=0 ignored=0</font> |
<font style="color: rgb(25, 100, 5)">-- Play recap --</font> | |
<font style="color: rgb(0, 0, 0)">[18:23:49] ↳ arch_iso: Verzeichnis releng kopieren.</font> | |
<font style="color: rgb(25, 100, 5)">-- Play recap --</font> | |
<font style="color: rgb(0, 0, 0)">[18:23:49] ↳ arch_iso: Verzeichnis releng kopieren.</font> | |
<font style="color: rgb(25, 100, 5)">-- Play recap --</font> | |
<font style="color: rgb(0, 0, 0)">[18:23:49] ↳ arch_iso: Verzeichnis releng kopieren.</font> | |
<font style="color: rgb(25, 100, 5)">-- Play recap --</font> | |
<font style="color: rgb(0, 0, 0)">[18:23:49] ↳ arch_iso: Verzeichnis releng kopieren.</font> | |
<font style="color: rgb(25, 100, 5)">-- Play recap --</font> | |
| |
<font style="color: rgb(196, 160, 0)">localhost </font><font style="color: rgb(0, 0, 0)">: </font><font style="color: rgb(25, 100, 5)">ok=5 </font><font style="color: rgb(196, 160, 0)">changed=1 </font>unreachable=0 failed=0 skipped=0 rescued=0 ignored=0</font> | |
</pre> | </pre> |
</html> | </html> |
| |
| Ohne die kompakte Ausgabe mit Hilfe des **[[https://github.com/octplane/ansible_stdout_compact_logger|Ansible Stdout Compact Logger]]** würde die Ausgabe des obigen Beispiels mehrere Bildschirmseiten füllen! |
===== Fazit und Ausblick ===== | ===== Fazit und Ausblick ===== |
| |
<WRAP center round info 80%> | <WRAP center round info 80%> |
O.K., warum gibt es das überhaupt? | O.K., **''cowsay''** - warum gibt es das überhaupt? |
| |
Warum nicht? **''cowsay''** ist ein bisschen Spass in einer Umgebung, die normalerweise ziemlich "trocken" und langweilig ist. Die Option **''ANSIBLE_COW_SELECTION=random''** bringt wie der Namen schon sagt, zufällige ASCII-Geschöpfe auf den Bildschirm - Langeweile kommt so nicht auf - O.K. beim Ausmachen eines grossen Mehrwerts wird man sich vermutlich auch schwer tun. Aber ein wenig Spass muss auch ab und an sein, oder? :-P | Warum nicht? **''cowsay''** ist ein bisschen Spass in einer Umgebung, die normalerweise ziemlich "trocken" und langweilig ist. Die Option **''ANSIBLE_COW_SELECTION=random''** bringt wie der Namen schon sagt, zufällige ASCII-Geschöpfe auf den Bildschirm - Langeweile kommt so nicht auf - O.K. beim Ausmachen eines grossen Mehrwerts wird man sich vermutlich auch schwer tun. Aber ein wenig Spass muss auch ab und an sein, oder? :-P |
| \\ \\ |
| Natürlich wird man bei grossen und umfangreichen Orchestrierungsaufgaben eher auf die Verwendung des **''[[https://github.com/octplane/ansible_stdout_compact_logger|Ansible Stdout Compact Logger]]''** zurück greifen. Hat man so doch schneller einen Überblick über den kompletten Anlauf einer Orchestrierungsaufgabe - Spass hin oder her, aber im Zweifels- und Debugging-Fall ist in aller Regel doch eher schnell Schluss mit lustig! :UP: |
</WRAP> | </WRAP> |
| |