您好我尝试使用vagrant和ansible来配置我的盒子,但我总是遇到/vagrant/ansible/playbook.yml缺失。它正在寻找/ vagrant目录。当我在我的盒子里ssh时,/ vagrant不存在。我不知道发生了什么,但我所做的是将我的所有本地副本同步到我框内的特定文件夹位置。以下是我做过的示例实现
Vagrant.configure("2") do |config|
config.vm.define "ans", primary: true do |ans|
ans.vm.box = "ubuntu/xenial64"
ans.vm.network "forwarded_port", guest: 80, host: 8080
ans.vm.network "private_network", ip: "10.8.9.20", auto_network: true
ans.vm.synced_folder ".", "/var/www/"
ans.vm.hostname = "my_project"
ans.vm.provision "pre-build", type: "shell", :path => "ansible/bootstrap.sh"
ans.vm.provision "ansible_local" do |ansible|
ansible.playbook = "ansible/playbook.yml"
end
end
end
我在ansible.playbook = "ansible/playbook.yml"
中收到错误,似乎此行正在查看不存在的/ vagrant文件夹。解决方法或解决方法是什么?我的剧本存在于框内的/var/www/ansible/playbook.yml
位置
答案 0 :(得分:0)
默认情况下,vagrant会自动从当前目录中添加一个共享文件夹,并在VM上添加/vagrant
文件夹。
因为您已添加
ans.vm.synced_folder ".", "/var/www/"
当前文件夹共享文件夹已从/vagrant
替换为/var/www
(您可以通过删除vagrantfile中的行来轻松验证)
您真的需要将整个当前文件夹与/var/www
同步吗?理想情况下,您将项目文件放在您将在/var/www
中共享的子目录中
ans.vm.synced_folder "html/", "/var/www/"
并将所有html / csss / js文件推送到html文件夹下(随意重命名项目或其他内容),您不需要将所有流浪脚本和配置脚本与Web服务器文件夹同步。