vagrant-almalinux8-hyperv/Vagrantfile

66 lines
1.8 KiB
Ruby
Raw Normal View History

2023-06-05 23:42:26 +03:00
2023-06-06 00:30:05 +03:00
$ENALBE_SYNC_FOLDER = false
2023-06-06 15:22:19 +03:00
$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
2023-06-06 23:16:25 +03:00
$PROVIDER = File.readlines('provider').first.chomp
if $PROVIDER =~ /hyperv|virtualbox/
ENV["VAGRANT_DEFAULT_PROVIDER"] = $PROVIDER
end
2023-06-06 15:22:19 +03:00
# Will not work on Hyper-V
#$VM_DISK_SIZE = File.readlines('disksize').first.chomp
2023-06-06 00:30:05 +03:00
$PROVISION_SSH_KEY_SCRIPT=<<EOF
mkdir -p /root/.ssh
chmod 0700 /root/.ssh
cat /home/vagrant/.ssh/vagrant.pub >> /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
2023-06-05 23:42:26 +03:00
Vagrant.configure("2") do |config|
2023-06-06 15:22:19 +03:00
config.vm.box = $BOX
2023-06-06 00:34:16 +03:00
2023-06-06 15:22:19 +03:00
## Remember to generate the vagrant private key.
## ssh-keygen -f C:\Users\eliezer\.ssh\vagrant
2023-06-06 00:30:05 +03:00
2023-06-06 15:22:19 +03:00
config.ssh.insert_key = false
2023-06-06 00:30:05 +03:00
config.ssh.private_key_path = ['~/.ssh/vagrant', '~/.vagrant.d/insecure_private_key' ]
2023-06-05 23:42:26 +03:00
config.vm.provider "hyperv" do |hv, override|
2023-06-06 15:22:19 +03:00
hv.vmname = $VM_NAME
hv.maxmemory = $VM_MEM
hv.memory = $VM_MEM
hv.cpus = $VM_VCPU
2023-06-05 23:42:26 +03:00
override.vm.allowed_synced_folder_types = [:rsync]
end
2023-06-06 00:30:05 +03:00
config.vm.network "public_network", bridge: $HOST_NET
2023-06-05 23:42:26 +03:00
config.vm.synced_folder ".", "/vagrant", disabled: true
2023-06-06 00:30:05 +03:00
if $ENALBE_SYNC_FOLDER == true
2023-06-05 23:42:26 +03:00
config.vm.synced_folder "shared/", "/vagrant", type: "rsync"
2023-06-06 00:30:05 +03:00
end
config.vm.provision "file", source: "~/.ssh/vagrant.pub", destination: "/home/vagrant/.ssh/vagrant.pub"
config.vm.provision 'shell', inline: $PROVISION_SSH_KEY_SCRIPT
2023-06-05 23:42:26 +03:00
end