W tym celu, porozmawiamy o module ansible: Gathers facts
💬 Official webpage:
- Display facts from all hosts and store them at /tmp/facts indexed by hostname
- Aby wymienić fakt bezpośrednio w twoim playbooku musisz ustawić gather_facts: True w swoim playbooku
- uzyskaj bieżący adres IP hosta docelowego i użyj go w swojej roli ansible lub playbooku
- Aby ustawić wartość w swoim pliku vars
- użyj case
- update: 2018-04-19
Display facts from all hosts and store them at /tmp/facts indexed by hostname
$ ansible all -m setup --tree /tmp/facts
➡ teraz sprawdź ten plik, aby mieć jasny widok wszystkich zmiennych (faktów) zebranych przez ansible dla twojego hosta jak dobrze znany {{ inventory_hostname }}
Aby wymienić fakt bezpośrednio w twoim playbooku musisz ustawić gather_facts: True w swoim playbooku
gather_facts: True tasks:
- debug: var=hostvars
uzyskaj bieżący adres IP hosta docelowego i użyj go w swojej roli ansible lub playbooku
Możesz użyć w swoim szablonie.j2{{ ansible_eth0.ipv4.address }}
w ten sam sposób, w jaki używasz {{ inventory_hostname }}
Aby ustawić wartość w swoim pliku vars
---
host_ip: "{{ ansible_enp0s3.ipv4.address }}"
użyj case
➡ oto przykład: https://github.com/orsius/ansible-dtx-cassandra-3
⚠ To repozytorium git nie jest przeznaczone do użycia w produkcji, to tylko w celu zilustrowania tego wpisu na blogu.
Mam nadzieję, że to pomoże komuś pewnego dnia ッ
kr,
G.
update: 2018-04-19
Możesz również użyć „setup” w swoim pliku .yaml file.
e.g. W moim obecnym przypadku użycia, potrzebuję uzyskać default ipv4 addr
:
- name: Gather facts from new server
setup:
filter: ansible_default_ipv4.address
Możesz teraz wywołać {{ ansible_default_ipv4.address }}
w swoim playbooku.
(setup załaduj wszystkie zmienne ansible_**)
ℹ️ Dla tych, którzy są zainteresowani, aby dowiedzieć się więcej z ansible polecam tę stronę: www.educba.com ; Znalazłem informacje kompletne i łatwe do odczytania.