Имею коробку centos-6.5. Как ни странно, он зависает, когда я пытаюсь запросить его у шеф-повара.
Вот пример того, что происходит, когда я пытаюсь vagrant provision --debug
Это
[2014-10-10T20:33:33+00:00] INFO: Processing remote_file[/etc/yum.repos.d/devtools.repo] action create (vidya_client::default line 7)
DEBUG ssh: stdout: [2014-10-10T20:33:34+00:00] INFO: Processing yum_package[devtoolset-1.0-gcc-c++.x86_64] action install (vidya_client::default line 15)
INFO interface: info: [2014-10-10T20:33:34+00:00] INFO: Processing yum_package[devtoolset-1.0-gcc-c++.x86_64] action install (vidya_client::default line 15)
[2014-10-10T20:33:34+00:00] INFO: Processing yum_package[devtoolset-1.0-gcc-c++.x86_64] action install (vidya_client::default line 15)
DEBUG ssh: stdout: [2014-10-10T20:33:34+00:00] INFO: yum_package[devtoolset-1.0-gcc-c++.x86_64] installing devtoolset-1.0-gcc-c++-4.7.0-5.3.el6.x86_64 from testing-devtools-6 repository
INFO interface: info: [2014-10-10T20:33:34+00:00] INFO: yum_package[devtoolset-1.0-gcc-c++.x86_64] installing devtoolset-1.0-gcc-c++-4.7.0-5.3.el6.x86_64 from testing-devtools-6 repository
[2014-10-10T20:33:34+00:00] INFO: yum_package[devtoolset-1.0-gcc-c++.x86_64] installing devtoolset-1.0-gcc-c++-4.7.0-5.3.el6.x86_64 from testing-devtools-6 repository
DEBUG ssh: Sending SSH keep-alive...
DEBUG ssh: Sending SSH keep-alive...
DEBUG ssh: Sending SSH keep-alive...
DEBUG ssh: Sending SSH keep-alive...
DEBUG ssh: Sending SSH keep-alive...
DEBUG ssh: Sending SSH keep-alive...
DEBUG ssh: Sending SSH keep-alive...
DEBUG ssh: Sending SSH keep-alive...
И продолжается и продолжается вечно.
Мой рецепт довольно простой.
yum_package "wget"
yum_package "gcc-c++.x86_64"
yum_package "openssl-devel.x86_64"
yum_package "libcurl-devel.x86_64"
yum_package "httpd"
remote_file "/etc/yum.repos.d/devtools.repo" do
source "http://people.centos.org/tru/devtools/devtools.repo"
end
yum_package "devtoolset-1.0-gcc-c++.x86_64"
Я обнаружил, что способ добавления репозитория devtools был неправильным. Импортируя поваренная книга вкусняшки и выполнив следующее изменение, все прошло нормально.
yum_repository 'testing-devtools' do
baseurl 'http://people.centos.org/tru/devtools/$releasever/$basearch/RPMS'
description 'testing devtools for CentOS $releasever'
gpgcheck false
action :create
end
yum_package "devtoolset-1.0-gcc-c++.x86_64"
Попробуйте отключить:
config.ssh.pty
вариант из вашего Vagrantfile
. Обычно это частая причина таких зависаний.
В Vagrant docs для config.ssh.pty мы можем прочитать это:
Этот параметр является дополнительной функцией, которую не следует включать без крайней необходимости. Он нарушает некоторые другие функции Vagrant и действительно доступен только в тех случаях, когда это абсолютно необходимо. Если вы можете найти способ не использовать pty, рекомендуется это сделать.
Поскольку у меня была аналогичная проблема с apt-get.
запустить (установить lldb
если нужно):
echo "call (void)rb_backtrace()" | lldb -p $(pgrep -fn ruby)
чтобы напечатать обратную трассировку Ruby на переднем плане (вы можете использовать gdb
также)
выполнить регистрацию, например: vagrant --debug up 2> frozen.log
и рабочая конфигурация для works.log
, затем сравните с инструментом сравнения
sudo dtruss -fn ruby
(или vagrant
), в Linux используйте strace
/ltrace
отладить процесс