Возможное значение извлечения из dict - PullRequest
0 голосов
/ 18 мая 2018

У меня есть выходные данные отладки, мне нужно установить переменные и циклические команды

Отладочный вывод:

    ok: [leafsw] => {
    "msg": [
        {
            "cl_list": "AWSCL",
            "delete": [
                {
                    "list": "11111:10000",
                    "seq": 1
                },
                {
                    "list": "22222:10000",
                    "seq": 2
                }
            ],
            "name": "AWSCL",
            "permit": [
                "11111:10000",
                "22222:10000"
            ]
        },
        {
            "cl_list": "NORM_CL",
            "name": "NORM_CL",
            "permit": [
                "33333:10000",
                "44444:10000"
            ]
        }
    ]
}

Мне нужно получить cl_list, затем следующая задача состоит в том, чтобыиспользуйте «with_items» для запуска других команд.Первое: как получить значение dict cl_list Второе: добавить в переменную, чтобы я мог использовать его в цикле.

Я пытался:

- name: Get CL Name
  debug: var="{{ item }}"
  with_items: "{{ getclname.cl_list }}"

не работает, также я пытался:

- name: Get CL Name
  debug: var="{{ item.cl_list }}"
  with_items: "{{ getclname }}"

Что бы я хотел: variable = ['AWSCL', 'NORM_CL'], чтобы я мог использовать это в циклах with_items

Есть идеи?

1 Ответ

0 голосов
/ 18 мая 2018

ты был почти там!попробуйте выполнить эту задачу:

- name: get the cl_list from the variable
  debug:
    var: item.cl_list 
  with_items: 
    - "{{ my_var }}"

результат:

TASK [get the cl_list from the variable] ****************************************************************************************************************************************************************************
ok: [localhost] => (item=None) => {
    "item.cl_list": "AWSCL"
}
ok: [localhost] => (item=None) => {
    "item.cl_list": "NORM_CL"
}

PLAY RECAP

готов к обработке по элементу.

ВТОРОЙ ПУТЬ:

Вы можете сделать это, чтобы получить их в списке переменных:

- name: get the cl_list from the variable
  debug:
    var: my_var | map(attribute="cl_list") | list

result:

TASK [get the cl_list from the variable] ****************************************************************************************************************************************************************************
ok: [localhost] => {
    "my_var | map(attribute=\"cl_list\") | list": [
        "AWSCL", 
        "NORM_CL"
    ]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...