Yêu cầu phần cứng tối thiểu cho Proxmox VE
Cấu hình CPU và RAM
CPU phải hỗ trợ virtualization extensions (Intel VT-x hoặc AMD-V) để Proxmox có thể tạo container (LXC) và máy ảo (KVM).
RAM tối thiểu 8GB, khuyến nghị 16GB trở lên nếu bạn dự định chạy nhiều node hoặc container nặng trong môi trường Hybrid.
Kiểm tra CPU có hỗ trợ virtualization chưa bằng lệnh:
grep -E --color 'vmx|svm' /proc/cpuinfo
Kết quả mong đợi: Xuất hiện dòng chứa "vmx" (Intel) hoặc "svm" (AMD). Nếu không có, cần bật trong BIOS trước khi cài đặt.
Dung lượng Disk
Disk tối thiểu 32GB cho hệ điều hành Proxmox VE. Khuyến nghị sử dụng SSD/NVMe để tăng tốc độ I/O khi quản lý nhiều VM.
Cần phân vùng riêng biệt cho dữ liệu (LVM-Thin hoặc ZFS) để tách biệt OS và workload.
Yêu cầu Mạng
Í nhất 2 giao diện mạng (NIC):
- Mạng quản trị (Management Network): Kết nối internet để pull template và cập nhật.
- Mạng dữ liệu (Data Network): Kết nối nội bộ hoặc Bridge để các VM giao tiếp với nhau hoặc ra AWS.
Cài đặt Proxmox VE và cấu hình mạng cơ bản
Khởi động cài đặt
Download ISO Proxmox VE từ trang chủ, burn vào USB và boot vào server vật lý. Chọn ngôn ngữ và bàn phím, sau đó chọn "Install Proxmox VE".
Khi đến bước phân vùng (Partitioning), chọn "LVM" hoặc "LVM-Thin" để tối ưu hóa không gian lưu trữ cho VM.
Cấu hình Network Interface
Sau khi cài xong, truy cập CLI (Shell) để cấu hình mạng. Chúng ta sẽ tạo một Bridge network để VM có thể giao tiếp trực tiếp với switch vật lý hoặc router.
Sửa file cấu hình network của Proxmox:
nano /etc/network/interfaces
Nội dung file hoàn chỉnh cho cấu hình 2 NIC (eth0: Management, eth1: Bridge):
auto lo
iface lo inet loopback
# Management Interface (Internet & Web UI)
auto eth0
iface eth0 inet static
address 192.168.1.100/24
gateway 192.168.1.1
dns-nameservers 8.8.8.8 1.1.1.1
# Bridge Network for VMs (Internal/External Data)
auto vmbr0
iface vmbr0 inet static
address 10.0.0.1/24
bridge_ports eth1
bridge_stp off
bridge_fd 0
Kết quả mong đợi: File được lưu, cấu hình mạng sẽ áp dụng sau khi restart service hoặc reboot.
Áp dụng cấu hình mạng
Khởi động lại dịch vụ mạng để áp dụng thay đổi ngay lập tức mà không cần reboot toàn bộ hệ thống.
systemctl restart networking
Kiểm tra kết quả bằng lệnh ifconfig hoặc ip addr:
ip addr show vmbr0
Kết quả mong đợi: Giao diện vmbr0 xuất hiện với địa chỉ IP 10.0.0.1 và trạng thái UP.
Cấu hình VLAN (Tùy chọn)
Nếu cần tách biệt mạng theo VLAN, ta thêm cấu hình vào cùng file interfaces.
Thêm đoạn cấu hình VLAN ID 100 vào Bridge:
auto vlan100
iface vlan100 inet static
address 172.16.10.1/24
vlan_raw_device eth1
Kết quả mong đợi: Giao diện vlan100 được tạo và sẵn sàng cho các VM cần mạng riêng biệt.
Thiết lập tài khoản AWS và tạo IAM User
Đăng ký AWS Account
Truy cập aws.amazon.com và tạo tài khoản mới. Cần chuẩn bị thẻ tín dụng quốc tế để xác minh danh tính.
Sau khi đăng ký thành công, đăng nhập vào AWS Management Console.
Tạo IAM User cho Terraform
Để bảo mật, không sử dụng Root Account cho tự động hóa. Ta sẽ tạo một IAM User mới với quyền hạn cụ thể.
Vào console, chọn service IAM -> Users -> Add user.
Đặt tên User là: terraform-proxmox-hybrid.
Chọn loại truy cập: Programmatic access (để lấy Access Key và Secret Key).
Gán quyền hạn (Permissions)
Trong bước "Set permissions", chọn "Attach existing policies directly".
Tìm và chọn policy AdministratorAccess (cho môi trường Dev/Test để dễ thao tác). Nếu là Production, hãy tạo Custom Policy chỉ cho phép EC2, VPC, EBS, và IAM.
Tại bước Review, kiểm tra lại thông tin và chọn Create user.
Thu thập Access Keys
Sau khi tạo user, bảng Security credentials sẽ hiển thị Access Key ID và Secret Access Key.
Copy 2 giá trị này ngay lập tức. AWS chỉ hiển thị Secret Key 1 lần duy nhất. Nếu mất, bạn phải tạo user mới.
Lưu trữ an toàn 2 giá trị này vào file secret hoặc biến môi trường, không commit vào Git.
Cấu hình SSH keys và mạng nội bộ giữa Proxmox và AWS
Tạo cặp SSH Key
Trên server Proxmox (hoặc máy local có quyền truy cập Proxmox), tạo cặp khóa SSH mới để quản lý các VM trên AWS và Proxmox.
ssh-keygen -t ed25519 -C "hybrid-admin@proxmox-aws" -f /root/.ssh/hybrid-key -N ""
Kết quả mong đợi: Xuất hiện 2 file: /root/.ssh/hybrid-key (private) và /root/.ssh/hybrid-key.pub (public).
Thêm Public Key vào Proxmox
Để có thể SSH vào các VM được tạo trên Proxmox, ta cần thêm public key vào file ssh-authorized-keys của user root trên Proxmox.
cat /root/.ssh/hybrid-key.pub >> /root/.ssh/authorized_keys
Đảm bảo quyền truy cập đúng:
chmod 600 /root/.ssh/hybrid-key
chmod 644 /root/.ssh/authorized_keys
Kết quả mong đợi: Bạn có thể SSH vào Proxmox bằng lệnh: ssh -i /root/.ssh/hybrid-key root@192.168.1.100
Chuẩn bị Public Key cho AWS
Tạo một Key Pair mới trong AWS EC2 console để tương thích với Terraform.
Vào EC2 Console -> Key Pairs -> Create key pair.
Tên Key Pair: hybrid-key-pair.
Chọn loại file: .pem.
Click Create để tải file .pem về máy Proxmox.
Đổi tên file tải về thành hybrid-key.pem và đặt vào thư mục /root/.ssh/:
mv ~/Downloads/hybrid-key-pair.pem /root/.ssh/hybrid-key-pair.pem
chmod 400 /root/.ssh/hybrid-key-pair.pem
Kết quả mong đợi: File .pem có quyền 400, sẵn sàng để Terraform sử dụng khi tạo EC2 instance.
Cấu hình Firewall và Security Group
Trên AWS, tạo Security Group mới để cho phép SSH từ Proxmox.
Vào EC2 Console -> Security Groups -> Create Security Group.
Tên: hybrid-sg.
Quy tắc nhập (Inbound Rule):
- Type: SSH
- Port Range: 22
- Source: IP Public của Proxmox (hoặc 0.0.0.0/0 nếu đang test, nhưng không khuyến nghị cho production).
Trên Proxmox, đảm bảo firewall (ufw hoặc iptables) cho phép traffic đi ra internet (port 443, 80) để Terraform có thể gọi API AWS.
Verify kết quả kết nối
Trên Proxmox, test khả năng kết nối đến AWS API (đây là bước quan trọng để Terraform hoạt động sau này).
curl -I https://ec2.us-east-1.amazonaws.com
Kết quả mong đợi: HTTP 200 OK. Nếu không, kiểm tra lại firewall và gateway của Proxmox.
Test khả năng SSH vào EC2 (nếu đã có VM chạy sẵn) hoặc chuẩn bị cho bước tiếp theo.
ssh -i /root/.ssh/hybrid-key-pair.pem ec2-user@
Kết quả mong đợi: Kết nối SSH thành công vào EC2 instance.
Điều hướng series:
Mục lục: Series: Series: Xây dựng nền tảng Multi-Cloud Hybrid với Terraform, Crossplane và GitOps trên hạ tầng Proxmox và AWS
Phần 2: Cài đặt và cấu hình Terraform trên Proxmox »