noVNC 스크립트 CLI 인자 지원 + Phase 9 자동 PVE 접속 정보 전달
- VNC/pharmq-novnc-setup.sh: --pve-host, --pve-password, --pharmacy-code, --pharmacy-name 인자 추가 - 인자 있으면 대화형 입력 스킵, 없으면 기존대로 대화형 - set -euo → set -eo (unset 변수 에러 방지) - pharmq-setup.sh Phase 9: PVE LAN IP 자동 감지 + 약국 정보 인자로 전달 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -4,7 +4,25 @@
|
||||
# Ubuntu VM에서 실행하여 Proxmox Host의 VM VNC를 noVNC로 제공
|
||||
# 사용법: curl -fsSL https://git.0bin.in/thug0bin/pve9-repo-fix/raw/branch/main/VNC/pharmq-novnc-setup.sh | bash
|
||||
|
||||
set -euo pipefail
|
||||
set -eo pipefail
|
||||
|
||||
# 명령행 인자 처리 (통합 스크립트에서 호출 시 사용)
|
||||
ARG_PVE_HOST=""
|
||||
ARG_PVE_USER=""
|
||||
ARG_PVE_PASSWORD=""
|
||||
ARG_PHARMACY_CODE=""
|
||||
ARG_PHARMACY_NAME=""
|
||||
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case $1 in
|
||||
--pve-host) ARG_PVE_HOST="$2"; shift 2 ;;
|
||||
--pve-user) ARG_PVE_USER="$2"; shift 2 ;;
|
||||
--pve-password) ARG_PVE_PASSWORD="$2"; shift 2 ;;
|
||||
--pharmacy-code) ARG_PHARMACY_CODE="$2"; shift 2 ;;
|
||||
--pharmacy-name) ARG_PHARMACY_NAME="$2"; shift 2 ;;
|
||||
*) shift ;;
|
||||
esac
|
||||
done
|
||||
|
||||
# 색상 코드 정의
|
||||
RED='\033[0;31m'
|
||||
@@ -185,24 +203,29 @@ print(5900 + $vmid % 100)
|
||||
|
||||
# VM 선택 및 설정
|
||||
configure_vms() {
|
||||
echo -e "${CYAN}Proxmox API 접속 정보 입력:${NC}"
|
||||
echo ""
|
||||
# 인자가 있으면 사용, 없으면 대화형
|
||||
if [ -n "$ARG_PVE_HOST" ] && [ -n "$ARG_PVE_PASSWORD" ]; then
|
||||
PVE_HOST="$ARG_PVE_HOST"
|
||||
PVE_USER="${ARG_PVE_USER:-root@pam}"
|
||||
PVE_PASSWORD="$ARG_PVE_PASSWORD"
|
||||
msg_ok "PVE 접속 정보 자동 설정: $PVE_HOST ($PVE_USER)"
|
||||
else
|
||||
echo -e "${CYAN}Proxmox API 접속 정보 입력:${NC}"
|
||||
echo ""
|
||||
|
||||
# Proxmox 호스트 IP (기본값: 192.168.0.200)
|
||||
read -p "Proxmox 호스트 IP [192.168.0.200]: " PVE_HOST </dev/tty
|
||||
PVE_HOST=${PVE_HOST:-192.168.0.200}
|
||||
read -p "Proxmox 호스트 IP [192.168.0.200]: " PVE_HOST </dev/tty
|
||||
PVE_HOST=${PVE_HOST:-192.168.0.200}
|
||||
|
||||
# Proxmox 사용자명
|
||||
read -p "Proxmox 사용자명 [root@pam]: " PVE_USER </dev/tty
|
||||
PVE_USER=${PVE_USER:-root@pam}
|
||||
read -p "Proxmox 사용자명 [root@pam]: " PVE_USER </dev/tty
|
||||
PVE_USER=${PVE_USER:-root@pam}
|
||||
|
||||
# Proxmox 비밀번호
|
||||
echo -n "Proxmox 비밀번호: "
|
||||
read -s PVE_PASSWORD </dev/tty
|
||||
echo ""
|
||||
echo -n "Proxmox 비밀번호: "
|
||||
read -s PVE_PASSWORD </dev/tty
|
||||
echo ""
|
||||
|
||||
if [ -z "$PVE_PASSWORD" ]; then
|
||||
msg_error "Proxmox 비밀번호는 필수입니다."
|
||||
if [ -z "$PVE_PASSWORD" ]; then
|
||||
msg_error "Proxmox 비밀번호는 필수입니다."
|
||||
fi
|
||||
fi
|
||||
|
||||
echo ""
|
||||
@@ -283,33 +306,38 @@ configure_vms() {
|
||||
|
||||
# 약국 정보 입력
|
||||
get_pharmacy_info() {
|
||||
echo ""
|
||||
echo -e "${CYAN}약국 정보를 입력해주세요:${NC}"
|
||||
echo ""
|
||||
# 인자가 있으면 사용
|
||||
if [ -n "$ARG_PHARMACY_CODE" ] && [ -n "$ARG_PHARMACY_NAME" ]; then
|
||||
PHARMACY_CODE="$ARG_PHARMACY_CODE"
|
||||
PHARMACY_NAME="$ARG_PHARMACY_NAME"
|
||||
msg_ok "약국 정보 자동 설정: $PHARMACY_CODE ($PHARMACY_NAME)"
|
||||
else
|
||||
echo ""
|
||||
echo -e "${CYAN}약국 정보를 입력해주세요:${NC}"
|
||||
echo ""
|
||||
|
||||
# 약국 코드
|
||||
while true; do
|
||||
read -p "약국 코드 (예: P0014): " PHARMACY_CODE </dev/tty
|
||||
if [ -z "$PHARMACY_CODE" ]; then
|
||||
msg_warn "약국 코드는 필수입니다."
|
||||
continue
|
||||
fi
|
||||
if [[ ! "$PHARMACY_CODE" =~ ^P[0-9]{4}$ ]]; then
|
||||
msg_warn "약국 코드는 P0001 형식이어야 합니다."
|
||||
continue
|
||||
fi
|
||||
break
|
||||
done
|
||||
while true; do
|
||||
read -p "약국 코드 (예: P0014): " PHARMACY_CODE </dev/tty
|
||||
if [ -z "$PHARMACY_CODE" ]; then
|
||||
msg_warn "약국 코드는 필수입니다."
|
||||
continue
|
||||
fi
|
||||
if [[ ! "$PHARMACY_CODE" =~ ^P[0-9]{4}$ ]]; then
|
||||
msg_warn "약국 코드는 P0001 형식이어야 합니다."
|
||||
continue
|
||||
fi
|
||||
break
|
||||
done
|
||||
|
||||
# 약국 이름
|
||||
while true; do
|
||||
read -p "약국 이름 (예: 늘기쁨약국): " PHARMACY_NAME </dev/tty
|
||||
if [ -z "$PHARMACY_NAME" ]; then
|
||||
msg_warn "약국 이름은 필수입니다."
|
||||
continue
|
||||
fi
|
||||
break
|
||||
done
|
||||
while true; do
|
||||
read -p "약국 이름 (예: 늘기쁨약국): " PHARMACY_NAME </dev/tty
|
||||
if [ -z "$PHARMACY_NAME" ]; then
|
||||
msg_warn "약국 이름은 필수입니다."
|
||||
continue
|
||||
fi
|
||||
break
|
||||
done
|
||||
fi
|
||||
|
||||
# WebSocket 포트
|
||||
WS_PORT1=6085
|
||||
|
||||
Reference in New Issue
Block a user