Здравствуйте, у меня возникла следующая проблема. В основном я запускаю запрос на AD с помощью команды PS, чтобы получить список подразделений. Затем я хочу сравнить мою переменную с этим списком. это команда PS:
- name: PS - Pull SITE Sub OUs from AD for specific application
win_command: powershell -
args:
stdin: "Get-ADOrganizationalUnit -LDAPFilter '(name=*)' -SearchScope 1 -SearchBase 'OU=SITES,DC=xxx,DC=int' -Server domain.int | select-object name | ConvertTo-Json"
become: yes
register: ou_site_out
выводится, когда существует только одно подразделение: изменено: [хост] => {"изменено": истина, "cmd": "powershell -", "delta": "0: 00: 00.913282", "end": "2020-02-13 04: 04: 26.289368", "r c": 0, "start": "2020-02-13 04: 04: 25.376086 "," stderr ":" "," stderr_lines ": []," stdout ":" {\ r \ n \ "name \": \ "OU1 \" \ r \ n} \ r \ n " , "stdout_lines": ["{", "\" name \ ": \" OU1 \ "", "}"]}
вывод при наличии нескольких OU:
изменено: [хост] => {"изменено": true, "cmd": "powershell -", "delta": "0: 00: 00.875002", "end": "2020-02-13 04: 25: 49.409360 "," r c ": 0," start ":" 2020-02-13 04: 25: 48.534358 "," stderr ":" "," stderr_lines ": []," stdout ":" [\ r \ n {\ r \ n \ "name \": \ "OU1 \" \ r \ n}, \ r \ n {\ r \ n \ "name \": \ "OU2 \" \ r \ n}, \ r \ n {\ r \ n \ "name \": \ "OU3 \" \ r \ n}] "
, затем я устанавливаю факт из стандартного вывода следующим образом:
- name: Set list of OUs as facts
set_fact:
ou_site_list: "{{ ou_site_out.stdout | from_json }}"
Проблема начинается здесь. Если ou_site_out содержит только один элемент (существует только 1 OU), то ou_site_list вернет строку
TASK [debug] *******************************************************************
ok: [host] => {
"ou_site_list": {
"name": "OU1"
, но если есть несколько OU, я получу список:
TASK [debug] *******************************************************************
ok: [host] => {
"ou_site_list": [
{
"name": "OU1"
},
{
"name": "OU2"
},
{
"name": "OU3"}]
Как я могу затем обработайте список ou_site_list, если я не знаю, будет ли это список строк?
Спасибо за любую помощь