条件
-
流浪汉2.0.1
-
漫游框:ubuntu/xenial64
-
设置:ansible
流浪者档案
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/xenial64"
config.vm.box_download_insecure = true
config.vm.define "foobar"
config.vm.provider "virtualbox" do |provider|
provider.name = "foobar"
provider.customize [ "modifyvm", :id, "--uartmode1", "disconnected" ]
end
config.vm.network "private_network", ip: "192.168.5.4"
config.vm.hostname = "foobar.dev"
config.hostsupdater.aliases = ["pma.foobar.dev","readis.foobar.dev"]
config.vm.synced_folder ".", "/vagrant", type: "nfs"
config.vm.provision "Installing 'vagrant'", type: "ansible_local" do |provisioner|
provisioner.playbook = "/vagrant/env/ansible/install-vagrant.yml"
provisioner.inventory_path = "/vagrant/env/ansible/inv/integration/hosts"
provisioner.limit = "localhost"
end
end
问题
可以看到,我的guest上运行了3台nginx主机。我使用ansible将这3个单独的配置(启用的站点)从来宾系统符号链接到主机系统,ansible等于
sudo ln -s /vagrant/path/to/dist.conf /etc/nginx/sites-enabled/dist.conf
当我第一次
vagrant up
我的盒子站点是可访问的,因为在资源调配结束时,我会重新启动
nginx
服务但一旦我停下盒子,再次打开它,网站就无法访问,但
nginx公司
服务正在运行。然后,我可以重新启动
nginx公司
壳牌的服务和一切都很好。
原因
我发现当时
nginx公司
服务启动同步
/vagrant
尚未装入文件夹。这个
nginx公司
无论是否可以解决符号链接配置,服务仍会正常启动。
问题
我可以设置一个始终运行的provision shell脚本,该脚本将重新启动
nginx公司
在每个
流浪者向上
.但这不是我想要的解决方案。
是否有一种方法可以在
/流浪汉
文件夹是否已装入?我可以想象
xyz.d
我可以在文件夹中放置脚本,脚本将使用所有必要的参数执行,以识别流浪装载。
编辑(2018-04-25)
我不想依赖Vagrant的机制,如插件或进一步的配置脚本。我最近从配置shell脚本更改为Ansible,同时我希望对Docker或其他部署机制使用相同的配置。我可以想象Docker的坐骑也有同样的问题。
编辑(2018-04-27)
Launching services after Vagrant mount
我发现@razius的这篇文章也有同样的问题。解决方案不是最新的,我得到提示,要寻找
systemd
相当于他的解决方案。但我对它不熟悉。所以有人可以帮我。