Puncte:1

Inserarea variabilei Jinja într-un șir între ghilimele

drapel us

Construiesc un container Podman care rulează Samba Active Directory cu suport pentru Bind9 și Freeradius folosind Ansible și m-am confruntat cu o problemă.

Samba funcționează bine cu DLZ_BIND ca backend în containerul meu, dar trebuie să integrez Freeradius în container, astfel încât să pot suporta autentificări prin VPN.

Încerc să modelez următoarea linie în /etc/freeradius/3.0/mods-available/mschap:

ntlm_auth = "/usr/bin/ntlm_auth --allow-mschapv2 
  --request-nt-key 
  --username={mschap:User-Nume} 
  --domain={{ ad_info.netbios_domain }} 
  --challenge=%{%{mschap:Challenge}:-00} 
  --nt-response=%{%{mschap:NT-Response}:-00}"

De dragul exercițiului puteți presupune că valoarea de {{ ad_info.netbios_domain }} este EXEMPLU.

Este singurul loc din fișier în care folosesc o variabilă Jinja.

Cu toate acestea, rularea ansible-playbook face ca Ansible să-mi explodeze practic în față, atunci când încearcă să modeleze fișierul.

Presupun că se datorează faptului că variabila Jinja este inserată într-un șir Qout? Deoarece un script shell BASH care conține următoarea linie nu va exploda în ansible:

SAMBA_ADMIN_PASSWORD="{{ ad_info.admin_password }}"

Deci, care sunt modalitatea corectă de a folosi Jinja, când aveți un șir între ghilimele?

Editați | ×

Am făcut un șablon care conține doar linia în cauză și am primit următoarea eroare de la ansible:

a eșuat: [myhost.example.com] (item=etc/freeradius/3.0/mods-available/mschap) => 
{
  "ansible_loop_var": "articol", 
  „schimbat”: fals, „articol”: 
  "etc/freeradius/3.0/mods-available/mschap-jinja", 
  "msg": "AnsibleError: eroare de șablon la șablonul șir: așteptat numele etichetei. 

  Șir: ntlm_auth = \"/usr/bin/ntlm_auth 
    --allow-mschapv2 
    --request-nt-key 
    --username={mschap:User-Nume} 
    --domain={{ ad_info.netbios_domain }} 
    --challenge=%{%{mschap:Challenge}:-00} 
    --nt-response=%{%{mschap:NT-Response}:-00}\"
"}
Puncte:2
drapel br

Combinatia {% deschide a Declarație Jinja. Pentru a evita această interpretare, puneți acolada într-o variabilă, de ex.

    BR: „{{ „{” }}”

și folosiți-l în șablon

coajă> cat mschap.j2
ntlm_auth = "/usr/bin/ntlm_auth --allow-mschapv2 
  --request-nt-key 
  --username={mschap:User-Nume} 
  --domain={{ ad_info.netbios_domain }} 
  --challenge=%{{ BR }}%{mschap:Challenge}:-00} 
  --nt-response=%{{ BR }}%{mschap:NT-Response}:-00}"

Sarcina de mai jos ar trebui să facă treaba

    - șablon:
        src: mschap.j2
        dest: mschap
      vars:
        ad_info:
          netbios_domain: EXEMPLU

coajă> cat mschap
ntlm_auth = "/usr/bin/ntlm_auth --allow-mschapv2 
  --request-nt-key 
  --username={mschap:User-Nume} 
  --domain=EXEMPLU 
  --challenge=%{%{mschap:Challenge}:-00} 
  --nt-response=%{%{mschap:NT-Response}:-00}"
drapel us
Mulțumesc. Am avut sentimentul că trebuie să scap de cel puțin unele dintre caracterele `%{` din cauza jinja folosește și acea sintaxă pentru declarații. Cel puțin am o cale de urmat de aici. :-)

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.