Neuen Host mit einem Ansible Playbook einbinden?

Hallo zusammen,

die Ansible Collection ist wirklich super und ich werde sicher noch länger brauchen, um sie vollumfänglich zu verstehen und zu nutzen.

Habe mir jetzt für die typischen Schritte die man gehen muss, um einen neuen Host einzubinden zusammen gestellt.
Host in checkmk anlegen und aktivieren. (Läuft auf localhost)
Agenten backen und signieren (Läuft auf localhost)
Agenten auf Host installieren (Läuft auf dem neuen Host)
Discovery Fix All laufen lassen und aktivieren (Läuft auf localhost)

Nachdem die alleine laufen, will ich versuchen, diese vier Schritte in einem Playbook zusammenführen (da kann man verschiedene Wege gehen), um für einen neuen Host nur das eine Playbook aufzurufen.

“Host in checkmk anlegen und aktivieren” und “Agenten backen und signieren” in ein Playbook zusammen zu führen war einfach.

Jetzt würde ich gerne noch “Agenten auf Host installieren” und “Discovery Fix All laufen lassen und aktivieren” hinzufügen.

Jetzt hänge ich daran, dass mit localhost und mit dem neuen Hostnamen gearbeitet werden muss. Ich habe versucht, mit set_stats den neuen Hostnamen als übergreifene Variable festzulegen um sie beim Installations Schritt für den hosts Namen zu nutzen. Aber das klappt wohl nicht.

Wie macht Ihr das? Welchen Weg geht Ihr um mit einem Aufruf einen neuen Host komplett zu integrieren?

Grüße,
Oliver

Das macht eigentlich alles die Rolle checkmk.general.agent automatisch.
Variablen setzen, Rolle includen und fertig.

ansible-collection-checkmk.general/roles/agent/README.md at main · Checkmk/ansible-collection-checkmk.general

LG
Mario

2 Likes

Hi Mario,

dann werde ich mir die Rolle nochmal genauer anschauen und testen, evtl. habe ich da ein paar Sachen nicht richtig verstanden oder genutzt.

LG
Oliver

Hallo Oliver,

Generell werden Deine Tasks auf dem jeweiligen Host ausgeführt die Du in der Hosts Datei registriert hast.
den jeweiligen Hostname findest Du in der Variable ‘ansible_hostname’
Wenn Du einen Task auf dem Host ausfühern möchtest auf dem Du ansible ausgeführt hast dann kannst Du in dem Task folgendes angeben:

‘delegate_to: localhost’

Bzw. kann natürlich ‘localhost’ jeder andere Host in deinem Play sein.

Gruß

Mike