Vagrant
廚師在流浪的centos盒子上凍結
我有一個 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 食譜並執行以下更改,一切正常。
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
. 通常這是這種掛起的常見原因。在config.ssh.pty的 Vagrant 文件中,我們可以讀到:
此設置是一項高級功能,除非絕對必要,否則不應啟用。它破壞了 Vagrant 的其他一些特性,並且只在絕對必要的情況下才暴露出來。如果您能找到不使用 pty 的方法,那麼建議您使用它。
因為我有類似的問題apt-get。
vagrant 掛起故障排除
- 在 Unix/OS X 上,您可以按
Ctrl+T
檢查程序狀態(為什麼正在處理)- 執行(
lldb
如果需要安裝):echo "call (void)rb_backtrace()" | lldb -p $(pgrep -fn ruby)
在前台列印 Ruby 回溯(您也可以使用
gdb
)
- 執行日誌記錄,例如:
vagrant --debug up 2> frozen.log
和工作配置works.log
,然後與差異工具進行比較- 在 Unix/OS X 上執行:(
sudo dtruss -fn ruby
或vagrant
),在 Linux 上使用strace
/ltrace
來調試程序- 請參閱:檢查為什麼 ruby 腳本掛起以獲取更多建議