2016-05-12 30 views
6

Diğer oyun kitaplarını içeren bir ana oyun kitabına sahip olmak isterim. Bu dahil olan bir değişkene bir değişken iletmek mümkün mü?Değişken dahil olan oyun kitabına geçiş değişkeni?

çalışmıyor dahil görevlere geçen değişkenler için kullanılır, normal sözdizimi ben v2.0.2.0 koşuyorum

- include: someplaybook.yml variable=value 

ve

- include: someplaybook.yml 
    vars: 
    variable: value 

(aşağıya bakınız).

+0

Rolleri biliyor musunuz? çalışmayan bu normal sözdizimi nedir? – Nasr

+1

Bildiğim kadarıyla, değişkenler, oyun kitabının tüm çalışma süresi boyunca globaldir, bu nedenle sadece herhangi bir noktada değişkenleri tanımlamanız gerekir – ydaetskcoR

+0

@Nasr Evet Rolleri biliyorum - bu durumda yardımcı olmazlar . Normal sözdizimini ekledim. Ansible, farklı değişkenler için farklı kapsamlara sahiptir. Sadece set_facts kullanarak çalışmıyor. – CamHart

cevap

0

Eksik gördüğüm tek şey tırnak işaretleri.

- include: someplaybook.yml variable='value' 

Benim için çalışıyor ve sizin için de çalışmalı. Karşılaştığınız hatayı paylaşmıyorsanız.

Ayrıca rolün görevinde tanımlanan "değişken" değişkenine sahip olduğunuzdan ve buradan değeri yalnızca bu değişkene geçirdiğinizden emin olun.

+3

Görev için bu çalışma içerir - playbook içerir. – CamHart

+0

Yukarıdaki komutta, oyun kitabını ekledim. Göreve ne demek istiyorsun? Bu değişkenin kullanıldığı kodu paylaşır mısınız, böylece nasıl kullanılmasını istediğiniz hakkında daha fazla bilgi edinebilirim? –

+2

Yürütme kitabı, dahil ettiğiniz dosyanın oynatmaları içerdiği, yani "ana bilgisayar" makinelerini ve bu ana makine makinelerinde çalıştırılacak rolleri/görevleri belirttiği öğeleri içerir. Görev, yalnızca çalıştırılacak görevleri belirtmeyi içerir. – CamHart

0

Ayrıca, ben, bunu okumak http://docs.ansible.com/ansible/latest/playbooks_reuse.html önermek ve bu durumda rolleri kullanmayı deneyin, size tek bir ana oyun kitabında/ithalat birden playbooks içerecek şekilde çalışıyoruz böyle bir durumda, içinde yardımcı olacağız. Ve içerme ifadesine bir değer iletmekle ilgili olarak, rolün vars main.yml dosyasına ekleyebilirsiniz. Veya, geçmek istediğiniz değişken, tek ana oyun kitabındaki bir önceki görevin sonucuysa, 'register'ı kullanın ve çıkışı bir değişkene kaydedin. Burada

- debug: msg="{{result.stdout_lines}}"

, sonuç kayıtlı değişkendir. Kayıt defterine tam olarak ne geçmek istediğinizi öğrenmek için hata ayıklama modülünü kullanın. Bu yardımcı olur umarım.

+1

Bunu sorduğumda tam bağlamı hatırlamıyorum, ancak orijinal sorudaki yorumları okursanız, rollerin bunu çözmek için kullanılamayacağı açıktı. Rolleri zaten kullanıyordum - bu, rollerin üstesinden gelebileceğinden biraz farklı bir kullanım durumuydu. Ama kesin detayları unuttum. – CamHart