Vagrant

廚師在流浪的centos盒子上凍結

  • August 7, 2015

我有一個 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 rubyvagrant),在 Linux 上使用strace/ltrace來調試程序
  • 請參閱:檢查為什麼 ruby​​ 腳本掛起以獲取更多建議

引用自:https://serverfault.com/questions/635177