Как я могу построить список из значений словаря?

#arrays #ansible #ldap

Вопрос:

У меня есть список пользователей рекламы, и я пытаюсь создать список отличимых имен

 vars:
  admin_users: "user1;user2"
  tasks:
  - set_fact:
    admin: "{{ admin_users.split(';') }}"

  - name: Search account
    community.general.ldap_search:
    <...>
    loop: "{{ admin }}"
    register: ldap_result

  - name: Build DN-array
    set_fact:
      group: "{{ group | default([]) }}    {{ item.value | json_query(query) }}"
    with_dict: "{{ ldap_result.results }}"
    when: item.key == 'results'
    vars:
      query: "[*].distinguishedName"

  - debug:
    var: "{{ group }}"
 

И получить

 "<class 'list'>": "VARIABLE IS NOT DEFINED!"
 

Также пробовал

 group: "{{ group | default([]) }}   [ {{ item.value | json_query(query) }} ]"
group: "{{ group | default([]) }}   {{ [ item.value | json_query(query) ] }}"
 

получите то же самое сообщение

 "<class 'list'>": "VARIABLE IS NOT DEFINED!"
 

и

 group: "{{ group | default([]) }}   [ '{{ item.value | json_query(query) }}' ]"
 

Затем я получаю ошибку

 FAILED! => {"msg": "template error while templating string: expected
token ',', got 'CN'. String: {{[]   [ '['CN=***']' ]   [ '['CN=***']' ]}}"}
 

Какие-нибудь советы?

Ответ №1:

Хорошо, все верно, мне просто нужно было использовать такую конструкцию, как эта

     <...>
    group: "{{ group | default([]) }}   [ {{ item.value | json_query(query) }} ]"
    <...>
    - debug: msg="{{ group }}"
 

только не это

 - debug:
    var: "{{ group_list_two }}"
 

правильный вывод

 ok: [localhost] => {
    "msg": [
        [
            "CN=***"
        ],
        [
            "CN=***"
        ]
    ]
}