Desplegament de la infraestructura amb Vagrant
Estructura General del Desplegament
Per desplegar la infraestructura, s’ha fet servir Vagrant en la majoria de màquines virtuals per automatitzar la creació i configuració. Això permet una gestió més ràpida, escalable i professional.
Avantatges d’usar Vagrant:
- Creació de màquines de manera automàtica i sense errors humans.
- Configuració prèvia de xarxes, serveis i programari necessari.
- Facilitat per reproduir el mateix entorn en diferents sistemes.
EXCEPCIÓ:
- Windows 10 i Ubuntu Mate s’han creat manualment per poder documentar el procés en detall. Això és important per demostrar el desplegament manual i veure les diferències amb l’automatització de Vagrant.
Estructura de les Màquines Virtuals
Xarxa de servidors (192.168.1.0/26)
Windows Server 2019 (192.168.1.10) → Active Directory i proves d’entorn corporatiu.
Debian 12 (Servidor DHCP) (192.168.1.20) → Assignació d’IP estàtiques a la xarxa de servidors.
Xarxa de clients (192.168.2.0/25)
Rocky Linux 9 (192.168.2.20) → Simulació d’un client empresarial Linux.
Ubuntu Mate (192.168.2.30) → Creat manualment per documentació.
Xarxa de laboratori (192.168.3.0/27)
Windows 11 (192.168.3.15) → Creat manualment per documentació.
Windows 10 (192.168.3.10) → Proves amb sistemes Windows en un entorn aïllat.
Router (Debian 12) (192.168.1.1, 192.168.2.1, 192.168.3.1)
Gestió del trànsit entre xarxes.
Configuració de NAT per accés a Internet.
Assignació de rutes per garantir la connectivitat entre màquines.
Configuració Automàtica amb Vagrant
Per totes les màquines creades amb Vagrant, s’ha utilitzat un Vagrantfile que defineix:
Assignació de recursos (RAM, CPU).
Configuració de xarxes privades per tenir IPs fixes.
Provisionament → Instal·lació de programari i configuracions automàtiques.
Exemple de configuració d’una màquina en Vagrantfile:
Vagrant.configure("2") do |config|
config.vm.box = "generic/debian12"
config.vm.network "private_network", ip: "192.168.1.20"
config.vm.provider "virtualbox" do |vb|
vb.memory = "1024"
vb.cpus = 2
end
config.vm.provision "shell", inline: <<-SHELL
apt update && apt install -y isc-dhcp-server
SHELL
end
Cada màquina creada amb Vagrant segueix aquesta estructura, ajustant-se segons les necessitats.
Connexió entre màquines
Per garantir que totes les màquines es puguin comunicar correctament, s’ha configurat:
Xarxes privades estàtiques perquè cada màquina tingui una IP fixa.
Rutes internes al router perquè cada xarxa pugui veure les altres.
Firewall i regles d’accés perquè el trànsit sigui segur.
Totes les màquines poden connectar-se per SSH i RDP per a una gestió remota fàcil.
Conclusió
Amb aquest desplegament: S’ha creat una xarxa estructurada i separada per funcionalitats.
Les màquines principals s’han creat amb Vagrant per un desplegament eficient.
Windows 11 i Ubuntu Mate s’han creat manualment per documentació i proves detallades.
Els clients poden comunicar-se amb els servidors i viceversa.
Totes les màquines són accessibles per SSH o RDP, facilitant la gestió remota.
Això ens proporciona un entorn de proves totalment funcional, professional i escalable!
Instalació Ubuntu Mate
Instalació Windows 10
Manual d'instal·lació de les maquines pas a pas.
Anàlisi del Vagrantfile
El Vagrantfile
conté la configuració de totes les màquines virtuals del nostre entorn. A continuació, es detallen les parts principals del codi i el seu propòsit.
Estructura General
El fitxer segueix aquesta estructura:
Definició de la versió de Vagrant
Vagrant.configure("2") do |config|
Això indica que estem fent servir la versió 2 del Vagrantfile
.
Definició de les màquines virtuals
Cada màquina es defineix amb config.vm.define "nom"
i conté la seva configuració específica.
Configuració del provisionament
Mitjançant config.vm.provision "shell"
s’executen ordres durant la creació de la màquina, com la instal·lació de programari o configuracions de xarxa.
Explicació de les Màquines Virtuals
Router (Debian 12)
Funció: Actua com a distribuïdor de xarxa i servidor DHCP per assignar IPs automàticament.
config.vm.define "router" do |router|
router.vm.box = "debian/bookworm64"
router.vm.hostname = "router"
- Sistema Operatiu: Debian 12 (Bookworm).
- Hostname:
router
. - Xarxes configurades:
192.168.1.1/26
→ Xarxa de servidors.192.168.2.1/25
→ Xarxa de clients.192.168.3.1/27
→ Xarxa de laboratori.
Configuració de NAT i DHCP
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
- Activa el reenvio d’IP per permetre la comunicació entre xarxes.
- Configura iptables per gestionar el trànsit de xarxa.
- Configura ISC DHCP Server perquè la xarxa de servidors tingui IPs dinàmiques.
Servidor Windows 2019
Funció: Servidor empresarial amb Active Directory i eines d’administració.
config.vm.define "server-w2k19" do |server|
server.vm.box = "StefanScherer/windows_2019"
server.vm.hostname = "server-w2k19"
server.vm.network "private_network", ip: "192.168.1.10"
- Sistema Operatiu: Windows Server 2019.
- Assigna IP 192.168.1.10 a la xarxa de servidors.
Instal·lació d’eines amb Chocolatey
Set-ExecutionPolicy Bypass -Scope Process -Force
iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
choco install -y sysinternals
- Instal·la Chocolatey, un gestor de paquets per Windows.
- Afegeix eines d’administració amb Sysinternals.
Servidor Debian 12
Funció: Servidor bàsic amb accés SSH i eines d’administració.
config.vm.define "server-debian" do |server|
server.vm.box = "debian/bookworm64"
server.vm.hostname = "server-debian"
server.vm.network "private_network", ip: "192.168.1.11"
Instal·lació d’eines bàsiques
apt update && apt install -y nano net-tools openssh-server ufw
systemctl enable --now ssh
ufw allow OpenSSH
- Instal·la nano, net-tools, i SSH Server.
- Habilita el firewall UFW i permet connexions SSH.
Client Rocky Linux 9
Funció: Simulació d’un client Linux empresarial.
config.vm.define "client-rocky9" do |client|
client.vm.box = "generic/rocky9"
client.vm.hostname = "client-rocky9"
client.vm.network "private_network", ip: "192.168.2.20"
Instal·lació de paquets bàsics
sudo dnf install -y epel-release
sudo dnf install -y nano net-tools openssh-server
- Afegeix repositoris EPEL i instal·la eines bàsiques.
Client Ubuntu Mate
Funció: Client Linux gràfic per proves i documentació.
config.vm.define "client-ubuntu-mate" do |client|
client.vm.box = "cxtlabs/vagrant-ubuntu-16.04-mate"
client.vm.hostname = "client-ubuntu-mate"
client.vm.network "private_network", ip: "192.168.2.21"
Instal·lació de paquets
sudo apt update && sudo apt install -y nano net-tools openssh-server
- Instal·la eines bàsiques i permet connexió remota per SSH.
Conclusió
Aquest
Vagrantfile
permet crear una infraestructura totalment automatitzada amb servidors i clients interconnectats. Cada màquina té un propòsit específic, i la seva configuració està ben definida.
L’ús de Vagrant redueix temps de desplegament, facilita la gestió i evita errors.
Windows 10 i Ubuntu Mate es van crear manualment per documentació i comparació amb l’automatització.
Vagrantfile FInal.