Chef 在 vagrant centos box 上冻结

Chef 在 vagrant centos box 上冻结

我有一个 centos-6.5 盒子。奇怪的是,当我尝试请求 chef 提供它时,它冻结了。

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"

答案1

我发现我添加 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"

答案2

尝试禁用:

config.ssh.pty

选项Vagrantfile。通常这是此类挂起的常见原因。

在 Vagrant 文档中配置.ssh.pty我们可以读到:

此设置是一项高级功能,除非绝对必要,否则不应启用。它会破坏 Vagrant 的一些其他功能,并且实际上仅在绝对必要的情况下才会公开。如果您能找到不使用 pty 的方法,则建议改用 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,然后使用 diff 工具进行比较

  • 在 Unix/OS X 上运行:sudo dtruss -fn ruby(或vagrant),在 Linux 上使用strace/ltrace来调试进程
  • 看:检查 ruby​​ 脚本挂起的原因更多建议

相关内容