Как я могу определить переменную Ansible, чья value — это другая переменная в той же структуре сопоставления.?
Чтобы обеспечить разумное пространство имен переменных, я определяю структуры отображения, подобные этой, где некоторые значения зависят от других переменных в той же структуре:
акме:
каталог:
имя хоста: "acme-staging-v02.api.letsencrypt.org"
пустьшифрует:
config_dir: "/etc/letsencrypt"
keys_dir: "{{ letsencrypt.config_dir }}/ключи"
csrs_dir: "{{ letsencrypt.config_dir }}/csr"
certs_dir: "{{ letsencrypt.config_dir }}/certs"
account_dir: "{{ letsencrypt.config_dir }}/accounts"
csr_file: "{{ letsencrypt.csrs_dir }}/{{ site_domain }}.csr"
account_key_file: "{{ letsencrypt.csrs_dir }}/{{ acme.directory.hostname }}"
email_address: "сертификат-напоминания@{{site_domain}}"
Это не удается, потому что Ansible не может разрешить значения, которые ссылаются на другие в той же структуре данных:
в строке шаблона обнаружен рекурсивный цикл: {{ letsencrypt.config_dir }}/keys
Так что я подумал the lookup вары
позволит отложить это решение:
акме:
каталог:
имя хоста: "acme-staging-v02.api.letsencrypt.org"
пустьшифрует:
config_dir: "/etc/letsencrypt"
keys_dir: "{{ lookup('vars', 'letsencrypt.config_dir') }}/keys"
csrs_dir: "{{ lookup('vars', 'letsencrypt.config_dir') }}/csr"
certs_dir: "{{ lookup('vars', 'letsencrypt.config_dir') }}/certs"
account_dir: "{{ lookup('vars', 'letsencrypt.config_dir') }}/accounts"
csr_file: "{{ lookup('vars', 'letsencrypt.csrs_dir') }}/{{ site_domain }}.csr"
account_key_file: >-
{{ lookup('vars', 'letsencrypt.csrs_dir') }}/{{ acme.directory.hostname }}
email_address: "сертификат-напоминания@{{site_domain}}"
Это не удается, потому что Ansible пытается немедленно разрешить этот поиск:
Переменная с таким именем не найдена: letsencrypt.config_dir
Конечно, я мог бы разделить их, чтобы они были отдельными переменными. Тем не менее, это противоречит моей цели, состоящей в том, чтобы сгруппировать сильно связанные переменные в одном пространстве имен.
Итак, что позволит мне определить структуру данных, чтобы некоторые значения могут зависеть от других переменных в той же структуре?