有什么办法可以得到 vagrant
来循环浏览目录并对文件进行操作?
我刚刚在我的Vagrantfile中添加了这一行。
config.ssh.private_key_path = ".vagrant/machines/demo#{i}/virtualbox/private_key', '~/.ssh/id_rsa"
这些是同样的其他部分 Vagrantfile
(1..3).each do |i|
config.vm.define "demo#{i}" do |config|
config.vm.box = "bento/ubuntu-16.04"
config.vm.box_version = "202002.04.0"
config.vm.hostname = "demo#{i}"
config.vm.network :private_network, ip: "10.0.0.#{i + 10}"
config.vm.network :public_network, bridge: "en0: Wi-Fi (Wireless)"
config.ssh.forward_agent = true
config.vm.synced_folder '.', '/vagrant', disabled: true
config.vm.synced_folder "demo/shared", "/vagrant/shared"
config.vm.synced_folder "demo/dual", "/vagrant/dual"
config.ssh.private_key_path = ".vagrant/machines/demo#{i}/virtualbox/private_key, ~/.ssh/id_rsa"
config.vm.provider "virtualbox" do |vb|
vb.customize ["modifyvm", :id, "--cpuexecutioncap", "50"]
#vb.gui = true
vb.memory = "2096"
vb.cpus = "2"
end
end
end
end
但是运行 vagrant reload
错与 * `private_key_path` file must exist: .vagrant/machines/demo1/virtualbox/private_key', '~/.ssh/id_rsa
这很有趣,因为路径和文件肯定存在。
pwd ; ls -R
/Users/xxx/.vagrant/machines
demo1 demo2 demo3
./demo1/virtualbox:
action_provision action_set_name box_meta creator_uid private_key id synced_folders
./demo2/virtualbox:
action_provision action_set_name box_meta creator_uid private_key id synced_folders
./demo3/virtualbox:
action_provision action_set_name box_meta creator_uid private_key id synced_folders
我希望vagrant能在每个目录中循环,然后读取文件
有什么办法让vagrant做到这一点吗?
所以我发现了它的问题所在,我只需要添加额外的引号。
config.ssh.private_key_path = ".vagrant/machines/demo#{i}/virtualbox/private_key, ~/.ssh/id_rsa"
变成了
config.ssh.private_key_path = ".vagrant/machines/demo#{i}/virtualbox/private_key", "~/.ssh/id_rsa"
而且它的效果很好。