Ansible Jinja разделить на обратную косую черту не удалось - PullRequest
0 голосов
/ 21 октября 2019

У меня есть игра, которая пытается разбить строку в формате domain\user на части:

Это задача

tasks:
    - name: do something which requires domain and user
      win_shell: echo "{{ lookup('aws_ssm', 'service_user-account-2921', decrypt=True, region='eu-central-1' )}}.split('\\')[0] }}"

В результате:

ERROR! failed at splitting arguments, either an unbalanced jinja2 block or quotes: {{'DOMAIN\USER'.split('\')[0]}}

если я изменю задачу, чтобы удалить поиск, она все равно не будет выполнена, пока я использую \ в качестве разделителя

      #win_shell: echo "{{ 'test,strings'.split(',')[0] }}" #WORKS
      win_shell: echo "{{ 'DOMAIN\\USER'.split('\\')[0]}}" #FAILS

как разделить обратную косую черту в ansible / jinja?

1 Ответ

1 голос
/ 21 октября 2019

Q: "Как разделить обратную косую черту в ansible / jinja?"

A: поместить разделитель в переменную. Например,

  vars:
    separator: '\'
    text: 'domain\user'
  tasks:
    - debug:
        msg: "{{ text.split(separator) }}"

дает

"msg": [
    "domain", 
    "user"
]
...