Использование ресурса package
или одного из связанных с ним ресурсов, в данном случае rpm_package
, было бы оптимальным способом обработки этого конкретного случая. Тем не менее, вы должны посмотреть на Guards для ресурсов Chef.
В вашем случае rpm -qa | grep ssm
- правильная команда, но вам нужно использовать not_if
для защиты от установки. Например:
not_if 'rpm -qa | grep ssm'
Когда строка передается охраннику, она запускается как команда оболочки. Результат команды оболочки (true
или false
) определяет, будет ли ресурс работать на основе типа защиты (only_if
для защиты возвращается true или not_if
для защиты возвращает true). Вам также следует ознакомиться с различными опциями Guard Interpreters , поскольку сценарии оболочки - не единственная опция.