86 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			86 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
# -*- mode: ruby -*-
 | 
						|
# vi: set ft=ruby :
 | 
						|
 | 
						|
Vagrant.configure("2") do |config|
 | 
						|
  # Base VM OS configuration.
 | 
						|
  config.vm.box = "debian/bookworm64"
 | 
						|
  config.ssh.insert_key = false
 | 
						|
  config.vm.synced_folder '.', '/vagrant', disabled: true
 | 
						|
 | 
						|
  # General VirtualBox VM configuration.
 | 
						|
  config.vm.provider :virtualbox do |v|
 | 
						|
    v.memory = 1024
 | 
						|
    v.cpus = 1
 | 
						|
    v.linked_clone = true
 | 
						|
    v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
 | 
						|
    v.customize ["modifyvm", :id, "--ioapic", "on"]
 | 
						|
  end
 | 
						|
 | 
						|
  # stork.
 | 
						|
  config.vm.define "stork" do |stork|
 | 
						|
    stork.vm.hostname = "stork"
 | 
						|
    stork.vm.network :private_network, ip: "192.168.56.5"
 | 
						|
    stork.vm.provision "shell",
 | 
						|
      inline: "sudo apt-get update ; sudo apt-get install -y vim curl wget"
 | 
						|
    stork.vm.provision "ansible" do |ansible|
 | 
						|
      ansible.extra_vars = {
 | 
						|
        stork_db_name: "stork",
 | 
						|
        stork_db_user: "stork-server",
 | 
						|
        stork_db_passwd: "stork-passwd",
 | 
						|
      }
 | 
						|
      ansible.playbook = "provision/setup-stork.yml"
 | 
						|
    end
 | 
						|
  end
 | 
						|
 | 
						|
  # Kea DHCP server 1.
 | 
						|
  config.vm.define "kea1" do |kea1|
 | 
						|
    kea1.vm.hostname = "kea1"
 | 
						|
    kea1.vm.network :private_network, ip: "192.168.56.2"
 | 
						|
    kea1.vm.provider :virtualbox do |v|
 | 
						|
      v.customize ["modifyvm", :id, "--memory", 512]
 | 
						|
    end
 | 
						|
    kea1.vm.provision "shell",
 | 
						|
      inline: "sudo apt-get update ; sudo apt-get install -y vim curl wget"
 | 
						|
    kea1.vm.provision "ansible" do |ansible|
 | 
						|
      ansible.extra_vars = {
 | 
						|
        srv_name: "kea1",
 | 
						|
        srv_ip: "192.168.56.2",
 | 
						|
      }
 | 
						|
      ansible.playbook = "provision/setup-kea.yml"
 | 
						|
    end
 | 
						|
  end
 | 
						|
 | 
						|
  # Kea DHCP server 2.
 | 
						|
  config.vm.define "kea2" do |kea2|
 | 
						|
    kea2.vm.hostname = "kea2"
 | 
						|
    kea2.vm.network :private_network, ip: "192.168.56.3"
 | 
						|
    kea2.vm.provider :virtualbox do |v|
 | 
						|
      v.customize ["modifyvm", :id, "--memory", 512]
 | 
						|
    end
 | 
						|
    kea2.vm.provision "shell",
 | 
						|
      inline: "sudo apt-get update ; sudo apt-get install -y vim curl wget"
 | 
						|
    kea2.vm.provision "ansible" do |ansible|
 | 
						|
      ansible.extra_vars = {
 | 
						|
        srv_name: "kea2",
 | 
						|
        srv_ip: "192.168.56.3",
 | 
						|
      }
 | 
						|
      ansible.playbook = "provision/setup-kea.yml"
 | 
						|
    end
 | 
						|
  end
 | 
						|
 | 
						|
  # client DHCP .
 | 
						|
  config.vm.define "cli" do |cli|
 | 
						|
    cli.vm.hostname = "cli"
 | 
						|
    #cli.vm.network :private_network, ip: "192.168.56.3"
 | 
						|
    cli.vm.network :private_network, type: "dhcp"
 | 
						|
    cli.vm.provider :virtualbox do |v|
 | 
						|
      v.customize ["modifyvm", :id, "--memory", 512]
 | 
						|
    end
 | 
						|
    cli.vm.provision "shell",
 | 
						|
      inline: "sudo apt-get update ; sudo apt-get install -y vim curl wget"
 | 
						|
  end
 | 
						|
 | 
						|
 | 
						|
end
 | 
						|
 |