Jak wydrukować bieżącą nazwę hosta w programie ansible

12

Napisałem rolę do edycji motd, gdy użytkownik loguje się do komputera, ale chcę spersonalizować motd, aby wydrukować nazwę hosta maszyny

Jakiej zmiennej używam? lub jak to zrobić? szablon? w jaki sposób? Użyłem copy modulepliku motd

Więc na przykład chcę móc powiedzieć „witaj w $ nazwa hosta”, więc jak mogę parsować tę nazwę hosta za pomocą ansible?

udzielić krawca
źródło

Odpowiedzi:

20

W tym celu musisz użyć szablonu -moduła.

Oto przykładowe zadanie:

- name: Create motd
  template: src="motd.j2" dest="/etc/motd"

Plik motd.j2 (umieszczony w podkatalogu szablonów twojej roli) mógłby wyglądać następująco:

Welcome to host {{ansible_hostname}}!

{{ansible_hostname}} zostanie wówczas zastąpione nazwą hosta.

Pamiętaj, aby „ zebrać fakty ” w swojej roli, w przeciwnym razie zmienna będzie pusta.

rndmh3ro
źródło
Jak mogę „zebrać fakty”? .. dzięki
udziel krawca
działa dzięki .. ale co rozumiesz przez „zbieranie faktów”?
udzielić krawca
Dodałem dwa łącza do dokumentacji w celu zebrania faktów.
rndmh3ro
1
ansible_eth0.ipv4.addresswymyśliłem to po kilku poważnych poszukiwaniach ... które są do bani ... ansible powinien wiedzieć, że są bardzo ważne zmienne, które powinny być łatwiejsze do znalezienia i wyraźnie wymienione na stronie doc
udziel krawca
1
Jeśli wyszukujesz „adres ip” w odpowiadających dokumentach, możesz go łatwo znaleźć w pierwszym łączu. Jest nawet cały akapit, który pokazuje dwa różne sposoby uzyskania adresu hosta!
rndmh3ro