Вопрос

У меня не получается заставить шеф-повара загрузить файл, который мне нужен в рецепте, с сервера SVN.

subversion "download installer" do
  repository "http://svnrepourl/path/to/installer.msi"
  revision "HEAD"
  destination "C:\\chef-repo\\cookbooks\\common\\files"
  action :export
  svn_username "username"
  svn_password "password"
end

Вот результат выполнения шеф-клиента:

Compiling Cookbooks...
Converging 1 resources
Recipe: common::svntest
  * subversion[download installer] action export[2014-01-09T14:41:42-05:00] INFO
: Processing subversion[download installer] action export (common::svntest line
12)
 (up to date)
[2014-01-09T14:41:42-05:00] INFO: Chef Run complete in 1.482104 seconds
[2014-01-09T14:41:42-05:00] INFO: Running report handlers
[2014-01-09T14:41:42-05:00] INFO: Report handlers complete
Chef Client finished, 0 resources updated

Строка 12 — «subversion «загрузить установщик» do».Не очень полезный вывод — я понятия не имею, что здесь происходит под капотом.Он не загружает файл нигде в моей системе — каталог назначения пуст.

Запуск этой команды работает нормально:

svn export -r HEAD http://svnrepourl/path/to/installer.msi --username username --password password C:\chef-repo\cookbooks\common\files

Он успешно загружает файл с сервера и помещает его в место назначения.Теперь я могу просто написать эту команду в блоке выполнения, но мне бы хотелось сделать это способом Chef.Как я могу загрузить определенный файл из репозитория SVN в Windows?

Это было полезно?

Решение

Похоже, это ошибка в Chef, задокументировано. здесь.

Чтобы понять это, я побежал chef-client -l debug > log.txt, что привело меня к этим строкам:

[2014-01-10T09:35:00-05:00] INFO: Processing subversion[download installer] action export (common::svntest line 12)
[2014-01-10T09:35:00-05:00] DEBUG: subversion[download installer] export destination C:\chef-repo\cookbooks\common\files already exists or is a non-empty directory - nothing to do

Похоже, что ресурс подрывной деятельности Chef требует в качестве места назначения пустой каталог (пункт назначения, который я указал в OP, содержит одну папку).Обратите внимание, что это нет случай с командой оболочки svn - с ее помощью мне удалось успешно экспортировать в непустой каталог.

На этом этапе я собираюсь просто использовать ресурс выполнения, чтобы получить нужный мне файл, и надеюсь, что Opscode исправит эту давнюю ошибку.

Особая благодарность IRC-сообществу Chef.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top