| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- Vagrant.configure("2") do |config|
- # Configuración general de las maquinas
- config.vm.provider "virtualbox" do |v|
- v.linked_clone = true
- # v.synced_folder ".", "/vagrant", disabled: true # Deshabilitar sincronización de carpetas
- v.customize ["modifyvm", :id, "--groups", "/lab1"] # Crear todas las maquinas agrupadas en "lab1"
- v.customize ["modifyvm", :id, "--pagefusion", "on"] # Habilitar la compartición de paginas de memoria entre maquinas
- end
-
- (1..2).each do |j|
- ##################################
- # Creación de los routers cisco
- ##################################
- config.vbguest.auto_update = false # Necesario por no existir vbgest para los routers
- config.ssh.insert_key = false # Necesario para evitar errores de autenticacion
- config.vm.define "router_#{j}" do |router|
- router.vbguest.auto_update = false
- router.vm.box = "pulitux/csr1kv"
- router.vm.box_version = "17.03.04"
- router.vm.hostname = "router#{j}"
- router.vm.network "private_network", virtualbox__intnet: "red_#{j}", ip: "10.1.#{j}.1", auto_config: false
- router.vm.network "private_network", virtualbox__intnet: "red_externa", ip: "10.0.1.#{j}", auto_config: false
- router.vm.provider "virtualbox" do |vb|
- vb.name = "router_#{j}"
- vb.memory = "2048"
- end
- if j == 2 # Configurar todas tras crear el último router
- router.vm.provision "routers", type: :ansible do |ansible|
- ansible.limit = "routers"
- ansible.playbook = "provision/routers.yml"
- ansible.groups = {
- "routers" => ["router_1", "router_2"]
- }
- end
- end
- end
- ################################################
- # Creación de las máquinas Workstations Ubuntu
- ################################################
- config.vm.define "workstation_#{j}" do |workstation|
- # workstation.vbguest.auto_update = true
- workstation.vm.box = "ubuntu/jammy64"
- workstation.vm.hostname = "workstation#{j}"
- workstation.vm.network "private_network", ip: "10.1.#{j}.100"
- workstation.vm.provider "virtualbox" do |vb|
- vb.name = "workstation_#{j}"
- vb.memory = "2048"
- end
- if j == 2 # Configurar todas tras crear la última workstation
- workstation.vm.provision "workstations", type: :ansible do |ansible|
- ansible.limit = "workstations"
- ansible.playbook = "provision/workstations.yml"
- ansible.groups = {
- "workstations" => ["workstation_1", "workstation_2"]
- }
- end
- end
- end
- ####################################################
- # Creación de las máquinas servers Ubuntu
- ####################################################
- (1..2).each do |i|
- config.vm.define "server_#{j}_#{i}" do |server|
- server.vm.box = "ubuntu/jammy64"
- server.vm.hostname = "server#{j}#{i}"
- server.vm.network "private_network", ip: "10.1.#{j}.10#{i}" #, auto_config: false
- server.vm.provider "virtualbox" do |vb|
- vb.memory ="512"
- vb.name = "server_#{j}_#{i}"
- end
- if j == 2 and i == 2 # Ejecutar tras crear el último server
- server.vm.provision "servers", type: :ansible do |ansible|
- ansible.limit = "servers"
- ansible.playbook = "provision/servers.yml"
- ansible.groups = {
- "servers" => ["server_[1:2]_[1:2]"]
- }
- end
- # Ejecutar la configuración de todos los computadores
- server.vm.provision :ansible, after: "servers" do |ansible|
- ansible.limit = "computers"
- ansible.playbook = "provision/computers.yml"
- ansible.groups = {
- "workstations" => ["workstation_1", "workstation_2"],
- "servers" => ["server_[1:2]_[1:2]"],
- "computers:children" => ["workstations", "servers"]
- }
- end
- end
- end
- end
- end
- end
|