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,18 +203,22 @@ print(5900 + $vmid % 100)
|
||||
|
||||
# VM 선택 및 설정
|
||||
configure_vms() {
|
||||
# 인자가 있으면 사용, 없으면 대화형
|
||||
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}
|
||||
|
||||
# Proxmox 사용자명
|
||||
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 ""
|
||||
@@ -204,6 +226,7 @@ configure_vms() {
|
||||
if [ -z "$PVE_PASSWORD" ]; then
|
||||
msg_error "Proxmox 비밀번호는 필수입니다."
|
||||
fi
|
||||
fi
|
||||
|
||||
echo ""
|
||||
msg_info "Proxmox API 연결 테스트 중..."
|
||||
@@ -283,11 +306,16 @@ configure_vms() {
|
||||
|
||||
# 약국 정보 입력
|
||||
get_pharmacy_info() {
|
||||
# 인자가 있으면 사용
|
||||
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
|
||||
@@ -301,7 +329,6 @@ get_pharmacy_info() {
|
||||
break
|
||||
done
|
||||
|
||||
# 약국 이름
|
||||
while true; do
|
||||
read -p "약국 이름 (예: 늘기쁨약국): " PHARMACY_NAME </dev/tty
|
||||
if [ -z "$PHARMACY_NAME" ]; then
|
||||
@@ -310,6 +337,7 @@ get_pharmacy_info() {
|
||||
fi
|
||||
break
|
||||
done
|
||||
fi
|
||||
|
||||
# WebSocket 포트
|
||||
WS_PORT1=6085
|
||||
|
||||
@@ -1086,9 +1086,14 @@ phase9_novnc_setup() {
|
||||
return 0
|
||||
fi
|
||||
|
||||
# CT 안에서 noVNC 설치 스크립트 실행
|
||||
# PVE host IP 감지 (CT에서 PVE API에 접근할 LAN IP)
|
||||
local PVE_LAN_IP
|
||||
PVE_LAN_IP=$(hostname -I | awk '{print $1}')
|
||||
|
||||
# CT 안에서 noVNC 설치 스크립트 실행 (PVE 접속 정보 + 약국 정보 자동 전달)
|
||||
print_step "CT $CT_VMID 내부에 noVNC 설치 중..."
|
||||
pct exec "$CT_VMID" -- bash -c "curl -fsSL https://git.0bin.in/thug0bin/pve9-repo-fix/raw/branch/main/VNC/pharmq-novnc-setup.sh -o /tmp/pharmq-novnc-setup.sh && chmod +x /tmp/pharmq-novnc-setup.sh && bash /tmp/pharmq-novnc-setup.sh; rm -f /tmp/pharmq-novnc-setup.sh" || true
|
||||
print_info "PVE API: ${PVE_LAN_IP}:8006, 약국: ${PHARMACY_CODE:-미정} (${PHARMACY_NAME:-미정})"
|
||||
pct exec "$CT_VMID" -- bash -c "curl -fsSL https://git.0bin.in/thug0bin/pve9-repo-fix/raw/branch/main/VNC/pharmq-novnc-setup.sh -o /tmp/pharmq-novnc-setup.sh && chmod +x /tmp/pharmq-novnc-setup.sh && bash /tmp/pharmq-novnc-setup.sh --pve-host ${PVE_LAN_IP} --pve-password trajet6640 --pharmacy-code ${PHARMACY_CODE:-P0000} --pharmacy-name '${PHARMACY_NAME:-미정}'; rm -f /tmp/pharmq-novnc-setup.sh" || true
|
||||
|
||||
print_ok "Phase 9 완료: noVNC 설치 (CT $CT_VMID)"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user