Команда,
У меня есть задача, которая извлекает хосты из вывода json_query stdoud_lines.
Затем я зацикливаюсь на каждом имени хоста и выполняю sshКоманды подключения плюс оболочки на каждом из этих хостов.
Наконец, чтобы вывести выходные данные каждого хоста, я отлаживаю результаты. [i] для каждого хоста. Есть ли способ я могу зациклить на результатах [i], где я = моя динамическая переменная, имеющая запись хоста? Я хочу зациклить на отладке. Любая подсказка, пожалуйста?
задача: "ssh и запустить команду оболочки и вручную перечислить результаты каждого хоста"
- name: "RAID mount check for fscache on GPU Nodes"
shell: ssh -F {{ ssh_cfg_path.stdout }} {{ item.node_name }}.{{ ssh_host }} "df -kh /raid/"
ignore_errors: no
register: raid_info
failed_when: raid_info.rc != 0
with_items: "{{ gpu_nodes }}"
- name: raid_info result
debug:
var: raid_info
- name: raid_info results0_stdout_lines
debug:
var: raid_info.results[0].stdout_lines
- name: raid_info results1_stdout_lines
debug:
var: raid_info.results[1].stdout_lines
вывод:
TASK [team-services-pre-install-checks : raid_info results0_stdout_lines] ****
Friday 25 October 2019 17:03:07 +0000 (0:00:00.041) 0:00:25.292 ********
ok: [localhost] => {
"raid_info.results[0].stdout_lines": [
"Filesystem Size Used Avail Use% Mounted on",
"/dev/sdb1 7.0T 175G 6.5T 3% /raid"
]
}
TASK [team-services-pre-install-checks : raid_info results1_stdout_lines] ****
Friday 25 October 2019 17:03:07 +0000 (0:00:00.040) 0:00:25.333 ********
ok: [localhost] => {
"raid_info.results[1].stdout_lines": [
"Filesystem Size Used Avail Use% Mounted on",
"/dev/sdb1 7.0T 176G 6.5T 3% /raid"
]
}
Ниже подход не работаетили перечисляет любой вывод.
- name: raid_info results loop over all hosts output/result
debug:
var: raid_info.results[{{ item }}].stdout_lines
with_items: "{{ raid_info }}"
Я думаю, что мне нужно использовать hostvars, но я новичок и не знаю, как поставить.