244 lines
		
	
	
	
		
			8 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			244 lines
		
	
	
	
		
			8 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| # -*- mode: ruby -*-
 | |
| # vi: set ft=ruby :
 | |
| 
 | |
| system("scripts/pregen_keys.sh")
 | |
| 
 | |
| Vagrant.configure("2") do |config|
 | |
|   config.vm.box = "generic/debian10"
 | |
|   config.vm.post_up_message = nil
 | |
|   config.vm.synced_folder ".", "/vagrant", disabled: true, type: "9p"
 | |
| 
 | |
|   config.vm.provision :shell,
 | |
|       path: "scripts/change-vmdebootstrap-default-dhcp.sh"
 | |
|   #config.vm.provision "shell",
 | |
|   #    inline: "sed -i 's/^mesg n$/tty -s \\&\\& mesg n/g' /root/.profile"
 | |
|   config.vm.provision "shell",
 | |
|       path: "scripts/add_salt_to_etc_hosts.sh"
 | |
| 
 | |
|   config.vm.define "salt" do |node|
 | |
|       node.vm.hostname = "salt"
 | |
|       node.vm.network "private_network", ip: "172.16.4.10"
 | |
| 
 | |
|       node.vm.provider :libvirt do |libvirt|
 | |
|           libvirt.cpus = 2
 | |
|           libvirt.memory = 2048
 | |
|           libvirt.memorybacking :access, :mode => "shared"
 | |
|       end
 | |
| 
 | |
|       node.vm.synced_folder "../gvasalt/states", "/srv/salt", type: "9p"
 | |
|       node.vm.synced_folder "../gvasalt/pillar", "/srv/pillar", type: "9p"
 | |
| 
 | |
|       node.vm.provision :salt do |salt|
 | |
|           salt.bootstrap_options = "-x python3"
 | |
|           salt.grains_config = "salt/grains/salt"
 | |
|           salt.install_master = true
 | |
|           salt.masterless = false
 | |
|           salt.minion_id = "salt"
 | |
|           salt.run_highstate = false
 | |
|           salt.minion_key = "salt/keys/salt.pem"
 | |
|           salt.minion_pub = "salt/keys/salt.pub"
 | |
|           salt.seed_master = {
 | |
|             dns: "salt/keys/dns.pub",
 | |
|             file: "salt/keys/file.pub",
 | |
|             ldap: "salt/keys/ldap.pub",
 | |
|             mail: "salt/keys/mail.pub",
 | |
|             mq: "salt/keys/mq.pub",
 | |
|             mysql: "salt/keys/mysql.pub",
 | |
|             pgsql: "salt/keys/pgsql.pub",
 | |
|             salt: "salt/keys/salt.pub",
 | |
|             service: "salt/keys/service.pub",
 | |
|             syslog: "salt/keys/syslog.pub",
 | |
|             web: "salt/keys/web.pub",
 | |
|           }
 | |
|       end
 | |
|   end
 | |
| 
 | |
|   config.vm.define "mq" do |node|
 | |
|       node.vm.hostname = "mq"
 | |
|       node.vm.network "private_network", ip: "172.16.4.20"
 | |
|       node.vm.network "forwarded_port", guest: 15672, host:8672
 | |
|       node.vm.provider :libvirt do |libvirt|
 | |
|           libvirt.memory = 1024
 | |
|       end
 | |
| 
 | |
|       node.vm.provision :salt do |salt|
 | |
|           salt.bootstrap_options = "-x python3"
 | |
|           salt.grains_config = "salt/grains/mq"
 | |
|           salt.masterless = false
 | |
|           salt.minion_id = "mq"
 | |
|           salt.minion_key = "salt/keys/mq.pem"
 | |
|           salt.minion_pub = "salt/keys/mq.pub"
 | |
|           salt.run_highstate = false
 | |
|       end
 | |
|   end
 | |
| 
 | |
|   config.vm.define "syslog" do |node|
 | |
|       node.vm.hostname = "syslog"
 | |
|       node.vm.network "private_network", ip: "172.16.4.30"
 | |
|       node.vm.provider :libvirt do |libvirt|
 | |
|           libvirt.memory = 1024
 | |
|       end
 | |
| 
 | |
|       node.vm.provision :salt do |salt|
 | |
|           salt.bootstrap_options = "-x python3"
 | |
|           salt.grains_config = "salt/grains/syslog"
 | |
|           salt.masterless = false
 | |
|           salt.minion_id = "syslog"
 | |
|           salt.minion_key = "salt/keys/syslog.pem"
 | |
|           salt.minion_pub = "salt/keys/syslog.pub"
 | |
|           salt.run_highstate = false
 | |
|       end
 | |
|   end
 | |
| 
 | |
|   config.vm.define "pgsql" do |node|
 | |
|       node.vm.hostname = "pgsql"
 | |
|       #node.vm.synced_folder "repos/gvapgsql", "/srv/gvapgsql"
 | |
|       node.vm.network "private_network", ip: "172.16.4.40"
 | |
|       node.vm.provider :libvirt do |libvirt|
 | |
|         libvirt.memory = 1024
 | |
|       end
 | |
| 
 | |
|       node.vm.provision :salt do |salt|
 | |
|           salt.bootstrap_options = "-x python3"
 | |
|           salt.grains_config = "salt/grains/pgsql"
 | |
|           salt.masterless = false
 | |
|           salt.minion_id = "pgsql"
 | |
|           salt.minion_key = "salt/keys/pgsql.pem"
 | |
|           salt.minion_pub = "salt/keys/pgsql.pub"
 | |
|           salt.run_highstate = false
 | |
|       end
 | |
|   end
 | |
| 
 | |
|   config.vm.define "dns" do |node|
 | |
|       node.vm.hostname = "dns"
 | |
|       node.vm.network "private_network", ip: "172.16.4.50"
 | |
|       node.vm.provider :libvirt do |libvirt|
 | |
|           libvirt.memory = 1024
 | |
|       end
 | |
| 
 | |
|       node.vm.provision :salt do |salt|
 | |
|           salt.bootstrap_options = "-x python3"
 | |
|           salt.grains_config = "salt/grains/dns"
 | |
|           salt.masterless = false
 | |
|           salt.minion_id = "dns"
 | |
|           salt.minion_key = "salt/keys/dns.pem"
 | |
|           salt.minion_pub = "salt/keys/dns.pub"
 | |
|           salt.run_highstate = false
 | |
|       end
 | |
|   end
 | |
| 
 | |
|   config.vm.define "ldap" do |node|
 | |
|       node.vm.hostname = "ldap"
 | |
|       #node.vm.synced_folder "repos/gvaldap", "/srv/gvaldap"
 | |
|       node.vm.network "private_network", ip: "172.16.4.60"
 | |
|       node.vm.provider :libvirt do |libvirt|
 | |
|           libvirt.memory = 1024
 | |
|       end
 | |
| 
 | |
|       node.vm.provision :salt do |salt|
 | |
|           salt.bootstrap_options = "-x python3"
 | |
|           salt.grains_config = "salt/grains/ldap"
 | |
|           salt.masterless = false
 | |
|           salt.minion_id = "ldap"
 | |
|           salt.minion_key = "salt/keys/ldap.pem"
 | |
|           salt.minion_pub = "salt/keys/ldap.pub"
 | |
|           salt.run_highstate = false
 | |
|       end
 | |
|   end
 | |
| 
 | |
|   config.vm.define "file" do |node|
 | |
|       node.vm.hostname = "file"
 | |
|       #node.vm.synced_folder "repos/gvafile", "/srv/gvafile"
 | |
|       node.vm.network "private_network", ip: "172.16.4.70"
 | |
|       node.vm.provider :libvirt do |libvirt|
 | |
|           libvirt.memory = 1024
 | |
|       end
 | |
| 
 | |
|       node.vm.provision :salt do |salt|
 | |
|           salt.bootstrap_options = "-x python3"
 | |
|           salt.grains_config = "salt/grains/file"
 | |
|           salt.masterless = false
 | |
|           salt.minion_id = "file"
 | |
|           salt.minion_key = "salt/keys/file.pem"
 | |
|           salt.minion_pub = "salt/keys/file.pub"
 | |
|           salt.run_highstate = false
 | |
|       end
 | |
|   end
 | |
| 
 | |
|   config.vm.define "mail" do |node|
 | |
|       node.vm.hostname = "mail"
 | |
|       node.vm.network "private_network", ip: "172.16.4.80"
 | |
|       node.vm.provider :libvirt do |libvirt|
 | |
|           libvirt.memory = 1024
 | |
|       end
 | |
| 
 | |
|       node.vm.provision :salt do |salt|
 | |
|           salt.bootstrap_options = "-x python3"
 | |
|           salt.grains_config = "salt/grains/mail"
 | |
|           salt.masterless = false
 | |
|           salt.minion_id = "mail"
 | |
|           salt.minion_key = "salt/keys/mail.pem"
 | |
|           salt.minion_pub = "salt/keys/mail.pub"
 | |
|           salt.run_highstate = false
 | |
|       end
 | |
|   end
 | |
| 
 | |
|   config.vm.define "mysql" do |node|
 | |
|       node.vm.hostname = "mysql"
 | |
|       #node.vm.synced_folder "repos/gvamysql", "/srv/gvamysql"
 | |
|       node.vm.network "private_network", ip: "172.16.4.90"
 | |
|       node.vm.provider :libvirt do |libvirt|
 | |
|           libvirt.memory = 1024
 | |
|       end
 | |
| 
 | |
|       node.vm.provision :salt do |salt|
 | |
|           salt.bootstrap_options = "-x python3"
 | |
|           salt.grains_config = "salt/grains/mysql"
 | |
|           salt.masterless = false
 | |
|           salt.minion_id = "mysql"
 | |
|           salt.minion_key = "salt/keys/mysql.pem"
 | |
|           salt.minion_pub = "salt/keys/mysql.pub"
 | |
|           salt.run_highstate = false
 | |
|       end
 | |
|   end
 | |
| 
 | |
|   config.vm.define "web" do |node|
 | |
|       node.vm.hostname = "web"
 | |
|       #node.vm.synced_folder "repos/gvaweb", "/srv/gvaweb"
 | |
|       node.vm.network "private_network", ip: "172.16.4.100"
 | |
|       node.vm.provider :libvirt do |libvirt|
 | |
|           libvirt.memory = 1024
 | |
|       end
 | |
| 
 | |
|       node.vm.provision :salt do |salt|
 | |
|           salt.bootstrap_options = "-x python3"
 | |
|           salt.grains_config = "salt/grains/web"
 | |
|           salt.masterless = false
 | |
|           salt.minion_id = "web"
 | |
|           salt.minion_key = "salt/keys/web.pem"
 | |
|           salt.minion_pub = "salt/keys/web.pub"
 | |
|           salt.run_highstate = false
 | |
|       end
 | |
|   end
 | |
| 
 | |
|   config.vm.define "service" do |node|
 | |
|       node.vm.hostname = "service"
 | |
|       #node.vm.synced_folder "repos/gva", "/srv/gva"
 | |
|       node.vm.network "forwarded_port", guest: 443, host:8443
 | |
|       node.vm.network "private_network", ip: "172.16.4.110"
 | |
|       node.vm.post_up_message = "Use https://localhost:8443/ to access the gva web interface"
 | |
|       node.vm.provider :libvirt do |libvirt|
 | |
|           libvirt.memory = 1024
 | |
|       end
 | |
| 
 | |
|       node.vm.provision :salt do |salt|
 | |
|           salt.bootstrap_options = "-x python3"
 | |
|           salt.grains_config = "salt/grains/service"
 | |
|           salt.masterless = false
 | |
|           salt.minion_id = "service"
 | |
|           salt.minion_key = "salt/keys/service.pem"
 | |
|           salt.minion_pub = "salt/keys/service.pub"
 | |
|           salt.run_highstate = false
 | |
|       end
 | |
|   end
 | |
| end
 |