Vagrant.configure("2") do |config| # Configuració global per a libvirt config.vm.provider :libvirt do |libvirt| libvirt.memory = 2048 # Recomanat per a Jenkins i Agents libvirt.cpus = 2 end # --- NODE JENKINS --- config.vm.define "jenkins" do |jenkins| jenkins.vm.box = "bento/ubuntu-24.04" jenkins.vm.hostname = "jenkins" # En libvirt, les IPs fixes es gestionen sovint via 'public_network' # o 'private_network' amb un bridge virtual. jenkins.vm.network "private_network", ip: "192.168.11.11" # Forwarded ports (libvirt els gestiona via NAT/iptables) jenkins.vm.network "forwarded_port", guest: 8080, host: 8080 jenkins.vm.network "forwarded_port", guest: 50000, host: 50000 jenkins.vm.provision :shell, :path => "jenkins.sh" end # --- NODE AGENT --- config.vm.define "agent" do |agent| agent.vm.box = "bento/ubuntu-24.04" agent.vm.hostname = "agent" agent.vm.network "private_network", ip: "192.168.11.13" # Ports de serveis (Docker, SonarQube, etc.) agent.vm.network "forwarded_port", guest: 2376, host: 2376 agent.vm.network "forwarded_port", guest: 4243, host: 4243 agent.vm.network "forwarded_port", guest: 9999, host: 9999 agent.vm.network "forwarded_port", guest: 9000, host: 9000 agent.vm.network "forwarded_port", guest: 3000, host: 3000 agent.vm.network "forwarded_port", guest: 50000, host: 50001 # Rangs de ports per a contenidors dinàmics (32770..32900).each do |port| agent.vm.network :forwarded_port, guest: port, host: port end # Provisioning agent.vm.provision :shell, :path => "ansible.sh" agent.vm.provision :shell, :path => "docker.sh" agent.vm.provision :shell, :path => "sonarqube.sh" agent.vm.provision :shell, :path => "terraform.sh" end # --- NODE AGENT 2 --- config.vm.define "agent2" do |agent2| agent2.vm.box = "bento/ubuntu-24.04" agent2.vm.hostname = "agent2" agent2.vm.network "private_network", ip: "192.168.11.14" end end