Jak uzyskać nazwę hosta bieżącej maszyny zgodnie z definicją w pliku hostów Ansible?


166

Konfiguruję Playbook Ansible, aby skonfigurować kilka serwerów. Jest kilka zadań, które chcę wykonać tylko wtedy, gdy bieżący host jest moim lokalnym hostem deweloperskim o nazwie „local” w moim pliku hosts. W jaki sposób mogę to zrobić? Nie mogę znaleźć tego nigdzie w dokumentacji.

Wypróbowałem tę instrukcję when, ale kończy się niepowodzeniem, ponieważ ansible_hostnamejest to nazwa hosta wygenerowana podczas tworzenia maszyny, a nie ta, którą zdefiniujesz w pliku hosts.

- name: Install this only for local dev machine
  pip: name=pyramid
  when: ansible_hostname == "local"

Odpowiedzi:



2

Możesz ograniczyć zakres playbooka, zmieniając nagłówek hostów w jego odtworzeniach bez polegania na specjalnej etykiecie hosta „lokalnie” w ekwipunku. Lokalny host nie potrzebuje specjalnego wiersza w spisach.

- name: run on all except local
  hosts: all:!local

hosts: !localhostprawdopodobnie też działa jak np. --limit '!dev'działa
timdiels

0

To jest alternatywa:

- name: Install this only for local dev machine
  pip: name=pyramid
  delegate_to: localhost
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.