Puncte:1

Ansible: completarea unui șablon care conține interpolări imuabile

drapel au

Trebuie să fac un playbook care să ia un fișier șablon, să interpolez unele variabile și să pun fișierul rezultat într-un alt director.

Prima parte a problemei este că fișierul rezultat va fi folosit ca un alt manual Ansible, deci fișierul sursă conține alte interpolări și aceste interpolări trebuie păstrate așa cum sunt. De exemplu, să presupunem că fișierul sursă conține ceva de genul:

cheia1: {{ valoare1 }}
cheia2: {{ valoare2 }}

Valoarea a cheia1 trebuie interpolat de cartea mea de joc (va deveni valorile valoare1 variabilă), dar în același timp valoarea2 trebuie păstrat așa cum este (va fi {{ valoare2 }}.

A doua parte a problemei este că nu pot doar să modific fișierul sursă și să adaug bare oblice inverse înainte de paranteze, deoarece acest fișier este actualizat de alte procese. În plus, deoarece fișierul șablon este actualizat din când în când, nu pot prezice ce variabile trebuie sărite după următoarea actualizare.Știu doar că trebuie să interpolez valoare1, dar nu știu care sunt numele celorlalte variabile (azi există valoarea2 și valoarea 3, mâine dezvoltatorii au redenumit valoarea2 la value2_deprecated si adaugat valoarea 3 undeva).

Pot să-l întreb pe Ansible că trebuie să interpolez valoare1 numai?

Mulțumesc.

Puncte:1
drapel br

Î: "Șablonul conține interpolări și aceste interpolări trebuie păstrate așa cum sunt."

R: Declarați variabilele implicite

    lbr: '{{ "{{" }}'
    rbr: '{{ "}}" }}'
    valoare1: „{{ lbr }} valoare1 {{ rbr }}”
    valoare2: „{{ lbr }} valoare2 {{ rbr }}”

și creați șablonul

shell> cat template.yml.j2
cheia1: {{ valoare1 }}
cheia2: {{ valoare2 }}

Î: "Trebuie să interpolez doar value1."

R: Suprascrieți valoarea implicită, de ex.

    - șablon:
        src: template.yml.j2
        dest: playbook.yml
      vars:
        valoare1: valoare1

shell> cat playbook.yml 
cheia1: valoare1
cheia2: {{ valoare2 }}
drapel au
Mulțumesc, Vladimir! A trebuit să actualizez descrierea problemei, deoarece nu am explicat-o în postarea inițială: „deoarece fișierul șablon este actualizat din când în când, nu pot prezice ce variabile trebuie sărite după următoarea actualizare. știu doar că trebuie să interpolez value1, dar nu știu care sunt numele celorlalte variabile (azi există value2 și value3, mâine dezvoltatorii au redenumit value2 în value2_deprecated și added value3 undeva)"
drapel br
Explicația este în regulă. Am simplificat exemplul. Acesta este ceea ce cauți?

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.