2016-06-19 3 views
0

Я пытаюсь создать роль, которая использует некоторые переменные из файла. Хотя эти переменные также зависят от некоторой общей переменной, которую я хочу определить для всех ролей только один без копии &, вставьте ее в каждый файл переменной.переменные переменные внутри переменных

Хотя я не могу понять, как я могу это сделать. Я говорю только о файле vars.

E.g. role/dns/tasks/main.yml содержит файл для определенного места:

- include_vars: ../vars/dns/domains_{{ location }}.yml 

Местоположение определяется на уровне ролей. Внутри этого я пытаюсь определить настройки для различных имен DNS, например .:

domains: [ 
    { 
    domain: "domain.com", 
    location: "america", 
    ip: "xx.xx.xx.xx", 
    ttl: 1800, 
    mx: "10 mail", 
    subdomains: [ 
     { name: "www", ip: "xx.xx.xx.xx"}, 
    ] 
    }, 
] 

так вот у меня такой же IP определяется для каждого входа. Есть ли способ поставить все IP-адреса в некоторые глобальные переменные файла (например, group_vars/все/vars_file.yml) и использовать его в этой роли конкретного файла вар, как это:

domains: [ 
    { 
    domain: "domain.com", 
    location: "america", 
    ip: server.america.ip, 
    ttl: 1800, 
    mx: "10 mail", 
    subdomains: [ 
     { name: "www", ip: server.america.ip }, 
    ] 
    }, 
] 

где server.america.ip является определяется где-то глобальным?

ответ

1

Да, это возможно. Переменные файлы фактически также запускаются через jinja, поэтому вы можете иметь базовые выражения и переменные в переменных файлах.

domains: [ 
    { 
    domain: "domain.com", 
    location: "america", 
    ip: "{{ server.america.ip }}", 
    ttl: 1800, 
    mx: "10 mail", 
    subdomains: [ 
     { name: "www", ip: "{{ server.america.ip }}" }, 
    ] 
    }, 
] 
0

Вы можете включить переменные из роли X в начале задач/main.yml вашей роли Y, например. Если у вас есть общая роль, давайте, например, разместим это место на этом. Только потенциальная проблема заключается в том, что вам может понадобиться использовать 'with_items' для вызова включенных переменных.