| 
									
										
										
										
											2021-08-09 08:04:06 -06:00
										 |  |  | # -*- mode: ruby -*- | 
					
						
							|  |  |  | # vi: set ft=ruby : | 
					
						
							| 
									
										
										
										
											2020-08-20 13:53:27 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-09 08:04:06 -06:00
										 |  |  | PROVISIONER_IP = "192.168.50.4" | 
					
						
							|  |  |  | MACHINE1_IP = "192.168.50.43" | 
					
						
							| 
									
										
										
										
											2021-03-17 16:32:18 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-07 21:57:12 -06:00
										 |  |  | $script = <<-SCRIPT
 | 
					
						
							|  |  |  | ip addr add 192.168.50.4/24 dev eth1 | 
					
						
							|  |  |  | ip link set dev eth1 up | 
					
						
							|  |  |  | SCRIPT | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-09 08:04:06 -06:00
										 |  |  | unless Vagrant.has_plugin?("vagrant-docker-compose") | 
					
						
							|  |  |  |   system("vagrant plugin install vagrant-docker-compose") | 
					
						
							|  |  |  |   puts "Dependencies installed, please try the command again." | 
					
						
							|  |  |  |   exit | 
					
						
							| 
									
										
										
										
											2020-09-22 21:40:51 -04:00
										 |  |  | end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-09 08:04:06 -06:00
										 |  |  | Vagrant.configure("2") do |config| | 
					
						
							|  |  |  |   config.vm.define "provisioner" do |provisioner| | 
					
						
							|  |  |  |     provisioner.vm.box = "generic/ubuntu2004" | 
					
						
							|  |  |  |     provisioner.vm.synced_folder '../', '/vagrant' | 
					
						
							| 
									
										
										
										
											2021-08-07 21:57:12 -06:00
										 |  |  |     provisioner.vm.provision :docker | 
					
						
							|  |  |  |     provisioner.vm.provision "shell", inline: $script | 
					
						
							|  |  |  |     provisioner.vm.network "private_network", ip: PROVISIONER_IP, | 
					
						
							|  |  |  |       libvirt__network_name: "tink_network", | 
					
						
							|  |  |  |       libvirt__host_ip: '192.168.50.1', | 
					
						
							|  |  |  |       libvirt__netmask: "255.255.255.0", | 
					
						
							|  |  |  |       libvirt__dhcp_enabled: false, | 
					
						
							|  |  |  |       auto_config: false | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     provisioner.vm.provider "virtualbox" do |v, override| | 
					
						
							| 
									
										
										
										
											2021-08-09 08:04:06 -06:00
										 |  |  |       v.memory = 2048
 | 
					
						
							|  |  |  |       v.cpus = 2
 | 
					
						
							| 
									
										
										
										
											2021-08-07 21:57:12 -06:00
										 |  |  |       override.vm.synced_folder '../', '/vagrant' | 
					
						
							|  |  |  |       # vagrant plugin install vagrant-docker-compose | 
					
						
							|  |  |  |       override.vm.provision :docker_compose, | 
					
						
							|  |  |  |         compose_version: "1.29.1", | 
					
						
							| 
									
										
										
										
											2021-08-08 11:39:08 -06:00
										 |  |  |         yml: "/vagrant/compose/docker-compose.yml", | 
					
						
							| 
									
										
										
										
											2021-08-07 21:57:12 -06:00
										 |  |  |         run:"always", | 
					
						
							|  |  |  |         env: { | 
					
						
							|  |  |  |           "TINKERBELL_HOST_IP": PROVISIONER_IP, | 
					
						
							|  |  |  |           "TINKERBELL_CLIENT_IP": MACHINE1_IP, | 
					
						
							| 
									
										
										
										
											2021-08-08 11:39:08 -06:00
										 |  |  |           "REPO_TOP_LEVEL": "/vagrant/compose", | 
					
						
							| 
									
										
										
										
											2021-08-07 21:57:12 -06:00
										 |  |  |           "TINKERBELL_HARDWARE_MANIFEST": "/manifests/hardware/hardware.json", | 
					
						
							|  |  |  |           "TINKERBELL_TEMPLATE_MANIFEST": "/manifests/template/ubuntu.yaml" | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2020-08-20 13:53:27 +02:00
										 |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-07 21:57:12 -06:00
										 |  |  |     provisioner.vm.provider "libvirt" do |l, override| | 
					
						
							|  |  |  |       override.vm.synced_folder '../', '/vagrant', type: "nfs", nfs_version: 4, "nfs_udp": false, mount_options: ["rw", "vers=4", "tcp"] | 
					
						
							|  |  |  |       # vagrant plugin install vagrant-docker-compose | 
					
						
							|  |  |  |       override.vm.provision :docker_compose, | 
					
						
							|  |  |  |         compose_version: "1.29.1", | 
					
						
							| 
									
										
										
										
											2021-08-08 11:39:08 -06:00
										 |  |  |         yml: "/vagrant/compose/docker-compose.yml", | 
					
						
							| 
									
										
										
										
											2021-08-07 21:57:12 -06:00
										 |  |  |         run:"always", | 
					
						
							|  |  |  |         env: { | 
					
						
							|  |  |  |           "TINKERBELL_HOST_IP": PROVISIONER_IP, | 
					
						
							|  |  |  |           "TINKERBELL_CLIENT_IP": MACHINE1_IP, | 
					
						
							| 
									
										
										
										
											2021-08-08 11:39:08 -06:00
										 |  |  |           "REPO_TOP_LEVEL": "/vagrant/compose", | 
					
						
							| 
									
										
										
										
											2021-08-07 21:57:12 -06:00
										 |  |  |           "TINKERBELL_HARDWARE_MANIFEST": "/manifests/hardware/hardware-libvirt.json", | 
					
						
							|  |  |  |           "TINKERBELL_TEMPLATE_MANIFEST": "/manifests/template/ubuntu-libvirt.yaml" | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     end | 
					
						
							| 
									
										
										
										
											2020-08-20 13:53:27 +02:00
										 |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-09 08:04:06 -06:00
										 |  |  |   config.vm.define :machine1, autostart: false do |machine1| | 
					
						
							| 
									
										
										
										
											2021-08-07 21:57:12 -06:00
										 |  |  | 
 | 
					
						
							|  |  |  |     machine1.ssh.insert_key = false | 
					
						
							|  |  |  |     machine1.vm.boot_timeout = 10
 | 
					
						
							|  |  |  |     machine1.vm.synced_folder '.', '/vagrant', disabled: true | 
					
						
							|  |  |  |     machine1.vm.network :private_network, ip: MACHINE1_IP, | 
					
						
							|  |  |  |           mac: "0800279EF53A", | 
					
						
							|  |  |  |           adapter: 1, | 
					
						
							|  |  |  |           libvirt__network_name: "tink_network", | 
					
						
							|  |  |  |           libvirt__dhcp_enabled: false, | 
					
						
							|  |  |  |           libvirt__forward_mode: 'nat' | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     machine1.vm.provider "libvirt" do |v| | 
					
						
							|  |  |  |       v.storage :file, :size => '20G' | 
					
						
							|  |  |  |       v.memory = 4096
 | 
					
						
							|  |  |  |       v.cpus = 2
 | 
					
						
							|  |  |  |       v.boot 'hd' | 
					
						
							|  |  |  |       v.boot 'network' | 
					
						
							|  |  |  |       v.graphics_ip = '0.0.0.0' | 
					
						
							|  |  |  |       v.machine_arch = 'x86_64' | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     machine1.vm.provider "virtualbox" do |v, override| | 
					
						
							|  |  |  |       override.vm.box = 'jtyr/pxe' | 
					
						
							| 
									
										
										
										
											2021-08-09 08:04:06 -06:00
										 |  |  |       v.memory = 2048
 | 
					
						
							|  |  |  |       v.cpus = 2
 | 
					
						
							|  |  |  |       v.gui = true | 
					
						
							|  |  |  |       v.customize ['modifyvm', :id, '--nic1', 'hostonly', '--nic2', 'nat', '--boot1', 'disk', '--boot2', 'net'] | 
					
						
							|  |  |  |       v.customize ['setextradata', :id, 'GUI/ScaleFactor', '3.0'] | 
					
						
							|  |  |  |       v.check_guest_additions = false | 
					
						
							| 
									
										
										
										
											2020-08-20 13:53:27 +02:00
										 |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end |