2016-08-15 449 views
1

我有一些增值經銷商:Ansible:有沒有辦法讓變量沒有默認值?

vars: 
    var1: foo 
    var2: bar 

我想有一個VAR3,但我想爲它設定的運行時間。

  • 我不想使用vars_prompt,因爲這需要用戶干預。
  • 我想強制這個劇本被調用時,它被稱爲--extra-vars var3=bat
  • 我不想在某個地方只參考{{ var3 }},因爲我喜歡這個劇本的想法是有點自我記錄。
  • 我寧可不做某種include_vars文件,除非這是這種情況所要求的並且是標準的。
  • 我相信以下是不允許的:

    vars: 
        var1: foo 
        var2: bar 
        var3 
    

我該怎麼辦?

回答

2

可能是assert作爲解決方法是否足夠好?
它提供了良好的可讀性的劇本。
添加它作爲你的第一個任務:

- assert: 
    that: 
     - var3 is defined 
     - var3 in ['one', 'two', 'three'] 
+0

這似乎是一個真棒的解決方法!你能想到其他人嗎?我很好奇,如果他們存在 –

+0

不,我通常這樣做。 –

+0

如果你希望它是自我記錄,這是如何做到這一點。否則,只需在您的手冊中使用該變量並在自述文件中給出說明。如果他們不包含它,Ansible會爲未定義的var拋出一個錯誤。 – smiller171

相關問題