|
|
@@ -2,32 +2,21 @@ Vagrant.configure("2") do |config|
|
|
|
# Configuración general de las maquinas
|
|
|
config.vm.provider "virtualbox" do |v|
|
|
|
v.linked_clone = true
|
|
|
- v.customize ["modifyvm", :id, "--groups", "/lab1"]
|
|
|
- v.customize ["modifyvm", :id, "--pagefusion", "on"]
|
|
|
+ # 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
|
|
|
|
|
|
- # config.vm.provision :ansible do |ansible|
|
|
|
- # # Definicion de los grupos de maquinas
|
|
|
- # ansible.groups = {
|
|
|
- # "red_1" => ["router_1", "workstation_1", "server_1_[1:2]"],
|
|
|
- # "red_2" => ["router_2", "workstation_2", "server_2_[1:2]"],
|
|
|
- # "workstations" => ["workstation_1", "workstation_2"],
|
|
|
- # "routers" => ["router_1", "router_2"],
|
|
|
- # "servers" => ["server_[1:2]_[1:2]"],
|
|
|
- # "computers:children" => ["workstations", "servers"]
|
|
|
- # }
|
|
|
- # ansible.playbook = "provision/computers.yml"
|
|
|
- # end
|
|
|
-
|
|
|
(1..2).each do |j|
|
|
|
|
|
|
##################################
|
|
|
- # Creación de los routers router_
|
|
|
+ # Creación de los routers cisco
|
|
|
##################################
|
|
|
|
|
|
- config.vbguest.auto_update = false
|
|
|
- config.ssh.insert_key = false
|
|
|
+ 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}"
|
|
|
@@ -37,12 +26,15 @@ Vagrant.configure("2") do |config|
|
|
|
vb.name = "router_#{j}"
|
|
|
vb.memory = "2048"
|
|
|
end
|
|
|
- router.vm.provision :ansible do |ansible|
|
|
|
- ansible.limit = "routers"
|
|
|
- ansible.playbook = "provision/routers.yml"
|
|
|
- ansible.groups = {
|
|
|
- "routers" => ["router_1", "router_2"]
|
|
|
- }
|
|
|
+
|
|
|
+ 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
|
|
|
|
|
|
@@ -50,20 +42,24 @@ Vagrant.configure("2") do |config|
|
|
|
# Creación de las máquinas Workstations Ubuntu
|
|
|
################################################
|
|
|
|
|
|
- config.vm.define "workstation_#{j}" do |workstation_|
|
|
|
- workstation_.vm.box = "ubuntu/jammy64"
|
|
|
- workstation_.vm.hostname = "workstation#{j}"
|
|
|
- workstation_.vm.network "private_network", ip: "10.1.#{j}.100", auto_config: false
|
|
|
- workstation_.vm.provider "virtualbox" do |vb|
|
|
|
+ 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
|
|
|
- workstation_.vm.provision :ansible do |ansible|
|
|
|
- ansible.limit = "workstations"
|
|
|
- ansible.playbook = "provision/workstations.yml"
|
|
|
- ansible.groups = {
|
|
|
- "workstations" => ["workstation_1", "workstation_2"]
|
|
|
- }
|
|
|
+ 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
|
|
|
|
|
|
####################################################
|
|
|
@@ -74,20 +70,32 @@ Vagrant.configure("2") do |config|
|
|
|
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.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
|
|
|
- server.vm.provision :ansible do |ansible|
|
|
|
- ansible.limit = "servers"
|
|
|
- ansible.playbook = "provision/servers.yml"
|
|
|
- ansible.groups = {
|
|
|
- "servers" => ["server_[1:2]_[1:2]"]
|
|
|
- }
|
|
|
+ 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
|
|
|
-end
|