Files
cafe24-testserver/proxmox/README.md
KWON c95547628b 저장소 주소 변경: GitHub Gitea
모든 파일의 Git 저장소 주소를 변경:
- https://github.com/yourusername/cafe24-testserver
   https://git.siane.kr/firstgarden/cafe24-testserver

변경된 파일:
- README.md: 3곳
- proxmox/README.md: 4곳
- proxmox/setup.sh: 3곳
- proxmox/create_vm.sh: 1곳
- proxmox/create_lxc.sh: 2곳
- vm/setup_common.sh: 1곳
- lxc/setup_mariadb.sh: 1곳
2025-12-23 11:54:41 +09:00

6.8 KiB

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 설치

사용법:

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는 사용자가 지정 가능합니다.

사용법:

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 설치 가이드 제공

실행 예시:

$ ./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는 사용자가 지정 가능합니다.

사용법:

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 주소 표시

실행 예시:

$ ./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: 전체 자동화 (권장)

# 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 생성

# 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 생성

./proxmox/create_lxc.sh
# ID 입력: 201
# 호스트명 입력: lxc-db
# 나머지 설정 입력
# MariaDB 설정이 자동으로 진행됨

⚙️ 고급 옵션

VM 생성 후 수동 설정

VM을 생성한 후 Proxmox 웹 UI 콘솔에서 Rocky Linux를 설치한 후:

# VM에 SSH로 접속
ssh firstgarden@<VM_IP>

# 스크립트 다운로드 및 실행
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 설정을 다시 실행하려면:

# 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 계정에서만 실행

ssh root@proxmox-host
cd /root/cafe24-testserver
./proxmox/setup.sh

문제: "VM ID 101이 이미 존재합니다."

해결: 다른 ID 사용 또는 기존 VM 삭제

# 기존 VM 확인
qm list

# 기존 VM 삭제 (주의!)
qm destroy 101 --force

문제: LXC 생성 후 IP가 자동 할당되지 않음

해결: DHCP 설정 확인

# LXC 네트워크 재시작
pct exec 201 -- systemctl restart networking

# IP 확인
pct exec 201 -- ip addr show eth0

문제: MariaDB 스크립트가 실행되지 않음

원인: 저장소 다운로드 실패

해결: 수동으로 실행

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