Объедините результаты в отладочный вывод с нескольких хостов - PullRequest
0 голосов
/ 10 апреля 2019

Я пытаюсь ввести список хостов, затем код проверит, какие системы имеют пространство более 1 ГБ в / и менее 1 ГБ, и отобразит вывод.Вывод, который я получаю, является хост-мудрым, как это: - Токовый вывод: -

ok: [hostname1.com] => {
    "msg": "hostname1.com : Space is more than 1GB"
}
ok: [hostname2.com] => {
    "msg": "hostname2.com : Space is less than 1GB"
}
ok: [hostname3.com] => {
    "msg": "hostname3.com : Space is more than 1GB"

Я хочу сгруппировать вывод как, системы, пространство которых больше, сгруппированы и отображаются, кромесистемы, в которых меньше места, например: - (необходимый выход)

ok: [hosts] => {
    "msg": "hostname1.com : Space is more than 1GB"
           "hostname2.com : Space is more than 1GB"
}
ok: [hosts] => {
    "msg": "hostname3.com : Space is less than 1GB"
           "hostname4.com : Space is less than 1GB"

Мой код:

    - name: Check the space in /
      shell: df -h /  | grep [0-9]%  | awk '{ print 0+$4 }'
      register: space

    - debug:
       msg: "{{ inventory_hostname }} : Space is more than 1GB"
      when: (space.stdout| int) > 1
    - debug:
       msg: "{{ inventory_hostname }} : Space is less than 1GB"
      when: (space.stdout| int) < 1

1 Ответ

0 голосов
/ 11 апреля 2019

Задача ниже создает список хостов с пространством менее 1G. Возможно, вы захотите отформатировать его под свои нужды.

- name: Create a list of hosts with space less than 1GB
  when: hostvars[item].space.stdout|int < 1
  set_fact:
    hosts_less_1gb: "{{ hosts_less_1gb|default([]) + [ item ] }}"
  loop: "{{ play_hosts }}"
  run_once: true

(не тестировалось)

...