Бродяга не перебирает каталоги - PullRequest
0 голосов
/ 04 мая 2020

Есть ли способ получить vagrant до l oop через каталоги и выполнить действия с файлами?

Я только что добавил эту строку в свой 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 просто проведет l oop через каждый каталог и прочитает файлы

Есть ли способ заставить vagrant сделать это?

1 Ответ

0 голосов
/ 04 мая 2020

Итак, я обнаружил, что с ним не так. Мне просто нужно было добавить дополнительные кавычки.

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"

И это работает шарм.

...