Возникла проблема с выходом строки из команды оболочки - PullRequest
0 голосов
/ 16 октября 2018

У меня есть книга воспроизведения, которая выполняет команду оболочки, содержащую токен, который содержит '.'

Команда отлично работает, когда я запускаю ее вручную из оболочки 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

Он разбивает токен на '.'.

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

Какие еще уловки я могу попробовать?

1 Ответ

0 голосов
/ 16 октября 2018

Попробуйте

token: "[a-zA-Z0-9]{6}{{'.'}}[a-zA-Z0-9]{16}"
...