Я создаю контейнер Podman, который запускает Samba Active Directory с поддержкой Bind9 и Freeradius, используя Ansible, и столкнулся с небольшой проблемой.
Samba отлично работает с DLZ_BIND в качестве серверной части в моем контейнере, но мне нужно интегрировать Freeradius в контейнер, чтобы я мог поддерживать вход через VPN.
Я пытаюсь создать шаблон следующей строки в /etc/freeradius/3.0/моды доступны/mschap:
ntlm_auth = "/usr/bin/ntlm_auth --allow-mschapv2
--request-nt-ключ
--username={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 вставлена в строку с кавычками? Потому что сценарий оболочки 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": "элемент",
«изменено»: ложь, «элемент»:
"etc/freeradius/3.0/моды доступны/mschap-jinja",
"msg": "AnsibleError: ошибка шаблона при создании строки шаблона: ожидается имя тега.
Строка: ntlm_auth = \"/usr/bin/ntlm_auth
--allow-mschapv2
--request-nt-ключ
--username={mschap:имя-пользователя}
--domain={{ ad_info.netbios_domain }}
--challenge=%{%{mschap:Challenge}:-00}
--nt-response=%{%{mschap:NT-Response}:-00}\"
"}