$ENALBE_SYNC_FOLDER = false $ENALBE_SYNC_FOLDER = true if File.exist?("sync_shared") $HOST_NET = File.readlines('net').first.chomp $VM_NAME = File.readlines('vmname').first.chomp $VM_MEM = File.readlines('vmmem').first.chomp.to_i $VM_VCPU = File.readlines('vmcpu').first.chomp.to_i $BOX = File.readlines('box').first.chomp $PROVIDER = File.readlines('provider').first.chomp if $PROVIDER =~ /hyperv|virtualbox/ ENV["VAGRANT_DEFAULT_PROVIDER"] = $PROVIDER end # Will not work on Hyper-V #$VM_DISK_SIZE = File.readlines('disksize').first.chomp $PROVISION_SSH_KEY_SCRIPT=<> /root/.ssh/authorized_keys chmod 0600 /root/.ssh/authorized_keys chown root:root -R /root/.ssh mkdir -p /home/vagrant/.ssh chmod 0700 /home/vagrant/.ssh echo /home/vagrant/.ssh/vagrant.pub >> /home/vagrant/.ssh/authorized_keys chmod 0600 /home/vagrant/.ssh/authorized_keys chown vagrant:vagrant -R /home/vagrant/.ssh EOF Vagrant.configure("2") do |config| config.vm.box = $BOX ## Remember to generate the vagrant private key. ## ssh-keygen -f C:\Users\eliezer\.ssh\vagrant config.ssh.insert_key = false config.ssh.private_key_path = ['~/.ssh/vagrant', '~/.vagrant.d/insecure_private_key' ] config.vm.provider "hyperv" do |hv, override| hv.vmname = $VM_NAME hv.maxmemory = $VM_MEM hv.memory = $VM_MEM hv.cpus = $VM_VCPU override.vm.allowed_synced_folder_types = [:rsync] end config.vm.network "public_network", bridge: $HOST_NET config.vm.synced_folder ".", "/vagrant", disabled: true if $ENALBE_SYNC_FOLDER == true config.vm.synced_folder "shared/", "/vagrant", type: "rsync" end config.vm.provision "file", source: "~/.ssh/vagrant.pub", destination: "/home/vagrant/.ssh/vagrant.pub" config.vm.provision 'shell', inline: $PROVISION_SSH_KEY_SCRIPT end