Add --vm-id, --vm-vmid, --vm-storage for fully non-interactive PBS restore
Auto-selects VM backup, target VMID, storage, and auto-confirms existing VM deletion. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -25,6 +25,9 @@ ARGS_OWNER=""
|
||||
ARGS_PHONE=""
|
||||
ARGS_MSSQL=""
|
||||
SKIP_PBS=false
|
||||
ARGS_VM_ID=""
|
||||
ARGS_VM_VMID=""
|
||||
ARGS_VM_STORAGE=""
|
||||
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case $1 in
|
||||
@@ -35,6 +38,9 @@ while [[ $# -gt 0 ]]; do
|
||||
--phone) ARGS_PHONE="$2"; shift 2 ;;
|
||||
--mssql) ARGS_MSSQL="$2"; shift 2 ;;
|
||||
--skip-pbs) SKIP_PBS=true; shift ;;
|
||||
--vm-id) ARGS_VM_ID="$2"; shift 2 ;;
|
||||
--vm-vmid) ARGS_VM_VMID="$2"; shift 2 ;;
|
||||
--vm-storage) ARGS_VM_STORAGE="$2"; shift 2 ;;
|
||||
--help|-h)
|
||||
echo "사용법: pharmq-setup.sh [옵션]"
|
||||
echo " --name 약국명 (필수 또는 대화형 입력)"
|
||||
@@ -421,9 +427,12 @@ else:
|
||||
PYEOF
|
||||
|
||||
echo ""
|
||||
# --skip-pbs 옵션이면 자동 스킵
|
||||
# --skip-pbs: PBS 스킵 / --vm-id: 자동 선택 / 없으면 대화형
|
||||
if [ "$SKIP_PBS" = true ]; then
|
||||
TEMPLATE_VMID=""
|
||||
elif [ -n "$ARGS_VM_ID" ]; then
|
||||
TEMPLATE_VMID="$ARGS_VM_ID"
|
||||
print_ok "VM 백업 자동 선택: $TEMPLATE_VMID"
|
||||
else
|
||||
echo -ne "${CYAN}복원할 VM 백업 ID (숫자, Enter로 건너뛰기): ${NC}"
|
||||
read -r TEMPLATE_VMID </dev/tty
|
||||
@@ -437,11 +446,18 @@ PYEOF
|
||||
fi
|
||||
|
||||
# 복원 VMID
|
||||
if [ -n "$ARGS_VM_VMID" ]; then
|
||||
VM_VMID="$ARGS_VM_VMID"
|
||||
else
|
||||
echo -ne "${CYAN}복원할 VMID [기본: 200]: ${NC}"
|
||||
read -r VM_VMID </dev/tty
|
||||
VM_VMID=${VM_VMID:-200}
|
||||
fi
|
||||
|
||||
# 스토리지 선택
|
||||
if [ -n "$ARGS_VM_STORAGE" ]; then
|
||||
TARGET_STORAGE="$ARGS_VM_STORAGE"
|
||||
else
|
||||
echo ""
|
||||
print_step "사용 가능한 스토리지:"
|
||||
pvesm status -content images 2>/dev/null | tail -n +2 | while read -r line; do
|
||||
@@ -454,6 +470,7 @@ PYEOF
|
||||
echo -ne "${CYAN}저장 스토리지 [기본: local-lvm]: ${NC}"
|
||||
read -r TARGET_STORAGE </dev/tty
|
||||
TARGET_STORAGE=${TARGET_STORAGE:-local-lvm}
|
||||
fi
|
||||
|
||||
# 최신 스냅샷 찾기
|
||||
print_step "최신 백업 조회 중..."
|
||||
@@ -485,8 +502,13 @@ PYEOF
|
||||
# 기존 VM 확인
|
||||
if qm status "$VM_VMID" 2>/dev/null; then
|
||||
print_warn "VMID $VM_VMID가 이미 존재합니다."
|
||||
if [ -n "$ARGS_VM_ID" ]; then
|
||||
# 자동 모드 — 기존 VM 자동 삭제
|
||||
confirm="y"
|
||||
else
|
||||
echo -ne "${YELLOW}삭제하고 복원하시겠습니까? (y/N): ${NC}"
|
||||
read -r confirm </dev/tty
|
||||
fi
|
||||
if [[ "$confirm" =~ ^[Yy]$ ]]; then
|
||||
qm stop "$VM_VMID" --skiplock 2>/dev/null || true
|
||||
sleep 2
|
||||
|
||||
Reference in New Issue
Block a user