Desplegament amb vagrant
Aquesta tasca ha tingut problemes per completar-se. Això vol dir que el càlcul d’hores no és correcte. Per fer aquesta tasca cal tenir el mateix Vagrantfile als integrants del grup. Primer de tot el Vagrant file comença amb aquesta línea:
Vagrant.configure("2") do |config| Aquesta es la comanda que inicialitza la configuració, utilitzant la versió 2 de l’API, compatible amb la majoria de versions i el nom “config” afegit per indicar els paràmetres a utilitzar si afegim “config” davant una configuració al Vagrant. Exemple:
config.vm.define “router_2” do |router_2|
Fet això començarem a configurar els paràmetres per a cada màquina necessària, afegida amb una o diverses boxes perquè podem aprofitar un box per a més màquines aixecades.
Per arribar a tenir un Vagrantfile com el nostre (avall de la pàgina el pots trobar), vam tenir una serie de problemes.
Errors amb Vagrant:
Vam tenir una sèrie de problemes amb Vagrant:
- Codi al fitxer Vagrantfile mal configurat.
- Problemes amb màquines antigues encara que utilitzem la comanda vagrant destroy, vagrant box remove, perquè el sistema a les dues carpetes ocultes de .vagrant i .vagrant.d seguien guardant uns fitxers de configuració a més del .vmdk(disc virtual) el qual és el que feia ús sempre per arrencar les màquines encara que afegim un altre box.
- També un problema externalitzat al professor per a que el solucioni.
Exemples dels errors que ens ha donat, els quals hem solucionat amb l’explicació donada i un altre que el professor acabarà de solucionar, perquè el problema no el mostra ven indicat i generà confusió amb el paràmetre CLI que encara indiquis dona error:
[10:28:27][vagrant23][aborrego@aborrego]-$ vagrant up router_3
There was an error while executing `VBoxManage`, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.
Command: ["showvminfo", "c5ca7849-9e55-406f-ade8-09652896e0cd"]
Stderr: VBoxManage: error: The object functionality is limited
VBoxManage: error: Details: code E_ACCESSDENIED (0x80070005), component MachineWrap, interface IMachine, callee nsISupports
VBoxManage: error: Context: "LockMachine(a->session, LockType_Shared)" at line 3327 of file VBoxManageInfo.cpp
Vagrantfile final:
El nostre Vagrantfile queda tal que així:
Vagrant.configure("2") do |config|
# =================================================
# ROUTER hbarbera - 192.168.0.160/28
# =================================================
config.vm.define "router_2" do |router_2|
router_2.vm.box = "debian"
router_2.vm.hostname = "gateway-hector"
router_2.vm.network "public_network", ip: "172.25.202.12", netmask: "255.255.0.0"
router_2.vm.network "private_network", ip: "192.168.0.161", netmask: "255.255.255.240", virtualbox__intnet: "red_interna"
router_2.vm.provider "virtualbox" do |vb|
vb.name = "MV_DEBIAN_ROUTER"
vb.memory = 1024
vb.cpus = 2
vb.customize ["modifyvm", :id, "--nictype2", "virtio"]
vb.customize ["modifyvm", :id, "--nictype3", "virtio"]
vb.customize ["modifyvm", :id, "--nictype4", "virtio"]
end
router_2.vm.provision "shell", inline: <<-BASH
ip route del default || true
ip route add default via 172.25.130.254 dev enp0s8
echo "nameserver 1.1.1.1" > /etc/resolv.conf
BASH
end
# =================================================
# ROUTER alozano - 192.168.0.128/27
# =================================================
config.vm.define "router_0" do |router_0|
router_0.vm.box = "debian"
router_0.vm.hostname = "gateway-andres"
router_0.vm.network "public_network", ip: "172.25.210.12", netmask: "255.255.0.0"
router_0.vm.network "private_network", ip: "192.168.0.129", netmask: "255.255.255.224", virtualbox__intnet: "red_interna"
router_0.vm.provider "virtualbox" do |vb|
vb.name = "MV_DEBIAN_ROUTER"
vb.memory = 1024
vb.cpus = 2
vb.customize ["modifyvm", :id, "--nictype2", "virtio"]
vb.customize ["modifyvm", :id, "--nictype3", "virtio"]
vb.customize ["modifyvm", :id, "--nictype4", "virtio"]
end
router_0.vm.provision "shell", inline: <<-BASH
ip route del default || true
ip route add default via 172.25.130.254 dev enp0s8
echo "nameserver 1.1.1.1" > /etc/resolv.conf
BASH
end
# =================================================
# ROUTER clozano - 192.168.0.0/25
# =================================================
config.vm.define "router_9" do |router_9|
router_9.vm.box = "debian"
router_9.vm.hostname = "gateway-cristian"
router_9.vm.network "public_network", ip: "172.25.209.12", netmask: "255.255.0.0"
router_9.vm.network "private_network", ip: "192.168.0.1", netmask: "255.255.255.128", virtualbox__intnet: "red_interna"
router_9.vm.provider "virtualbox" do |vb|
vb.name = "MV_DEBIAN_ROUTER"
vb.memory = 1024
vb.cpus = 2
vb.customize ["modifyvm", :id, "--nictype2", "virtio"]
vb.customize ["modifyvm", :id, "--nictype3", "virtio"]
vb.customize ["modifyvm", :id, "--nictype4", "virtio"]
end
router_9.vm.provision "shell", inline: <<-BASH
ip route del default || true
ip route add default via 172.25.130.254 dev enp0s8
echo "nameserver 1.1.1.1" > /etc/resolv.conf
BASH
end
# =================================================
# ROUTER aborrego - 192.168.0.0/25
# =================================================
config.vm.define "router_3" do |router_3|
router_3.vm.box = "debian"
#router_3.vm.hostname = "gateway-aborrego"
router_3.vm.network "public_network", ip: "172.25.203.12", netmask: "255.255.0.0"
router_3.vm.network "private_network", ip: "192.168.0.65", netmask: "255.255.255.128", virtualbox__intnet: "red_interna"
router_3.vm.provider "virtualbox" do |vb|
vb.name = "MV_DEBIAN_ROUTER"
vb.memory = 1024
vb.cpus = 1
vb.customize ["modifyvm", :id, "--nictype2", "virtio"]
vb.customize ["modifyvm", :id, "--nictype3", "virtio"]
vb.customize ["modifyvm", :id, "--nictype4", "virtio"]
end
router_3.vm.provision "shell", inline: <<-BASH
ip route del default || true
ip route add default via 172.25.130.254 dev enp0s8
echo "nameserver 1.1.1.1" > /etc/resolv.conf
BASH
end
# =================================================
# CLIENTS
# =================================================
# Rocky Client -> router_9 (10.0.0.1)
config.vm.define "rocky_client" do |rocky_client|
rocky_client.vm.box = "rocky_client"
rocky_client.vm.communicator = "ssh"
rocky_client.vm.network "private_network", type: "dhcp", virtualbox__intnet: "red_interna"
rocky_client.vm.provider "virtualbox" do |vb|
vb.name = "MV_ROCKY_CLIENT"
vb.memory = 2048
vb.cpus = 2
end
rocky_client.vm.provision "shell", inline: <<-BASH
ip route del default || true
ip route add default via 10.0.0.1 dev enp0s8
dnf groupinstall "Server with GUI" -y
systemctl set-default graphical.target
systemctl start graphical.target
BASH
end
# Ubuntu Client -> router_9 (10.0.0.1)
config.vm.define "ubuntu" do |ubuntu|
ubuntu.vm.box = "ubuntu"
ubuntu.vm.communicator = "ssh"
ubuntu.vm.network "private_network", type: "dhcp", virtualbox__intnet: "red_interna"
ubuntu.vm.provider "virtualbox" do |vb|
vb.name = "MV_UBUNTU_CLIENT"
vb.memory = 4096
vb.cpus = 4
end
ubuntu.vm.provision "shell", inline: <<-BASH
ip route del default || true
ip route add default via 10.0.0.1 dev enp0s8
BASH
end
# Windows 10 Client -> router_9 (10.0.0.1)
config.vm.define "w10" do |w10|
w10.vm.box = "w10"
w10.vm.communicator = "winrm"
w10.winrm.username = "vagrant"
w10.winrm.password = "vagrant"
w10.vm.network "private_network", type: "dhcp", virtualbox__intnet: "red_interna"
w10.vm.provider "virtualbox" do |vb|
vb.name = "MV_W10_CLIENT"
vb.memory = 4096
vb.cpus = 4
vb.gui = true
end
w10.vm.provision "shell", inline: <<-POWERSHELL, privileged: true
Remove-NetRoute -DestinationPrefix "0.0.0.0/0" -Confirm:$false -ErrorAction SilentlyContinue
New-NetRoute -DestinationPrefix "0.0.0.0/0" -NextHop "10.0.0.1" -InterfaceAlias "Ethernet 2"
POWERSHELL
end
# =================================================
# SERVERS
# =================================================
# Debian DNS -> router_0 (192.168.226.65)
config.vm.define "debiandns" do |debiandns|
debiandns.vm.box = "debiandns"
debiandns.vm.communicator = "ssh"
debiandns.vm.network "private_network", type: "dhcp", virtualbox__intnet: "red_interna"
debiandns.vm.provider "virtualbox" do |vb|
vb.name = "MV_DEBIANDNS"
vb.memory = 2048
vb.cpus = 2
end
debiandns.vm.provision "shell", inline: <<-BASH
ip route del default || true
ip route add default via 192.168.226.65 dev enp0s8
BASH
end
# Debian Slave -> router_0 (192.168.226.65)
config.vm.define "debianslave" do |debianslave|
debianslave.vm.box = "debianslave"
debianslave.vm.communicator = "ssh"
debianslave.vm.network "private_network", type: "dhcp", virtualbox__intnet: "red_interna"
debianslave.vm.provider "virtualbox" do |vb|
vb.name = "MV_DEBIANSLAVE"
vb.memory = 2048
vb.cpus = 2
end
debianslave.vm.provision "shell", inline: <<-BASH
ip route del default || true
ip route add default via 192.168.226.65 dev enp0s8
BASH
end
# Debian LDAP -> router_0 (192.168.226.65)
config.vm.define "debianldap" do |debianldap|
debianldap.vm.box = "debianldap"
debianldap.vm.communicator = "ssh"
debianldap.vm.network "private_network", type: "dhcp", virtualbox__intnet: "red_interna"
debianldap.vm.provider "virtualbox" do |vb|
vb.name = "MV_DEBIANLDAP"
vb.memory = 2048
vb.cpus = 2
end
debianldap.vm.provision "shell", inline: <<-BASH
ip route del default || true
ip route add default via 192.168.226.65 dev enp0s8
BASH
end
# Rocky FTP -> router_0 (192.168.226.65)
config.vm.define "rockyFTP" do |rockyFTP|
rockyFTP.vm.box = "rockyFTP"
rockyFTP.vm.communicator = "ssh"
rockyFTP.vm.network "private_network", type: "dhcp", virtualbox__intnet: "red_interna"
rockyFTP.vm.provider "virtualbox" do |vb|
vb.name = "MV_ROCKYFTP"
vb.memory = 1024
vb.cpus = 1
end
rockyFTP.vm.provision "shell", inline: <<-BASH
ip route del default || true
ip route add default via 192.168.226.65 dev enp0s8
BASH
end
# Rocky NFS -> router_0 (192.168.226.65)
config.vm.define "rockyNFS" do |rockyNFS|
rockyNFS.vm.box = "rockyNFS"
rockyNFS.vm.communicator = "ssh"
rockyNFS.vm.network "private_network", type: "dhcp", virtualbox__intnet: "red_interna"
rockyNFS.vm.provider "virtualbox" do |vb|
vb.name = "MV_ROCKYNFS"
vb.memory = 1024
vb.cpus = 1
end
rockyNFS.vm.provision "shell", inline: <<-BASH
ip route del default || true
ip route add default via 192.168.226.65 dev enp0s8
BASH
end
# =================================================
# LAB
# =================================================
# Debian lab -> router_3 (192.168.226.1)
config.vm.define "debianlab" do |debianlab|
debianlab.vm.box = "debianlab"
debianlab.vm.communicator = "ssh"
debianlab.vm.network "private_network", type: "dhcp", virtualbox__intnet: "red_interna"
debianlab.vm.provider "virtualbox" do |vb|
vb.name = "MV_DEBIAN_LAB"
vb.memory = 2048
vb.cpus = 2
end
debianlab.vm.provision "shell", inline: <<-BASH
ip route del default || true
ip route add default via 192.168.226.1 dev enp0s8
BASH
end
# Rocky lab -> router_3 (192.168.226.1)
config.vm.define "rockylab" do |rockylab|
rockylab.vm.box = "rockylab"
rockylab.vm.communicator = "ssh"
rockylab.vm.network "private_network", type: "dhcp", virtualbox__intnet: "red_interna"
rockylab.vm.provider "virtualbox" do |vb|
vb.name = "MV_ROCKY_LAB"
vb.memory = 1024
vb.cpus = 1
end
rockylab.vm.provision "shell", inline: <<-BASH
ip route del default || true
ip route add default via 192.168.226.1 dev enp0s8
BASH
end
# Rocky lab GUI -> router_3 (192.168.226.1)
config.vm.define "rockylabgui" do |rockylabgui|
rockylabgui.vm.box = "rockylabgui"
rockylabgui.vm.communicator = "ssh"
rockylabgui.vm.network "private_network", type: "dhcp", virtualbox__intnet: "red_interna"
rockylabgui.vm.provider "virtualbox" do |vb|
vb.name = "MV_ROCKY_LAB_GUI"
vb.memory = 2048
vb.cpus = 2
end
rockylabgui.vm.provision "shell", inline: <<-BASH
ip route del default || true
ip route add default via 192.168.226.1 dev enp0s8
BASH
end
# Ubuntu lab -> router_3 (192.168.226.1)
config.vm.define "ubuntulab" do |ubuntulab|
ubuntulab.vm.box = "ubuntulab"
ubuntulab.vm.communicator = "ssh"
ubuntulab.vm.network "private_network", type: "dhcp", virtualbox__intnet: "red_interna"
ubuntulab.vm.provider "virtualbox" do |vb|
vb.name = "MV_UBUNTU_LAB"
vb.memory = 4096
vb.cpus = 4
end
ubuntulab.vm.provision "shell", inline: <<-BASH
ip route del default || true
ip route add default via 192.168.226.1 dev enp0s8
BASH
end
# Windows 10 lab -> router_3 (192.168.226.1)
config.vm.define "w10lab" do |w10lab|
w10lab.vm.box = "w10lab"
w10lab.vm.communicator = "winrm"
w10lab.winrm.username = "vagrant"
w10lab.winrm.password = "vagrant"
w10lab.vm.network "private_network", type: "dhcp", virtualbox__intnet: "red_interna"
w10lab.vm.provider "virtualbox" do |vb|
vb.name = "MV_W10_LAB"
vb.memory = 4096
vb.cpus = 4
vb.gui = true
end
w10lab.vm.provision "shell", inline: <<-POWERSHELL, privileged: true
Remove-NetRoute -DestinationPrefix "0.0.0.0/0" -Confirm:$false -ErrorAction SilentlyContinue
New-NetRoute -DestinationPrefix "0.0.0.0/0" -NextHop "192.168.226.1" -InterfaceAlias "Ethernet 2"
POWERSHELL
end
end