我正在尝试使用 Vagrant/VirtualBox 在本地 VM 上设置 Chef 服务器。我的 Vagrantfile 是:
Vagrant.configure(2) do |config|
config.vm.box = "ubuntu/trusty64"
config.vm.hostname = "dtom-chef-server"
config.vm.provision :shell, path: "bootstrap.sh"
config.vm.network :forwarded_port, host: 4567, guest: 80
end
我的bootstrap.sh脚本如下:
# Set hostname and FQDN
hostnamectl set-hostname dtom-chef-server
IPADDR="$(ifconfig eth0|grep -Po 't addr:\K[\d.]+')"
sed "s/ip-addr/$IPADDR/g" /vagrant/hosts_orig > /etc/hosts
# Install Chef server
cd && mkdir downloads && cd downloads
wget https://web-dl.packagecloud.io/chef/stable/packages/ubuntu/trusty/chef-server-core_12.0.8-1_amd64.deb
dpkg -i chef-server-core_*.deb
chef-server-ctl reconfigure
一切似乎都运行良好,直到我
==> default: [2015-05-05T19:48:38+00:00] INFO: Processing execute[oc_id_schema] action run (private-chef::oc_id line 130)
==> default:
==> default:================================================================================
==> default: Error executing action `run` on resource 'execute[oc_id_schema]'
==> default: ================================================================================
==> default:
==> default: Mixlib::ShellOut::ShellCommandFailed
==> default: ------------------------------------
==> default: Expected process to exit with [0], but received ''
==> default: ---- Begin output of bundle exec rake db:migrate ----
==> default: STDOUT:
==> default: STDERR: no ruby in PATH/CONFIG
==> default: ---- End output of bundle exec rake db:migrate ----
==> default: Ran bundle exec rake db:migrate returned
安装似乎继续,但我想这就是我收到错误的原因:
==> default: ================================================================================
==> default: Error executing action `restart` on resource 'runit_service[oc_id]'
==> default: ================================================================================
==> default:
==> default:
==> default: Mixlib::ShellOut::ShellCommandFailed
==> default: ------------------------------------
==> default: Expected process to exit with [0], but received '1'
==> default:
==> default: ---- Begin output of /opt/opscode/embedded/bin/sv restart /opt/opscode/service/oc_id ----
==> default:
==> default: STDOUT: fail: /opt/opscode/service/oc_id: unable to change to service directory: file does not exist
最后,虽然我不确定这是否相关,但我得到:
FATAL: Chef::Exceptions::CannotDetermineNodeName: Unable to determine node name: configure node_name or configure the system's hostname and fqdn
然后进程就退出了。我在安装过程中是否遗漏了什么?