Buna benzer bir şeyi yaparak hemen hemen tüm envanter olgularına / değişkenlerine erişebilirsiniz:
{{ hostvars['foo.example.com']['ansible_eth0']['ipv4']['address'] }}
veya, bir indeks aracılığıyla bir gruba yapmak istiyorsanız:
{{ hostvars[groups['collectors'][0]]['ansible_eth0']['ipv4']['address'] }}
İşin püf noktası, ilgilendiğiniz tüm ana bilgisayarlar / gruplar için gerçekleri toplamanız gerektiğidir. Bu nedenle, gazeteciler grubuna karşı çalışan oyun kitabınızı uygulanan no-op (kukla) görevi içerecek şekilde değiştirmek isteyeceksinizdir. koleksiyoner grubuna. Bu, Ansible'ın koleksiyoncuların ev sahipleriyle ilgili gerçekleri toplamasına neden olacak, böylece gazetecilerin grubundan erişilebilirler. Dolayısıyla, muhabirlerin oyun kitabının tepesine böyle bir şey eklemek isteyebilirsiniz:
- hosts: collectors
name: Gather facts from collectors
tasks: [ ]
Boş parantezler temelde hiçbir işin yürütülmeyeceği anlamına gelir, ancak bu yine de Ansible'ı toplayıcılar hakkında gerçekleri toplamaya zorlar, böylece onları gazetecilere karşı koyacağınız görevlerde referans alabilirsiniz.
# 1 düzenle
Ayrıca, Ansible'ın 1.8 sürümünden itibaren , şu anda mevcut olan bir gerçeği önbelleğe alma özelliğinin bulunduğunu da belirtmeliyim. Gerçek önbellekleme, oyun kitabı çalıştırmaları arasında gerçekleri depolamak için redis sunucusuna dayanır. Etkinleştirildiğinde, bir oyun kitabı daha önce çalıştırılan başka bir oyun kitabı tarafından edinilen gerçeklere başvurabilir. Ansible belgelerinin verdiği örnek:
Mesela, binlerce ev sahibi ile çok büyük bir altyapı düşünün. Gerçek önbellekleme, gece çalışacak şekilde yapılandırılabilir, ancak küçük bir sunucu kümesinin yapılandırılması, geçici veya geçici olarak gün boyunca çalışabilir. Gerçeği önbelleğe alma etkin durumdayken, değişkenlere ve bunlar hakkındaki bilgilere referans vermek için tüm sunuculara “vurmak” gerekmez.