Virtualization and Linux Learning Project Overview This project is a 4-week learning journey to explore virtualization and Linux server management using two Mini PCs, a Fritzbox router, and a Windows 11 laptop. Mini PC 1 runs Proxmox VE to host virtual machines, while Mini PC 2 runs Ubuntu Server as a web and file server. The goal is to gain hands-on experience with virtualization, Linux administration, and basic networking. Project Structure
Mini PC 1: Proxmox VE (virtualization host, IP: 192.168.178.28) Hosts an Ubuntu Server VM and other Linux based VM like kali, mint for experimentation.
Mini PC 2: Ubuntu Server 24.04 LTS (Linux server, IP: 192.168.178.31) Runs an Nginx web server and a Samba file server.
Network: Fritzbox router (gateway/DNS: 192.168.178.1). Client: Windows 11 laptop for management and testing on hypervisor type 2 (VMware workstation Pro.
Features
Virtualization (Mini PC 1): Proxmox VE setup with an Ubuntu Server VM for learning virtualization.
Web Server (Mini PC 2): Nginx hosts a custom webpage at http://192.168.178.31.
File Server (Mini PC 2): Samba shares a folder at \192.168.178.31\Myfiles for network file access.
Linux Skills: Practice with commands like ls, systemctl, apt, and troubleshooting.
Prerequisites
Two Mini PCs (~100GB storage each, limited RAM/CPU). Fritzbox router for network management. Windows 11 laptop with SSH client (e.g., Windows Terminal). USB drive for OS installation. Network IPs: Mini PC 1: 192.168.178.28 Mini PC 2: 192.168.178.31 Gateway/DNS: 192.168.178.1
Setup Week 1: Install Proxmox VE on Mini PC 1
Download Proxmox VE ISO: On your laptop, download the Proxmox VE ISO from proxmox.com. Create a bootable USB using Rufus.
Install Proxmox: Boot Mini PC 1 from the USB and follow the installer. Set hostname: techbender.local. Network: IP 192.168.178.28/24, gateway 192.168.178.1, DNS 192.168.178.1.
Access Proxmox: From your laptop, go to https://192.168.178.1:8006. Log in with root and the password set during installation.
Week 1: Create a VM in Proxmox
Upload Ubuntu Server ISO: Download Ubuntu Server 24.04 LTS ISO on your laptop. In Proxmox, go to local (techbender.local) > ISO Images > Upload. Upload the ISO.
Create VM: Click Create VM in Proxmox. Settings: Name: ubuntu-server ISO: Ubuntu Server ISO Disk: 20GB CPU: 2 cores (one core if limited resources) RAM: 2048MB (2GB) Network: vmbr0, VirtIO
Start the VM and install Ubuntu Server via the console.
Access VM: SSH into the VM (e.g., ssh tech@192.168.178.28).
Week 2: Install Ubuntu Server on Mini PC 2
Download and Install Ubuntu Server:
Download Ubuntu Server 24.04 LTS ISO on your laptop. Create a bootable USB with Rufus. Boot Mini PC 2 from the USB and install Ubuntu Server. Network: IP 192.168.178.31/24, gateway 192.168.178.1, DNS 192.168.178.1. Username: tech.
Update System: sudo apt update sudo apt upgrade -y
Week 2: Set Up Nginx Web Server on Mini PC 2
Install Nginx: sudo apt install nginx -y sudo systemctl start nginx sudo systemctl enable nginx
Create a Custom Webpage: sudo nano /var/www/html/index.html
Add:
Let's get into the rabbit hole of endless command function of linux
Access at http://192.168.178.31
Week 2: Set Up Samba File Server on Mini PC 2
Install Samba: sudo apt install samba -y
Configure Samba: sudo nano /etc/samba/smb.conf
Add: [Myfile] path = /srv/samba/share browseable = yes read only = no writable = yes guest ok = yes create mask = 0777 directory mask = 0777
Create the directory: sudo mkdir -p /srv/samba/share sudo chmod 777 /srv/samba/share
Restart Samba: sudo systemctl restart smbd sudo systemctl restart nmbd sudo systemctl enable smbd nmbd
Access from Windows at \192.168.178.31\Myfile.
Usage
Proxmox (Mini PC 1): Manage VMs at https://192.168.178.28:8006. SSH into the VM for Linux practice (e.g., ssh spacebender@192.168.178.32).
Web Server (Mini PC 2): Visit http://192.168.178.31 to see the webpage.
File Server (Mini PC 2): Access the share from Windows at \192.168.178.311\Myfile.
Learning: Practice Linux commands: ls, df -h, systemctl, tail -f /var/log/nginx/error.log.
Troubleshooting
Proxmox Issues: Check services: systemctl status pve-cluster. Verify network: ping 192.168.1.100.
Nginx Fails: Check status: sudo systemctl status nginx. View logs: sudo tail -f /var/log/nginx/error.log.
Samba Fails: Test config: sudo testparm. Check status: sudo systemctl status smbd. Allow firewall: sudo ufw allow Samba.
Network: Verify IPs in Fritzbox (http://192.168.1.1). Ping devices: ping 192.168.1.101.
Future Steps
Week 3: Explore VM networking and snapshots in Proxmox. Week 4: Set up Docker on Mini PC 2 and deploy a containerized app.
License This project is unlicensed and free to use for learning purposes.