我已经用这个 vagrantfile 设置了一个 vagrant box:
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure(2) do |config|
config.vm.box = "puphpet/debian75-x64"
config.vm.synced_folder "../.", "/kweetet", id: "vagrant-root",
owner: "vagrant",
group: "www-data",
mount_options: ["dmode=777,fmode=777"]
config.vm.network "forwarded_port", guest: 80, host: 8080
# install packages
config.vm.provision "chef_solo" do |chef|
chef.cookbooks_path = ["./cookbooks", "./dk_cookbooks"]
chef.add_recipe "nginx"
chef.json = {
"nginx" => {
"init_style" => "upstart"
}
}
end
end
当我vagrant up
第一次启动机器时,nginx 服务会自动启动,因为执行了配置。但是当我再次halt
启动机器时up
,我必须手动启动 nginx 服务器。
所以我的问题是:如何配置我的 nginx 配方以便它在系统启动时自动启动 nginx?
更新
我按照 Tejay 的建议将其包含在自定义食谱中,但它不起作用:
# make a daemon for nginx
service 'nginx' do
action :enable
end
当我停止并重新启动计算机时,nginx 不会自动启动。我的自定义配方包含在 vagrant 运行列表中,我确信它运行正确,因为其中的其他操作运行良好。
有任何想法吗?
答案1
您需要将一个配方添加到运行列表中,该配方将用于:enable
nginx 服务。upstart 的默认 nginx 配方仅用于此:start
。
答案2
很奇怪,但是当我将它放入我的自定义食谱中时,它就起作用了:
service 'nginx' do
action [ :enable, :start ]
end
我认为:enable
单独设置操作就足以在启动时启动服务器