У меня есть книга воспроизведения, которая выполняет команду оболочки, содержащую токен, который содержит '.'
Команда отлично работает, когда я запускаю ее вручную из оболочки bash и помещаю токен в двойные кавычки.(также работает без кавычек)
Я испробовал все возможные способы выхода, а также фильтр кавычек и nada.
# Token Format
[a-zA-Z0-9]{6}.[a-zA-Z0-9]{16}
Здесь я запускаю команду оболочки:
- name: Bootstrapping compute nodes
vars:
server: "{{ hostvars[groups['masters'][0]]['bootstrap_server'] }}"
token: "{{ hostvars[groups['masters'][0]]['bootstrap_token'] }}"
hash: "{{ hostvars[groups['masters'][0]]['bootstrap_hash'] }}"
shell: cobbler join {{ server }} --token "{{ token }}" --hash "{{ hash }}"
register: bootstrap_cmd_output
when: ('compute' in group_names)
Я знаю, что переменная не повреждена в начале этой игры с помощью оператора отладки.
Я пробовал эти подходы:
shell: cobbler join {{ server }} --token \"{{ token }}\" --hash "{{ hash }}"
shell: cobbler join {{ server }} --token \\"{{ token }}\\" --hash "{{ hash }}"
shell: cobbler join {{ server }} --token {{ token | quote }} --hash "{{ hash }}"
КогдаЯ стараюсь не заключать в кавычки, что жалуется:
'asfcLs.' - invalid token
Он разбивает токен на '.'.
Я также пробовал все вышеперечисленное, используя команду вместо оболочки.
Какие еще уловки я могу попробовать?