# Proxmox VE 자동화 스크립트 Proxmox VE 호스트에서 직접 VM과 LXC를 생성하고 자동으로 설정하는 스크립트 모음입니다. ## 📋 스크립트 목록 ### 1. `setup.sh` - 전체 자동화 (권장) Proxmox 호스트에서 VM 2개(PHP 8.2, 8.4)와 LXC(MariaDB)를 한 번에 생성하고 설정합니다. **사전 요구사항:** - Proxmox VE 호스트 (root 계정) - Rocky Linux 9 ISO 파일 - Rocky Linux 9 LXC 템플릿 - Git 설치 **사용법:** ```bash cd /root git clone https://git.siane.kr/firstgarden/cafe24-testserver.git cd cafe24-testserver chmod +x proxmox/setup.sh ./proxmox/setup.sh ``` **주요 기능:** - ✓ Git 저장소 클론/업데이트 - ✓ VM1 (PHP 8.2) 생성 - ✓ VM2 (PHP 8.4) 생성 - ✓ LXC (MariaDB) 생성 및 자동 설정 - ✓ 사용자 입력으로 ID, 리소스 설정 가능 - ✓ 설정 요약 및 확인 절차 포함 **실행 흐름:** ``` 1. Git 저장소 설정 2. VM1 설정 입력 (ID, 이름, 메모리 등) 3. VM2 설정 입력 4. LXC 설정 입력 5. 설정 요약 확인 6. VM1, VM2, LXC 생성 7. LXC MariaDB 자동 설정 ``` --- ### 2. `create_vm.sh` - 개별 VM 생성 단일 VM을 생성합니다. ID는 사용자가 지정 가능합니다. **사용법:** ```bash chmod +x proxmox/create_vm.sh ./proxmox/create_vm.sh ``` **입력 항목:** - VM ID (예: 101, 102, 103...) - VM 이름 (예: vm1-php82) - 메모리 (MB) - CPU 코어 - 디스크 (GB) - ISO 경로 **주요 기능:** - ✓ 기본값 제공 (메모리 2GB, CPU 2Core, 디스크 30GB) - ✓ 기존 ID 중복 확인 - ✓ 설정 요약 및 확인 - ✓ Rocky Linux 설치 가이드 제공 **실행 예시:** ```bash $ ./proxmox/create_vm.sh [INFO] ========================================== [INFO] Proxmox VE - VM 생성 [INFO] ========================================== VM ID (예: 101): 103 VM 이름 (예: vm1-php82): vm3-php82-test 메모리 (MB) [기본값: 2048]: 2048 CPU 코어 [기본값: 2]: 2 디스크 (GB) [기본값: 30]: 30 ISO 경로 [기본값: local:iso/Rocky-9.0-latest.iso]: [INFO] ========================================== [INFO] 설정 요약 [INFO] ========================================== ID: 103 이름: vm3-php82-test ... ``` --- ### 3. `create_lxc.sh` - 개별 LXC 생성 및 MariaDB 설정 단일 LXC를 생성하고 MariaDB를 자동 설정합니다. ID는 사용자가 지정 가능합니다. **사용법:** ```bash chmod +x proxmox/create_lxc.sh ./proxmox/create_lxc.sh ``` **입력 항목:** - LXC ID (예: 201, 202, 203...) - 호스트명 (예: lxc-db) - 메모리 (MB) - CPU 코어 - 디스크 (GB) - LXC 템플릿 경로 - Git 저장소 URL **주요 기능:** - ✓ 기본값 제공 (메모리 2GB, CPU 2Core, 디스크 20GB) - ✓ 기존 ID 중복 확인 - ✓ 자동 IP 확인 - ✓ MariaDB 설정 스크립트 자동 실행 - ✓ LXC IP 주소 표시 **실행 예시:** ```bash $ ./proxmox/create_lxc.sh [INFO] ========================================== [INFO] Proxmox VE - LXC 생성 및 MariaDB 설정 [INFO] ========================================== LXC ID (예: 201): 202 호스트명 (예: lxc-db): lxc-db-backup 메모리 (MB) [기본값: 2048]: 2048 ... [✓] LXC 생성 완료 [✓] LXC IP: 192.168.1.100 [INFO] MariaDB 설정 스크립트 실행 중... ``` --- ## 🔧 사용 예시 ### 예시 1: 전체 자동화 (권장) ```bash # Proxmox 호스트에서 root로 실행 cd /root git clone https://git.siane.kr/firstgarden/cafe24-testserver.git cd cafe24-testserver chmod +x proxmox/setup.sh ./proxmox/setup.sh # 대화형 입력 시작 # 기본값 입력하려면 Enter 키 누르기 # 전부 입력 후 확인 (y/n) ``` ### 예시 2: 개별 VM 생성 ```bash # VM1 (PHP 8.2) ./proxmox/create_vm.sh # ID 입력: 101 # 이름 입력: vm1-php82 # 나머지 기본값 입력 # VM2 (PHP 8.4) ./proxmox/create_vm.sh # ID 입력: 102 # 이름 입력: vm2-php84 ``` ### 예시 3: 개별 LXC 생성 ```bash ./proxmox/create_lxc.sh # ID 입력: 201 # 호스트명 입력: lxc-db # 나머지 설정 입력 # MariaDB 설정이 자동으로 진행됨 ``` --- ## ⚙️ 고급 옵션 ### VM 생성 후 수동 설정 VM을 생성한 후 Proxmox 웹 UI 콘솔에서 Rocky Linux를 설치한 후: ```bash # VM에 SSH로 접속 ssh firstgarden@ # 스크립트 다운로드 및 실행 curl -fsSL https://git.siane.kr/firstgarden/cafe24-testserver/archive/main.tar.gz | tar xz cd cafe24-testserver-main # 공통 설정 실행 chmod +x vm/setup_common.sh ./vm/setup_common.sh # PHP 설치 chmod +x vm/install_php.sh ./vm/install_php.sh 8.2 # 또는 8.4 ``` ### LXC 수동 설정 LXC가 생성되었지만 MariaDB 설정을 다시 실행하려면: ```bash # Proxmox 호스트에서 실행 pct exec 201 -- bash # LXC 내부에서 cd /root/cafe24-testserver-main chmod +x lxc/setup_mariadb.sh ./lxc/setup_mariadb.sh ``` --- ## 🐛 문제 해결 ### 문제: "Proxmox VE가 설치되어 있지 않습니다." **원인:** Proxmox 호스트가 아닌 다른 시스템에서 실행 중 **해결:** Proxmox VE 호스트의 root 계정에서만 실행 ```bash ssh root@proxmox-host cd /root/cafe24-testserver ./proxmox/setup.sh ``` ### 문제: "VM ID 101이 이미 존재합니다." **해결:** 다른 ID 사용 또는 기존 VM 삭제 ```bash # 기존 VM 확인 qm list # 기존 VM 삭제 (주의!) qm destroy 101 --force ``` ### 문제: LXC 생성 후 IP가 자동 할당되지 않음 **해결:** DHCP 설정 확인 ```bash # LXC 네트워크 재시작 pct exec 201 -- systemctl restart networking # IP 확인 pct exec 201 -- ip addr show eth0 ``` ### 문제: MariaDB 스크립트가 실행되지 않음 **원인:** 저장소 다운로드 실패 **해결:** 수동으로 실행 ```bash pct exec 201 -- bash -c " cd /root curl -fsSL 'https://git.siane.kr/firstgarden/cafe24-testserver/archive/main.tar.gz' | tar xz cd cafe24-testserver-main chmod +x lxc/setup_mariadb.sh ./lxc/setup_mariadb.sh " ``` --- ## 📊 기본 설정값 | 항목 | VM | LXC | |------|----|----| | 메모리 | 2048 MB | 2048 MB | | CPU | 2 Core | 2 Core | | 디스크 | 30 GB | 20 GB | | 네트워크 | vmbr0 (DHCP) | vmbr0 (DHCP) | | 저장소 | local-lvm | local-lvm | --- ## 🔐 보안 주의사항 1. **Git 저장소 URL 변경** - 모든 스크립트의 `yourusername` 부분을 실제 GitHub 계정으로 변경 - 개인 저장소인 경우 SSH 키 설정 필요 2. **Root 계정 사용** - 스크립트는 root 권한이 필요 - Proxmox 호스트에서만 실행 3. **비밀번호 안전성** - MariaDB 설정 중 강력한 비밀번호 사용 --- ## 📝 참고사항 - 모든 스크립트는 **Rocky Linux 9** 기준으로 작성됨 - **색상 표시**는 Linux/Unix 환경에서만 작동 (Windows PowerShell 미지원) - 각 스크립트는 독립적으로 실행 가능하며 서로 영향을 주지 않음 --- **최종 수정:** 2024년 12월 23일 **버전:** 1.0.0