Cum pot defini o variabilă Ansible a cărei valoare este o altă variabilă din aceeași structură de mapare?
Pentru a permite spațierea sensibilă a numelor variabilelor, definesc structuri de mapare ca aceasta, unde unele valori depind de alte variabile din aceeași structură:
culme:
director:
numele gazdă: „acme-staging-v02.api.letsencrypt.org”
letsencrypt:
config_dir: „/etc/letsencrypt”
keys_dir: „{{ letsencrypt.config_dir }}/keys”
csrs_dir: „{{ letsencrypt.config_dir }}/csr”
certs_dir: „{{ letsencrypt.config_dir }}/certs”
accounts_dir: „{{ letsencrypt.config_dir }}/accounts”
csr_file: „{{ letsencrypt.csrs_dir }}/{{ site_domain }}.csr”
account_key_file: „{{ letsencrypt.csrs_dir }}/{{ acme.directory.hostname }}”
email_address: „certificat-reminders@{{ site_domain }}”
Acest lucru eșuează deoarece Ansible nu poate rezolva valorile care fac referire la altele din aceeași structură de date:
buclă recursivă detectată în șirul șablonului: {{ letsencrypt.config_dir }}/keys
Asa am crezut căutarea vars
ar permite amânarea rezoluției:
culme:
director:
numele gazdă: „acme-staging-v02.api.letsencrypt.org”
letsencrypt:
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"
accounts_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: „certificat-reminders@{{ site_domain }}”
Acest lucru eșuează, deoarece Ansible încearcă să rezolve imediat această căutare:
Nu a fost găsită nicio variabilă cu acest nume: letsencrypt.config_dir
Desigur, le-aș putea împărți astfel încât să fie variabile separate. Totuși, asta înfrânge scopul meu de a păstra variabilele puternic legate grupate în același spațiu de nume.
Deci, ce îmi va permite să definesc structura datelor astfel încât unele valori pot depinde de alte variabile din aceeași structură?