2016-10-14 3 views
1

Я пытаюсь поместить символ тильды в переменную, которую я собираюсь использовать в шаблоне в Ansible, и для жизни меня я не могу достичь того, что хочу, поскольку тильда расширился во всевозможных странных путях.Ansible - тильда как переменная

То, что я хочу добиться того, чтобы иметь some_var, определенный в моем файле Варс, так что я могу использовать его в шаблоне так:

random_setting: "{{ some_var }}" и получить это в результате: random_setting: ~, т.е. чистый тильды, без кавычек добавлено.

Вместо этого я продолжаю получать это: random_setting: '~' (что неприемлемо для моего варианта использования) или это: random_setting: '' (что так же плохо).

Мой вопрос: как мне избежать символа тильды, чтобы я мог использовать его без того, чтобы он был окружен кавычками или расширен каким-то неясным образом? Я уже пробовал несколько трюков, включая кодирование символа ~ с base64 и использование фильтра | b64decode в Ansible, но ничего не работает.

+0

Добавьте пример плейлиста, пожалуйста. Назначение '' '' 'some_var' так же просто, как' some_var: '~' '. –

ответ

1

Я думаю, что вы можете ввести в заблуждение реальное значение с выходом Ansible.

Если вы запустите это:

--- 
- hosts: localhost 
    connection: local 
    vars: 
    var1: "~" 
    tasks: 
    - template: src=tilde-template.j2 dest=result.txt 

tilde-template.j2 с:

{{ var1 }} 

и проверить содержимое result.txt будет содержать только тильды.

+0

Ах, не совсем, но близко. То, что меня предал, было привычкой цитировать переменные везде в Ansible - даже в шаблонах Jinja2, что, оказывается, является излишним. Таким образом, в конце концов это оказалось тривиальной задачей. Спасибо, что указали мне в правильном направлении :) – Erathiel

Смежные вопросы