Как выполнить dpkg-запрос в chef 14?

#ruby #chef-infra #chef-recipe

#ruby #chef-инфра #шеф-рецепт

Вопрос:

Может кто-нибудь сообщить мне, как я могу выполнить приведенную ниже команду, используя chef-14?

dpkg-query --status log-agent | grep -q '^Version: 212121

Я могу найти ресурс dpkg_package. Но ничего для dpkg-query . Я намерен использовать приведенную выше команду в, include_recipe поэтому использование guards для меня не вариант.

Если возможно, я хотел бы избежать shell_out .

Ответ №1:

вы можете выполнить системную команду многими способами … из вашего вопроса неясно, хотите ли вы извлечь выходные данные команды или просто использовать ее в качестве защиты.

если вы хотите только выполнить его, вы можете использовать execute , bash и даже ruby_block для его достижения.

Комментарии:

1. Мне нужно знать, является ли log-agent установленная версия 212121

2. @tuk: а если это не так 212121 , вы, вероятно, хотите что-то сделать (или не делать)… поэтому используйте защиту….

3. Я хочу сделать include_recipe , если версия не 212121 . Я думаю, что guard не работает с include_receipe .