명령줄 도구
DB 를 직접 다루는 geo-mlops-admin 과 실행 중인 서버에 접속하는 ./client
필요 권한: 전역 관리자
MLOps Central Platform 의 명령줄 도구 두 가지.
| 도구 | 접속 대상 | 사용자 | 용도 |
|---|---|---|---|
geo-mlops-admin | DB 에 직접 (서버가 중지된 상태에서도 가능) | 플랫폼 운영자 | 계정·역할 응급 복구, DB 재구성, 가중치 미러 채우기 |
geo-mlops-client (./client) | 실행 중인 서버에 HTTP 로 | 모든 사용자 | 로그인, 대용량 데이터셋 업로드, API 호출 스크립트 |
geo-mlops-admin
앱과 같은 환경변수(GEO_MLOPS_*, 특히 GEO_MLOPS_DATABASE_URL)나 .env 를 읽음. 별도 접속 옵션 없음. 서버 저장소 루트의 ./admin 스크립트로 실행(./run geo-mlops-admin … 또는 python -m geo_mlops.admin 과 동일).
./admin --help
컨테이너로 설치했다면 앱 컨테이너 내부에서 실행(작업 디렉터리 /app).
docker compose exec app ./admin user list
user (계정)
./admin user create [email protected] --admin # 계정 + 전역 관리자
./admin user create [email protected] # 비밀번호를 만들어 출력
./admin user create [email protected] --password '<your-secret>'
./admin user list # 계정과 역할 목록
./admin user delete [email protected] --yes # 영구 삭제
--inactive(비활성으로 생성), --unverified(이메일 미인증으로 생성) 옵션도 제공.
admin (전역 관리자)
./admin admin grant [email protected]
./admin admin revoke [email protected]
화면에서 사용할 수 있는 전역 관리자가 남지 않았거나 비밀번호를 알 수 없을 때 사용하는 응급 복구 수단. 비밀번호를 변경하는 명령은 없음. 로그인할 수 있는 다른 계정에 admin grant 하거나, user create <새 메일> --admin 으로 새 관리자 생성(비밀번호를 생성해 출력).
role (테넌트 역할)
./admin role grant [email protected] DEMO OPERATOR # 역할 부여·변경
./admin role revoke [email protected] DEMO
역할은 VIEWER, DEVELOPER, OPERATOR, APPROVER, ADMIN 중 하나.
db reset (데이터베이스 재구성)
./admin db reset --seed # 전체 삭제 후 마이그레이션으로 재생성하고 초기 데이터 입력
--seed는 재구성 뒤 부팅 시드(부트스트랩 관리자·테넌트)를 다시 생성하고, 테넌트 네임스페이스도 생성. 네임스페이스 생성을 건너뛰려면--no-cluster지정.- 서버 저장소의
./admin-database-initialize는db reset --seed --yes를 확인 없이 실행하는 스크립트. 개발 환경 전용.
seed-demo (데모 데이터)
./admin seed-demo --tenant DEMO --days 30
부트스트랩 테넌트(또는 --tenant 로 지정한 테넌트)의 모든 화면을 데모 데이터로 채움. 데이터가 이미 있으면 생략.
weights (가중치 미러)
DB 없이 오브젝트 스토리지와 카탈로그만 사용. 설치 직후 DB 가 준비되기 전에도 실행 가능.
./admin weights list # 카탈로그와 미러 상태 (--framework 로 좁힘)
./admin weights warm --framework rf-detr # 인터넷에서 내려받아 미러에 저장 (--model 로 하나만)
./admin weights warm --all
./admin weights push rf-detr-large ./rf-detr-large.pth --framework rf-detr # 폐쇄망: 반입한 파일 업로드
./admin weights prune # 카탈로그가 안 가리키는 옛 객체 삭제 (확인을 물음, --yes)
같은 작업을 화면에서 하는 방법은 가중치 미러 참고.
edge (엣지 수집 파일)
./admin edge reclaim # 어느 행도 가리키지 않는 엣지 업로드 원본을 찾아 보고만 함
./admin edge reclaim --apply # 찾은 것을 수집 파일로 등록
./client (사용자용 클라이언트)
geo-mlops-client 는 실행 중인 서버에 접속하는 사용자용 도구. 로그인하면 로그인 토큰(JWT)을 ~/.geo-mlops.json(소유자만 읽기 가능)에 저장하고, 이후 명령에서 재사용. 서버 저장소의 ./client 스크립트로 실행.
./client login [email protected] --base-url https://mlops.example.com --tenant DEMO
./client whoami
./client logout
- 서버 주소는
--base-url→GEO_MLOPS_CLIENT_BASE_URL→ 마지막 로그인 주소 → 기본값http://localhost:10000순으로 결정. - 테넌트는
--tenant CODE,GEO_MLOPS_CLIENT_TENANT, 또는 로그인 때 저장한 기본값 사용. - 토큰 파일 위치는
--config PATH나GEO_MLOPS_CLIENT_CONFIG로 지정.
로그인 없이 사용하는 점검 명령.
./client meta health # 동작 여부, 버전
./client meta readyz # DB 연결까지 준비됐나 (문제가 있으면 종료 코드 1)
./client meta metrics # Prometheus 지표 원문
그 밖의 API 는 <그룹> <동작> 으로 호출(tenants, experiments, models, datasets, settings 등). ./client <그룹> --help 는 동작 목록 출력.
./client models list
./client datasets upload-archive <데이터셋 ID> ~/corpus --chunk-size 64M
./client training-weights upload my-ckpt ./best.pt --framework yolo --model yolo26n