#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=***"
]
]
}