2015-05-29 19 views
13

Mam wiele zadań w roli w następujący sposób. Nie chcę tworzyć kolejnego pliku yml, aby obsłużyć to zadanie. Mam już załączniki do serwerów internetowych, ale kilka naszych serwerów Perl wymaga zainstalowania niektórych pakietów internetowych.Uruchamiaj zadanie Ansible tylko wtedy, gdy nazwa hosta zawiera ciąg

- name: Install Perl Modules 
    command: <command> 
    with_dict: perl_modules 

- name: Install PHP Modules 
    command: <command> 
    with_dict: php_modules 
    when: <Install php modules only if hostname contains the word "batch"> 

plik inwentaryzacji Host

[webs] 
web01 
web02 
web03 

[perl] 
perl01 
perl02 
perl03 
perl-batch01 
perl-batch02 

Odpowiedz

29

Poniżej powinno załatwić sprawę:

- name: Install PHP Modules 
    command: <command> 
    with_dict: php_modules 
    when: "'batch' in inventory_hostname" 

Uwaga będziesz mieć kilka hostów pomijane podczas biegu PlayBook.

inventory_hostname jest jednym zmiennych „magicznych” ansibl za:

Dodatkowo inventory_hostname jest nazwa hosta jako skonfigurowany w pliku hosta inwentaryzacji ansibl użytkownika. Może to być przydatne dla , gdy nie chcesz polegać na odkrytej nazwie hosta ansible_hostname lub z innych tajemniczych powodów. Jeśli masz długą nazwę FQDN , inventory_hostname_short również zawiera część do pierwszego okresu , bez reszty domeny.

Źródło: Ansible Docs - Magic variables and how to access information about other hosts

Powiązane problemy