코드의 여백

MinIO 자동화 운영을 위한 환경설정과 윈도우 배치 파일 작성

by rowing0328

Intro

윈도우 환경에서 MinIO를 반복해서 운영하다 보면

매번 콘솔 명령어를 복사 / 붙여넣기 하고,

설정 바뀔 때마다 명령어를 수정하고,

심지어 프로세스 종료까지 직접 찾아서 해야 하는 번거로움이 생긴다.

 

"한 번에 깔끔하게, 클릭 한 번에 실행 및 종료까지!"

이게 자동화 스크립트의 매력이다.

 

이번 글에선

환경설정부터 실행, 우아한 종료까지

누구나 복붙만 하면 쓸 수 있는 배치 파일 템플릿을 소개한다.

 

준비물

  • MinIO 실행파일: minio.exe
  • 환경설정파일: minio_config.ini
  • 실행용 배치파일: minio_start.bat

 

환경설정파일 구조

설정만 바꿔주면 서버 계정 / 포트 / 저장 경로도 자동 반영된다.



자동화 배치 스크립트

@echo off
chcp 65001 >nul

REM INI 파일에서 key=value만 읽어서 환경변수로 세팅
for /f "usebackq tokens=1,* delims==" %%A in (`findstr /v /r "^$begin:math:display$.*$end:math:display$;" minio_config.ini`) do (
    set "%%A=%%B"
)

REM MinIO 서버를 백그라운드로 실행
start "" /B "%~dp0minio.exe" server %MINIO_DATA_DIR%

REM MinIO 서버가 준비될 때까지 잠깐 대기 (필요에 따라 2~5초 조정)
timeout /t 2 >nul

echo ----------------------------------------
echo MinIO 서버가 실행되었습니다.
echo 서버를 우아하게 종료하려면 "q" 키를 누르세요.
echo ----------------------------------------

REM 실행중인 MinIO 프로세스의 PID 가져오기 (여러 개 있을 경우 가장 위에 있는 것)
for /f "tokens=2 delims=," %%i in ('tasklist /FI "IMAGENAME eq minio.exe" /NH /FO CSV') do (
    set MINIO_PID=%%~i
    goto :afterPID
)
:afterPID

:wait_key
set /p user_input="종료하려면 'q' 입력 후 Enter: "
if /i "%user_input%"=="q" goto :stop_server
goto :wait_key

:stop_server
echo 서버를 종료합니다...
taskkill /PID %MINIO_PID% /F
echo MinIO 서버가 정상적으로 종료되었습니다.
pause

 

[ 설명 ]

  • chcp 65001
    한글 메시지 깨짐 방지 (UTF-8 인코딩)
  • 환경변수 세팅
    INI에서 key=value만 뽑아 즉시 환경변수로 등록
    set "%%A=%%B" 방식으로 안전하게 입력값 처리
  • start /B
    MinIO를 "백그라운드"로 실행해 터미널을 점유하지 않음
  • timeout
    MinIO 서버가 뜨는 데 약간의 시간이 필요하므로 2초 대기
    필요하다면 5초로 늘려도 무방
  • PID 탐색
    tasklist로 minio.exe의 PID를 잡아 저장
    여러 개 띄울 경우 첫번째(최상단) 프로세스 기준이니 주의
  • set /p & 종료 감시 루프
    q 입력 시 종료 신호 전송
    강제 종료 옵션 /F는 필요에 따라 제거 가능
  • pause
    스크립트 마지막에 잠시 멈춰 사용자에게 안내

 

 

환경변수의 휘발성

윈도우 배치 파일에서 등록하는 환경변수는

해당 배치 파일로 실행한 MinIO 서버 프로세스에서만 일시적으로 적용된다.

 

즉, 이 값들은 윈도우 전체(시스템 환경변수)에는
영구적으로 저장되지 않는다.

 

 

마무리

윈도우 환경에서도

클릭 한 번에 실행-종료-환경설정까지 자동화된 스크립트를 쓰면

실수도 줄고, 팀원들과 환경 공유도 쉬워진다.

 

작은 자동화부터 꾸준히 쌓아가다 보면

DevOps 감각도, 시스템 신뢰성도 자연스럽게 따라올거다.


참고 자료:

MinIO Official Web Site - MinIO Object Storage for Windows

 

MinIO Object Storage for Windows — MinIO Object Storage for Windows

MinIO Object Storage for Windows Table of Contents MinIO is an object storage solution that provides an Amazon Web Services S3-compatible API and supports all core S3 features. MinIO is built to deploy anywhere - public or private cloud, baremetal infrastr

min.io

 

Windows Server Official Web Site - cmd

 

cmd

Reference article for the cmd command, which starts a new instance of the command interpreter.

learn.microsoft.com

 

Windows Server Officail Web Site - taskkill

 

taskkill

Reference article for the taskkill command, which ends one or more tasks or processes.

learn.microsoft.com

블로그의 정보

코드의 여백

rowing0328

활동하기