🏗️ 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:
1️⃣ Definició de la versió de Vagrant
Vagrant.configure("2") do |config|
Això indica que estem fent servir la versió 2 del Vagrantfile
.
2️⃣ Definició de les màquines virtuals
Cada màquina es defineix amb config.vm.define "nom"
i conté la seva configuració específica.
3️⃣ 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.