Я хочу запускать операцию parted только в том случае, если на этом устройстве в настоящее время нет разделов.
Указанные части могли быть сделаны ранее или вручную вне ansible в прошлом, и в этом случае их не следует изменять и пропускать задачу.
имя: "Добавить диск" ## это нужно изменить, чтобы пропустить, если какой-либо раздел уже присутствует на этом устройстве
стать истинным
расстались:
устройство: /dev/xvdf
номер 1
состояние: присутствует
флаги: [lvm]
метка: gpt
имя: основной
Однако в настоящее время при запуске этого, даже если раздел уже существует, вносятся изменения, и башня печатает ошибку, подобную приведенной ниже, предполагая, что она вносит изменения (после перезагрузки система перестала загружаться)
"_ansible_no_log": ложь,
"err": "Ошибка: раздел(ы) 1 в /dev/xvdf были записаны, но мы не смогли сообщить ядру об изменении, вероятно, потому, что он/они используются. В результате старый раздел (s) останется в использовании. Вы должны перезагрузиться, прежде чем вносить дальнейшие изменения.\n",
Я надеялся, что это может быть достигнуто с помощью условия when, получающего ansible_fact, подобное приведенному ниже?
когда: ansible_facts.device.xvdf не определен
но я не могу найти правильный факт или синтаксис для этой идеи?
из документации я надеялся, что модуль parted был достаточно идемпотентным, чтобы распознать, существует ли уже раздел и не измениться, но я думаю, что если указанная конфигурация в любом случае отличается, он пытается ее применить
Целевая система — это AWS EC2 с RHEL7, а подключенный диск — это вторичный (без полномочий root) зашифрованный том EBS.