Ниже моя книга игр:
- set_fact:
excludefolders: "{{ excludefolders + ' -o -name ' + item | default('') }}"
with_items: "{{ lookup('vars', 'MY_' + Layer).split(',') }}"
- debug:
msg: "exfolderr is {{ excludefolders }}"
Я получаю вывод ниже
ok: [10.0.17.113] => { "msg": "exfolderr is -o -name custom -o -name tree -o -name log"
Однако я хочу, чтобы переменная заключалась в одинарные кавычки, как показано ниже:
Ожидаемый результат:
ok: [10.0.17.113] => { "msg": "exfolderr is -o -name 'custom' -o -name 'tree' -o -name 'log'"
Я пытался использовать escape-символ, а также фильтр цитат для добавления одинарных кавычек, но ни одна из них не сработала. Вот что попробовал.
- set_fact:
excludefolders: "{{ excludefolders + ' -o -name ' + item | quote | default('') }}"
with_items: "{{ lookup('vars', 'MY_' + Layer).split(',') }}"
- set_fact:
excludefolders: "{{ excludefolders + ' -o -name ' + \' + item + \' | default('') }}"
with_items: "{{ lookup('vars', 'MY_' + Layer).split(',') }}"
- set_fact:
excludefolders: "{{ excludefolders + ' -o -name ' ~ \' + item ~ \' | default('') }}"
with_items: "{{ lookup('vars', 'MY_' + Layer).split(',') }}"
- set_fact:
excludefolders: "{{ excludefolders + ' -o -name \'' + item + '\'' | default('') }}"
with_items: "{{ lookup('vars', 'MY_' + Layer).split(',') }}"