(Код и дебаг под спойлером)
Необходимо зарегистрировать результаты из цикла (
task № 1
) и проверить, не является ли
command.results
stderr
пустым (
task № 2
) относительно элементов цикла
loop: "{{ lookup('dict', openvz_instances) }}"
, чтобы я мог использовать это условие в новых задачах.
Проблема в том, что:
when
условие из
task № 2
не работает, потому что я не могу понять, как разделить command.results относительно элементов словаря.
Есть ли решение, чтобы обойти данную задачу?
PLAYBOOK---
- name: "CHECK IF EXIST OPENVZ CONTAINER"
hosts: "projectname-OPENVZHOSTS"
gather_facts: yes
remote_user: root
vars:
openvz_check: "yes"
openvz_instances:
opwnvz_instance_1:
vmid: "119"
opwnvz_instance_2:
vmid: "118"
tasks:
- name: "Ping my hosts"
ping:
- name: "1. Register exist containers"
shell: echo $(vzlist -a {{ item.value.vmid }})
register: command
when: openvz_check == "yes"
loop: "{{ lookup('dict', openvz_instances) }}"
ignore_errors: yes
- name: "2. Create variable from command"
debug: msg="{{ command.results | map(attribute='stderr_lines') | list }}"
when:
- openvz_check == "yes"
- command.results | map(attribute='stderr') | list != ""
loop: "{{ lookup('dict', openvz_instances) }}"
ignore_errors: yes
- debug: msg="{{ command.results | map(attribute='stderr_lines') |list }}"
Дебаг
command.results | map(attribute='stderr') | list
:
DEBUGok: [projectname-OPENVZHOST-S1] => {
"msg": [
[],
[]
]
}
Прошу помочь советом или решением как вы его видите.
PS: есть идея создать папку, а затем проверить, существует она или нет, но не знаю, как соотносить ее существование с items из словаря.