Конфигурация Vagrant Shared Folder - PullRequest
       35

Конфигурация Vagrant Shared Folder

0 голосов
/ 15 февраля 2019

Я бы хотел монтировать общие папки динамически, получая данные из файла YAML.

Я пробовал разные методы, но ни один из них не подходит.

Это соответствующий код:

Vagrant.configure("2") do |config|
  config.vm.synced_folder 'site/project/templates/' , '/tmp/vagrant-puppet/templates'
  config.vm.synced_folder 'site/project/lib/facter', '/var/lib/puppet/lib/facter', create: 'true'
  config.vm.synced_folder 'site/project/lib/puppet/parser/functions', '/var/lib/puppet/parser/functions', create: 'true'
  config.vm.synced_folder '.', '/vagrant', create: 'true', owner: 'root', group: 'root'
  config.vm.synced_folder '~/projects', '/root/projects'

  {
    :'onebox' => {
      :os         => 'Ubuntu1404',
      :puppetmode => 'apply',
      :ip         => "192.168.56.120",
      :public_network   => false,
      :manifest_file => 'site.pp',
      :autostart  => true
    },
  }.each do |name,cfg|

    config.vm.define name , autostart: cfg[:autostart] do |local|

      vagrantconfig = YAML.load(File.open(File.join(File.dirname(__FILE__), "vagrantconfig.yaml"), File::RDONLY).read)

      if vagrantconfig
        cfg[:ram] = vagrantconfig["ram"]
        cfg[:cpus] = vagrantconfig["cpus"]
        cfg[:public_network] = vagrantconfig["public_network"]
      else
        puts "no vagrantconfig.yaml found, skipping custom local settings"
      end

Я хотел бы заменить

config.vm.synced_folder '~/projects', '/root/projects'

на

if cfg[:synced_folder]
 config.vm.synced_folder cfg[:synced_folder], '/root/projects'
end

или что-то подобное.

Я уже пытался вставить вif vagrantconfig заявление, но не сработало

...