2015-05-29 15 views
13

içeriyorsa Ansible bir görevi çalıştırın. Bu görevi yürütmek için başka bir yml dosyası oluşturmak istemiyorum. Web sunucuları için zaten bir tane var, ama birkaç Perl sunucumuzun yüklenmesi için bazı web paketleri gerekiyor.Sadece ana makine adı bir dize

- 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"> 

Sunucu envanter dosyası

Aşağıda
[webs] 
web01 
web02 
web03 

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

cevap

29

hile yapmak gerekir: oyun kitabı çalışması sırasında ana atlanır ait

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

Not Eğer bir çift var.

inventory_hostname

yanıtlayıcı 'adlı "sihirli" değişkenlerden biridir:

Ayrıca, inventory_hostname yanıtlayıcı' envanter konak dosyasında yapılandırılan olarak hostname adıdır. Bu, ansible_hostname adı verilen ana makine adına veya diğer gizemli nedenlere güvenmek istemediğinizde için yararlı olabilir. Uzun bir FQDN'niz varsa, envanter_hostname_short da, alanın geri kalanı olmadan ilk dönemine kadar olan bölümü içerir.

Kaynak: Ansible Docs - Magic variables and how to access information about other hosts

İlgili konular