proxmox-rdp-autosetup/pbs_auto_registration.md
root 9d0adf6f8b feat: RDP 자동 로그인 웹 제어 패널 추가
- Flask 기반 웹 제어 패널 구현
- 토글 스위치로 RDP 자동 로그인 제어
- Tailscale IP 기반 접속 정보 표시
- Python venv 환경 사용
- systemd 서비스로 자동 실행
- PBS 자동 등록 스크립트 기획서 추가

🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-06 00:33:02 +09:00

262 lines
5.7 KiB
Markdown

# Proxmox Backup Server (PBS) 자동 등록 스크립트 기획서
## 📋 프로젝트 개요
### 목적
Proxmox VE 호스트에 PBS(Proxmox Backup Server)를 자동으로 등록하고 백업 작업을 구성하는 스크립트
### 주요 기능
- PBS 서버 자동 감지 및 연결
- 스토리지 구성 자동화
- 백업 작업 스케줄 설정
- 기존 백업 설정 마이그레이션
## 🎯 요구사항
### 필수 요구사항
1. **PBS 서버 정보**
- PBS 서버 IP/호스트명
- PBS 사용자 인증 정보 (username@realm)
- PBS API 토큰 또는 비밀번호
- Datastore 이름
2. **Proxmox VE 요구사항**
- Proxmox VE 6.x 이상
- root 권한
- pvesm 명령어 사용 가능
3. **네트워크 요구사항**
- PBS 서버와 통신 가능 (포트 8007)
- 지문(fingerprint) 자동 획득 가능
## 🔧 기능 상세
### 1. PBS 서버 감지 및 검증
```bash
# PBS 서버 연결 테스트
# API 접근 가능 여부 확인
# 지문(fingerprint) 자동 획득
```
### 2. 스토리지 등록
```bash
# PBS 스토리지를 Proxmox VE에 추가
pvesm add pbs <storage-id> \
--server <pbs-server> \
--datastore <datastore-name> \
--username <username@realm> \
--password <password> \
--fingerprint <fingerprint>
```
### 3. 백업 작업 구성
- 일일 백업 스케줄 설정
- VM/CT 선택적 백업
- 보존 정책 설정
### 4. 암호화 설정 (선택사항)
- 백업 암호화 키 생성
- 키 안전한 저장
## 📝 스크립트 구조
```
pbs_auto_registration.sh
├── 1. 환경 체크
│ ├── Proxmox 버전 확인
│ ├── 필수 도구 확인
│ └── root 권한 확인
├── 2. PBS 정보 수집
│ ├── 대화형 모드
│ ├── 설정 파일 모드
│ └── 환경 변수 모드
├── 3. PBS 연결 검증
│ ├── 네트워크 연결 테스트
│ ├── API 인증 테스트
│ └── Datastore 접근 확인
├── 4. 스토리지 구성
│ ├── 기존 스토리지 확인
│ ├── 새 스토리지 추가
│ └── 권한 설정
├── 5. 백업 작업 설정
│ ├── 백업 대상 선택
│ ├── 스케줄 설정
│ └── 알림 설정
└── 6. 검증 및 완료
├── 설정 테스트
├── 첫 백업 실행 (선택)
└── 로그 출력
```
## 🔐 보안 고려사항
### 인증 방식
1. **API 토큰 (권장)**
- 토큰 ID와 시크릿 사용
- 제한된 권한 부여 가능
2. **패스워드 인증**
- 임시 사용 후 토큰으로 전환 권장
- 설정 파일에 평문 저장 금지
### 암호화
- 전송 중 암호화: HTTPS (포트 8007)
- 저장 시 암호화: 선택적 백업 암호화
## 📦 설정 파일 예시
### `/etc/pve/pbs_config.conf`
```ini
# PBS Server Configuration
PBS_SERVER=192.168.1.100
PBS_PORT=8007
PBS_DATASTORE=backup-store
PBS_USERNAME=backup@pbs
# API Token (recommended)
PBS_TOKEN_ID=backup@pbs!automation
PBS_TOKEN_SECRET=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
# Storage Configuration
STORAGE_ID=pbs-backup
STORAGE_CONTENT=backup
# Backup Schedule
BACKUP_SCHEDULE="0 2 * * *" # 매일 새벽 2시
BACKUP_MODE=snapshot
BACKUP_COMPRESS=zstd
# Retention Policy
KEEP_DAILY=7
KEEP_WEEKLY=4
KEEP_MONTHLY=6
KEEP_YEARLY=1
# Notification
NOTIFY_EMAIL=admin@example.com
NOTIFY_MODE=failure # always|failure
```
## 🚀 사용 방법
### 기본 실행 (대화형)
```bash
bash pbs_auto_registration.sh
```
### 설정 파일 사용
```bash
bash pbs_auto_registration.sh --config /etc/pve/pbs_config.conf
```
### 자동 모드 (프롬프트 없음)
```bash
bash pbs_auto_registration.sh --auto \
--server 192.168.1.100 \
--datastore backup-store \
--username backup@pbs \
--token-secret "xxxx"
```
## 🔄 기존 백업 마이그레이션
### 로컬 백업에서 PBS로 전환
1. 기존 백업 목록 확인
2. PBS로 백업 복사 (선택사항)
3. 백업 작업 재구성
4. 기존 로컬 백업 정리
## 📊 모니터링 및 검증
### 백업 상태 확인
```bash
# PBS 스토리지 상태
pvesm status
# 백업 작업 목록
pvesh get /cluster/backup
# 최근 백업 로그
cat /var/log/pve/tasks/active
```
### 헬스 체크
- PBS 연결 상태
- 스토리지 용량
- 백업 성공률
- 보존 정책 준수
## 🛠️ 문제 해결
### 일반적인 문제
1. **연결 실패**
- 방화벽 규칙 확인
- PBS 서비스 상태 확인
- 인증서/지문 문제
2. **권한 오류**
- PBS 사용자 권한 확인
- Datastore 접근 권한
- API 토큰 권한
3. **백업 실패**
- 스토리지 용량 확인
- 네트워크 안정성
- VM/CT 상태 확인
## 📈 향후 개선 사항
1. **다중 PBS 서버 지원**
- 복제/미러링 설정
- 로드 밸런싱
2. **고급 백업 정책**
- VM별 다른 스케줄
- 조건부 백업
- 증분 백업 최적화
3. **자동 복구**
- 백업 검증 자동화
- 복구 테스트 자동화
- 재해 복구 계획
4. **통합 관리**
- 웹 UI 대시보드
- 중앙 집중식 관리
- 멀티 클러스터 지원
## 📚 참고 자료
- [Proxmox Backup Server Documentation](https://pbs.proxmox.com/docs/)
- [Proxmox VE Storage Documentation](https://pve.proxmox.com/wiki/Storage)
- [PBS API Reference](https://pbs.proxmox.com/docs/api-viewer/)
## 🔍 테스트 시나리오
### 단위 테스트
1. PBS 서버 연결 테스트
2. 인증 테스트
3. 스토리지 추가/제거 테스트
### 통합 테스트
1. 전체 설정 프로세스
2. 백업 실행 테스트
3. 복구 테스트
### 스트레스 테스트
1. 대용량 VM 백업
2. 동시 다중 백업
3. 네트워크 장애 시나리오
## 📄 라이선스
MIT License
## 👥 기여자
- 프로젝트 관리자
- 개발팀
- 테스트팀