Шеф-повар - запрос YUM Repo beforepkg install

89
9

Я хотел бы запросить его YUM-репо, прежде чем я вызову блок установки, чтобы убедиться, что pkg доступен

Я использую следующий код в начале моего получателя

ruby_block 'shellout' do
block do
cmd = Mixlib::ShellOut.new('yum search httpd | grep -w httpd.x86_64 |tr -d "\n\r"'
cmd.run_command
Chef::Log.warn("printing #{cmd.stdout}")
if cmd.stdout =~ /httpd/i
Chef::Log.warn("pkg found in yum #{cmd.stdout}")
elsif cmd.stdout =~ /error/i
Chef::Log.warn("yum returned an error #{cmd.stdout}")
else
Chef::Log.warn("pkg not in repo ? yum search returns #{cmd.stdout}")
end
end
end

однако, несмотря на то, что pkg находится в репо, код не работает.

1) Что я делаю неправильно?

2) Есть ли более простой способ сделать это?

3) Если ответ "потому что ваш код не работает во время выполнения, как заставить его работать во время выполнения Cf?

Спасибо

спросил(а) 2021-01-25T17:31:09+03:00 4 месяца, 2 недели назад
1
Решение
64

На самом деле это не так, как работает Шеф-повар. Вы не реагируете на состояние системы, вы заявили, что это должно быть, и тогда Шеф-повар навязывает это. Путь вниз в глубине он выполняет цикл тестирования и ремонта, но высокий уровень, если пакет должен быть установлен, то используйте ресурс package. Если вам нужно сначала настроить конкретное репо, у нас есть ресурс yum_repository. Если это нужно настроить для каждого узла (или для каждой роли, что лучше), возможно, используйте атрибут узла, чтобы сделать весь раздел условным.

ответил(а) 2021-01-25T17:31:09+03:00 4 месяца, 2 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема