ฉันกำลังสร้างคอนเทนเนอร์ Podman ที่รัน Samba Active Directory พร้อมรองรับ Bind9 และ Freeradius โดยใช้ Ansible และประสบปัญหาเล็กน้อย
Samba ทำงานได้ดีกับ DLZ_BIND เป็นแบ็กเอนด์ในคอนเทนเนอร์ของฉัน แต่ฉันต้องรวม Freeradius เข้ากับคอนเทนเนอร์ ดังนั้นฉันจึงสามารถรองรับการเข้าสู่ระบบผ่าน VPN ได้
ฉันพยายามสร้างเทมเพลตบรรทัดต่อไปนี้ /etc/freeradius/3.0/mods-available/mschap
:
ntlm_auth = "/usr/bin/ntlm_auth --allow-mschapv2
--request-nt-คีย์
--ชื่อผู้ใช้={mschap:ชื่อผู้ใช้}
--domain={{ ad_info.netbios_domain }}
--challenge=%{%{mschap:Challenge}:-00}
--nt-response=%{%{mschap:NT-Response}:-00}"
สำหรับแบบฝึกหัด คุณสามารถสันนิษฐานได้ว่าค่าของ {{ ad_info.netbios_domain }}
เป็น ตัวอย่าง
.
เป็นที่เดียวในไฟล์ที่ฉันใช้ตัวแปร Jinja
อย่างไรก็ตาม การเรียกใช้ ansible-playbook ทำให้ Ansible ระเบิดใส่หน้าฉัน เมื่อมันพยายามสร้างเทมเพลตไฟล์
ฉันคิดว่าเป็นเพราะตัวแปร Jinja ถูกแทรกในสตริง qouted? เนื่องจากเชลล์สคริปต์ BASH ที่มีบรรทัดต่อไปนี้จะไม่ระเบิดใน ansible:
SAMBA_ADMIN_PASSWORD="{{ ad_info.admin_password }}"
อะไรคือวิธีที่ถูกต้องในการใช้ Jinja เมื่อคุณมีสตริงที่ยกมา?
แก้ไข
ฉันสร้างเทมเพลตที่มีเฉพาะบรรทัดที่เป็นปัญหาและได้รับข้อผิดพลาดดังต่อไปนี้จาก ansible:
ล้มเหลว: [myhost.example.com] (item=etc/freeradius/3.0/mods-available/mschap) =>
{
"ansible_loop_var": "รายการ",
"เปลี่ยนแปลง": เท็จ "รายการ":
"ฯลฯ/freeradius/3.0/mods-available/mschap-jinja",
"msg": "AnsibleError: ข้อผิดพลาดของเทมเพลตขณะสร้างเทมเพลตสตริง: คาดชื่อแท็ก
สตริง: ntlm_auth = \"/usr/bin/ntlm_auth
--allow-mschapv2
--request-nt-คีย์
--ชื่อผู้ใช้={mschap:ชื่อผู้ใช้}
--domain={{ ad_info.netbios_domain }}
--challenge=%{%{mschap:Challenge}:-00}
--nt-response=%{%{mschap:NT-Response}:-00}\"
"}