2017-07-14 69 views
-1

這是我的劇本,Vars_prompt在劇本

--- 
- hosts: alpha 
    vars: 
    company: vogo 
    tasks: 
    - name: debugging 
     debug: 
     msg: "{{ansible_hostname}}" 
    vars_prompt: 
    - name: "company" 
     prompt: "Where do you work" 
     private: no 

- hosts: webservers 
    vars_prompt: 
    - name: "fathercompany" 
     prompt: "Where your father works" 
     private: no 
    tasks: 
    - name: test 
     debug: 
     msg: just testing "{{company2}}" 

下面是執行流程的步驟時,我跑了劇本,

1 - 提示1(你在哪兒工作)

2 - 任務調試

3 - 提示2(如果你的父親的作品)

4 - 任務TES t

我有一些問題。

首先,當我運行這個劇本時,「調試」任務應該先運行,然後提示符會要求公司名稱。但是,當我運行這個劇本時,在第一步中,它會問「你在哪裏工作?」。 爲什麼提示首先? 我是否錯過了一些我應該通過的參數?

其次,我已經把這裏2個提示,

我想使用的提示值company,在主機塊。但是當我嘗試這樣做時,它給了我錯誤。

我不能使用從一個主機塊到另一個主機塊的提示值?

三,

如何在角色中使用提示?

回答

2

vars_prompt被綁定到特定的玩法,所以你不能直接在其他玩法中使用它們。儘管你可以在第一場比賽中使用set_fact來爲某些主持人設定一個事實,並通過hostvars在稍後的比賽中進行訪問。

提示在每次播放的開始時執行,無論你放置在哪裏vars_prompt塊 - 在tasks段之前或之後(這是一個YAML字典畢竟,其中鍵序列並不意味着什麼)。

我建議不要使用提示,如果你需要一些外部數據,通過extra variables傳遞它。