Рейтинг:2

Ansible: как преобразовать вывод команды оболочки в элементы или переменные

флаг vn

Я запускаю команду оболочки в своей книге для извлечения результатов команды. Результат

- отладка: msg="{{ dblist.stdout_lines }}"

является

хорошо: [хост] => {
    "сообщение": [
"inst1:db1"
"inst1:db2"
"inst1:db3"
"inst2:db4"
"inst2:db3"
  ]
}

Мне нужно сохранить это значение в формате, который позволит мне запустить мою следующую книгу с учетом значения item.0 как inst1 и item.1 как db2 и так далее.

В настоящее время

- отладка: msg="{{ item.0 }} имеет значение {{ item.1 }}"
  with_items: "{{ dblist.stdout_lines }}"

дает такие значения, как

ок: [хост] => (item=inst1:db1) => {
    "msg": "у меня есть значение n"
}
ок: [хост] => (item=inst1:db2) => {
    "msg": "у меня есть значение n"

Спасибо.

Рейтинг:3
флаг br

Например

    - отладка:
        msg: "{{ _key }} имеет значение {{ _val }}"
      цикл: "{{ dblist.stdout_lines }}"
      вары:
        _arr: "{{ item.split(':') }}"
        _key: "{{ _arr.0 }}"
        _val: "{{ _arr.1 }}"

дает

  msg: inst1 имеет значение db1
  msg: inst1 имеет значение db2
  msg: inst1 имеет значение db3
  msg: inst2 имеет значение db4
  msg: inst2 имеет значение db3
Рейтинг:2
флаг th

Если у вас достаточно новая версия (ansible-core>=2.11), вы можете использовать расколоть фильтр:

    - отладка:
        msg: "{{ item.0 }} имеет значение {{ item.1 }}"
      цикл: "{{ dblist.stdout_lines | map('split', ':') }}"

Аналогичного результата можно добиться и в более старых версиях, но он уродливее:

    - отладка:
        msg: "{{ item.0 }} имеет значение {{ item.1 }}"
      цикл: "{{ dblist.stdout_lines }}"
      loop_control:
        loop_var: _item
      вары:
        элемент: "{{ _item.split(':') }}"

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.