LINUX.ORG.RU
ФорумAdmin

ansible для всех ssd дисков в системе выполнить команду

 


0

2

Собственно, есть система с неизвестным количеством SSD/HDD дисков.

Для всех SSD хочу выполнить команду.

Как достичь желаемого?

Есть факты узла: Могу напечатать:

        - debug: var=hostvars[inventory_hostname ['ansible_devices']['sda']['rotational']

Понятно, что если 0, то SSD, если 1 то HDD

Как это обернуть всё в список (сколько дисков заранее не известно) и выполнить ряд действий для всего того что содержит в качестве rotational, значение: 0?

Только чтобы без костылей ядерных...

★★★★★

Ответ на: комментарий от kernelpanic

Благодарю! Очень похоже на то, что нужно. Только пока не могу понять, как extractом этим, парсить json от фактов хоста? То есть, парсить не просто файлы, а факт о хосте.

DALDON ★★★★★
() автор топика
Последнее исправление: DALDON (всего исправлений: 1)

со своей колокольни хочу сказать, что если тебе нужно в ansible выполнять таски по условиям, то ты просто используешь не тот chef\puppet.
реально, какого хрена может возникнуть ситуация, когда ты не знаешь что там за диски и желаешь это пограмировать на yaml? питон с рубями слишком лёгок стал и хочется экстрима в жизни?

system-root ★★★★★
()
Последнее исправление: system-root (всего исправлений: 1)

Показал бы пример как выглядят факты

Но лорчую нужно что-то вроде

task:
  - name: do some task
    shell: 'your command' {{ item }}
    with_items: {{ hostvars[inventory_hostname]['ansible_devices']  }}
    when: {{ hostvars[inventory_hostname]['ansible_devices']["{{ item }}"]['rotational'] = 0

SANTA_CLAUS ★★
()
Ответ на: комментарий от SANTA_CLAUS

Опа! Спасибо! Погляжу. Да показывать нечего, самые обычные факты, но нету опыта и понимания как этим пользоваться добром. Про библиотеку для работы с json из python - здорово мне подсказали, изучаю пока.

Ваш пример возьму на вооружение! Спасибо!

DALDON ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.