2017-01-13 1 views
4

Вот моя проблема: мне нужно получить значение dict из ключа. Но ключ также является var. Например, у меня была несущественная роль.получить значение dict из переменной ключа в ansible

В Пере/main.yml, я определил ВАР, как показано ниже:

--- 
location: "USA" 
source:  { 
      "China": "/net/server1/patha", 
      "USA": "/net/server2/pathb", 
      "Japan": "/net/server3/pathc" 
      } 

Так что в моих задачах: задач/main.yml. Как получить «/ net/server2/pathb» с помощью vars. Я пробовал ниже в задачах, все не сработало.

-shell: "perl run.perl {{ source.location }}/script.pl"

-shell: "perl run.perl {{ source.{{ location }} }}/script.pl"

Это может быть простой вопрос. Но я долго искал много сообщений и до сих пор не могу получить правильный ответ. Поэтому, пожалуйста, помогите и большое спасибо.

ответ

9

Ответ {{ source[location] }}.

+0

Это действительно просто. Спасибо за вашу помощь! – PageNotFound

+1

Вот общий способ захвата 'vars/main.yml', которые являются только парами ключ-значение:' - name: echo_vars \ команда: echo "{{vars [item]}}" \ with_items: "{{ vars}} "\ register: output_echo_vars \ - debug: var = output_echo_vars.stdout' – mikequentel

+0

Доступ к переменным через' vars' - сложный бизнес - в этом случае они не обрабатываются движком шаблонов. –