Загрузка файла из SVN с помощью Chef в Windows
-
21-12-2019 - |
Вопрос
У меня не получается заставить шеф-повара загрузить файл, который мне нужен в рецепте, с сервера 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.