Vagrant不在目录中循环

问题描述 投票:0回答:1

有什么办法可以得到 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做到这一点吗?

ruby vagrant vagrantfile vagrant-provision
1个回答
0
投票

所以我发现了它的问题所在,我只需要添加额外的引号。

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"

而且它的效果很好。

© www.soinside.com 2019 - 2024. All rights reserved.