2016-04-11 2 views
1

Я пытался загрузить файл newrelic-5-3.rpm, а затем попытаюсь установить пакет в моем chef receipe. Я получаю следующее исключение при попытке запустить кухня проверитьОшибка выполнения действия `install` on resource 'yum_package [newrelic-repo]'

Chef::Exceptions::Package 
     ------------------------- 
     Package newrelic-repo not found: https://download.newrelic.com/pub/newrelic/el5/i386/newrelic-repo-5-3.noarch.rpm 

Мой рецепт:

remote_file "newrelic.rpm" do 
    source "https://download.newrelic.com/pub/newrelic/el5/i386/newrelic-repo-5-3.noarch.rpm" 
    owner 'root' 
    group 'root' 
    mode 0755 
end 

package "newrelic-repo" do 
    source "https://download.newrelic.com/pub/newrelic/el5/i386/newrelic-repo-5-3.noarch.rpm" 
    action :install 
end 

Команды

yum -y install https://download.newrelic.com/pub/newrelic/el5/i386/newrelic-repo-5-3.noarch.rpm 
yum -y install newrelic-sysmond 

Однако, когда я пытаюсь запустить команды индивидуально как пользователь root в поле rhel-67, я смог установить их успешно. Может ли кто-нибудь помочь мне разобраться, где я ошибаюсь в своем рецепте, и я предполагаю, что я могу дать неправильное исходное местоположение на ресурсе пакета в своем рецепте, и я застрял здесь.

+0

Может ли «источник» в рецепте быть удаленным URL-адресом? Документация, которую я вижу, кажется, не указывает, что она может. –

+0

@EtanReisner Я думаю, мы могли бы использовать, как я заметил из примера в документе chef для файла remote_file https://docs.chef.io/resource_remote_file.html, но я согласен, что он должен быть объявлен в атрибутах и ​​получить доступ к нему в рецепте. Я изменил это.Спасибо – bablu

+0

'remote_file' и' package' - это не одно и то же. И 'remote_file' звучит точно так же, как я предполагаю, чтобы запись' source' в 'package' работала ... так же, как указывал ответ. –

ответ

0

Свойство sourceyum_package resource не является URL-адресом, а является каталогом локальной файловой системы.

Вы должны указать его в том месте, где вы загружаете его с помощью ресурса remote_file. Я бы рекомендовал абсолютный путь.

E.g.

remote_file "/tmp/newrelic.rpm" do 
    source "https://download.newrelic.com/pub/newrelic/el5/i386/newrelic-repo-5-3.noarch.rpm" 
    owner 'root' 
    group 'root' 
    mode 0755 
end 

package "newrelic-repo" do 
    source "/tmp/newrelic.rpm" 
    action :install 
end 
+0

Спасибо, что исправил меня. Я смог установить пакет успешно, исправив местоположение. Но мне любопытно узнать, какой путь обычно рассматривается для установки пакетов в Rhel. всегда было бы «/ tmp». Я также заметил «# {Chef :: Config ['file_cache_path]], определенный в некоторых рецептах в местоположении пути, и не уверен, указывает ли это на местоположение/tmp или другое место. не могли бы вы посоветовать мне об этом и что соответствует файлу_cache_path. Спасибо за ваше время. – bablu

Смежные вопросы