Vagrantfile 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. Vagrant.configure("2") do |config|
  2. # Configuración general de las maquinas
  3. config.vm.provider "virtualbox" do |v|
  4. v.linked_clone = true
  5. v.customize ["modifyvm", :id, "--groups", "/lab1"]
  6. v.customize ["modifyvm", :id, "--pagefusion", "on"]
  7. end
  8. # config.vm.provision :ansible do |ansible|
  9. # # Definicion de los grupos de maquinas
  10. # ansible.groups = {
  11. # "red_1" => ["router_1", "workstation_1", "server_1_[1:2]"],
  12. # "red_2" => ["router_2", "workstation_2", "server_2_[1:2]"],
  13. # "workstations" => ["workstation_1", "workstation_2"],
  14. # "routers" => ["router_1", "router_2"],
  15. # "servers" => ["server_[1:2]_[1:2]"],
  16. # "computers:children" => ["workstations", "servers"]
  17. # }
  18. # ansible.playbook = "provision/computers.yml"
  19. # end
  20. (1..2).each do |j|
  21. ##################################
  22. # Creación de los routers router_
  23. ##################################
  24. config.vbguest.auto_update = false
  25. config.ssh.insert_key = false
  26. config.vm.define "router_#{j}" do |router|
  27. router.vm.box = "pulitux/csr1kv"
  28. router.vm.box_version = "17.03.04"
  29. router.vm.hostname = "router#{j}"
  30. router.vm.network "private_network", virtualbox__intnet: "red_#{j}", ip: "10.1.#{j}.1", auto_config: false
  31. router.vm.network "private_network", virtualbox__intnet: "red_externa", ip: "10.0.1.#{j}", auto_config: false
  32. router.vm.provider "virtualbox" do |vb|
  33. vb.name = "router_#{j}"
  34. vb.memory = "2048"
  35. end
  36. router.vm.provision :ansible do |ansible|
  37. ansible.limit = "routers"
  38. ansible.playbook = "provision/routers.yml"
  39. ansible.groups = {
  40. "routers" => ["router_1", "router_2"]
  41. }
  42. end
  43. end
  44. ################################################
  45. # Creación de las máquinas Workstations Ubuntu
  46. ################################################
  47. config.vm.define "workstation_#{j}" do |workstation_|
  48. workstation_.vm.box = "ubuntu/jammy64"
  49. workstation_.vm.hostname = "workstation#{j}"
  50. workstation_.vm.network "private_network", ip: "10.1.#{j}.100", auto_config: false
  51. workstation_.vm.provider "virtualbox" do |vb|
  52. vb.name = "workstation_#{j}"
  53. vb.memory = "2048"
  54. end
  55. workstation_.vm.provision :ansible do |ansible|
  56. ansible.limit = "workstations"
  57. ansible.playbook = "provision/workstations.yml"
  58. ansible.groups = {
  59. "workstations" => ["workstation_1", "workstation_2"]
  60. }
  61. end
  62. ####################################################
  63. # Creación de las máquinas servers Ubuntu
  64. ####################################################
  65. (1..2).each do |i|
  66. config.vm.define "server_#{j}_#{i}" do |server|
  67. server.vm.box = "ubuntu/jammy64"
  68. server.vm.hostname = "server#{j}#{i}"
  69. server.vm.network "private_network", ip: "10.1.#{j}.10#{i}", auto_config: false
  70. server.vm.provider "virtualbox" do |vb|
  71. vb.memory ="512"
  72. vb.name = "server_#{j}_#{i}"
  73. end
  74. server.vm.provision :ansible do |ansible|
  75. ansible.limit = "servers"
  76. ansible.playbook = "provision/servers.yml"
  77. ansible.groups = {
  78. "servers" => ["server_[1:2]_[1:2]"]
  79. }
  80. end
  81. end
  82. end
  83. end
  84. end
  85. end