2013-07-05 3 views
2

Я пытаюсь запустить рецепт шеф-повара, который будет устанавливать SVN на клиенте Ubuntu, а затем проверить репозиторий SVN-subversion на клиентскую машину. Ниже приведен код:Рецепт шеф-повара, чтобы сделать SVN Checkout

#Installing svn 
package "subversion" do 
action :install 
end 

#Checkout SVN repo 
bash "Checking out Antitheft Repository" do 
cwd "#{Chef::Config[:file_cache_path]}" 
code <<-EOH 
svn co --username 'userxxx' --password 'passxxx' 'http://example.com/svn/trunk/yyy' 
EOH 
end 

Команда

svn co --username 'userxxx' --password 'passxxx' 'http://example.com/svn/trunk/yyy' 

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

Что здесь не так?

+0

Вы можете установить уровень протоколирования для отладки (с помощью файла client.rb) и вставьте вывод из консоли? –

+0

Я довольно новичок в поваре, не могли бы вы рассказать мне, где находится этот файл. поскольку «locate client.rb» перечисляет несколько экземпляров для него –

+1

Он должен быть в/etc/chef/ –

ответ

2

Просто используйте встроенный scm ресурса:

package "subversion" 

subversion "Antitheft" do 
    repository "http://example.com/svn/trunk/yyy" 
    destination "#{Chef::Config[:file_cache_path]}/antitheft" 
    svn_username "userxxx" 
    svn_password "passxxx" 
end 
+0

И вы можете улучшить это дальше, используя зашифрованные данные для хранения учетных данных subversion. –

+1

Или еще лучше: chef-vault (https://github.com/Nordstrom/chef-vault) – StephenKing

+0

Что делать, если он находится в локальном файле? – pitchblack408