厨师冻结在stream浪的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 。 通常这是造成这种情况的常见原因。

在stream浪者文档config.ssh.pty我们可以读取:

此设置是一项高级function,除非绝对必要,否则不应启用。 它打破了Vagrant的一些其他特征,而且只有在绝对必要的情况下才会暴露。 如果你能find一个不使用pty的方法,那就推荐使用它。

因为我有类似的问题与apt-get 。


疑难排除挂起

  • 在Unix / OS X上,您可以按Ctrl + T来检查进程状态(为什么它正在处理)
  • 运行(如果需要安装lldb ):

     echo "call (void)rb_backtrace()" | lldb -p $(pgrep -fn ruby) 

    在前台打印Ruby backtrace(也可以使用gdb

  • 执行日志logging,例如: vagrant --debug up 2> frozen.log和工作configuration到works.log ,然后与diff工具进行比较

  • 在Unix / OS X上运行: sudo dtruss -fn ruby (或vagrant ),在Linux上使用strace / ltrace来debugging进程
  • 看: 检查为什么ruby脚本挂起更多的build议