환경 변수
mac env 명령으로 MAC의 동작을 결정하는 변수들(레지스트리, 마스터 IP, 스위치 자격
증명 등)을 조회·설정·삭제할 수 있습니다.
mac env
~$ mac env # 관리 대상 변수와 출처를 나열
~$ mac env set KEY=VAL [...] # ~/.mac/env에 저장 (사용자별, 영속)
~$ mac env unset KEY [...] # ~/.mac/env에서 삭제
파일 우선순위
MAC은 다음 파일들에서 변수를 읽습니다. 우선순위가 높은 순서대로입니다.
~/.mac/env— 사용자별 오버라이드 (mac env set이 기록)/etc/mango/mac/env— 전역 기본값 (설치 시 작성, root 권한으로 편집)
관리 대상 변수에 대해 셸 환경 변수는 무시됩니다 — 재기동 후에도 값이 유지되도록 항상
mac env set을 사용하세요. 예외는 MAC_CONFIG_DIR와 MAC_IMAGE_SOURCE 두 가지로,
셸에서 export하면 해당 호출 또는 해당 노드에만 값이 적용됩니다 ($HOME이 NFS로
공유될 때 유용합니다).
$HOME이 NFS로 마운트되는 클러스터라면, ~/.mac/env는 같은 홈 디렉터리를 마운트하는
모든 호스트가 함께 보게 됩니다. NODE_NAME 같은 호스트별 값은 절대 여기에 넣지
마세요 — 호스트별 설정은 /etc/mango/mac/env에 두고, ~/.mac/env에는 로그인하는
어느 서버에서나 동일한 값 (예: MASTER_IP)만 둡니다.
이미지 소스
MAC_IMAGE_SOURCE는 MAC 이미지의 출처를 결정합니다: registry (기본값 — 배포된
이미지를 받아옴) 또는 local (.build.yml compose 오버라이드로 소스 체크아웃에서
빌드). 노드별 빌드 선택이 NFS로 공유된 ~/.mac/env에 가려지지 않도록, 이 변수만은
다른 변수와 다른 우선순위를 씁니다:
- 프로세스 환경 (
MAC_IMAGE_SOURCE=local mac start master) /etc/mango/mac/env(전역)~/.mac/env(사용자)
mac pull, mac start, mac restart의 --local / --registry 플래그는 위의 모든
설정을 한 번의 호출에 한해 재정의합니다.
변수 레퍼런스
공통
| 변수 | 사용처 | 용도 |
|---|---|---|
MASTER_IP | 에이전트 | 마스터 노드 IP (필수, 기본값 없음) |
MAC_REGISTRY | 모두 | 컨테이너 이미지 레지스트리(공개 기본값 repo.mangoboost.io/public-docker/mac) |
MAC_CONFIG_DIR | 모두 | Compose 파일 디렉터리 (기본 /etc/mango/mac) |
MAC_IMAGE_SOURCE | 모두 | registry (기본) 또는 local — 이미지 소스 참고 |
MAC_AUTH_ENABLED | 마스터 | JWT 인증 활성화 (기본 true) |
MAC_ADMIN_PASSWORD | 마스터 | 최초 기동 시 admin 비밀번호 (기본 admin) |
NODE_NAME | 에이전트 | 노드 이름 강제 지정 (기본: 호스트네임) |
SDK_AGENT_IMAGE | 에이전트 | mango-sdk-agent 이미지(공개 기본값 repo.mangoboost.io/public-docker/mango-sdk-agent:latest) |
TZ | 모두 | 컨테이너 타임존(IANA 이름). 미설정 시 호스트에서 자동 감지 |
서비스 포트
| 변수 | 사용처 | 용도 |
|---|---|---|
MASTER_API_PORT | 마스터 | API 서버 노출 포트 (기본 28080) |
MASTER_WEB_PORT | 마스터 | 웹 UI 노출 포트 (기본 23000) |
PROMETHEUS_PORT | 마스터 | Prometheus 노출 포트 (기본 29090) |
LOKI_PORT | 마스터 | Loki 노출 포트 (기본 29210) |
SNMP_PORT | 마스터 | switch-exporter SNMP 포트 (기본 161) |
ALERT_RULES_PATH | 마스터 | Prometheus 알림 규칙 JSON 경로 재정의 |
TLS (HTTPS)
| 변수 | 사용처 | 용도 |
|---|---|---|
MAC_TLS_ENABLED | 마스터 | api-server / web-ui의 HTTPS 활성화 (기본 false) |
MAC_TLS_CERT_DIR | 마스터 | server.crt와 server.key가 위치한 호스트 디렉터리 |
MAC_TLS_PORT | 마스터 | API 서버 HTTPS 포트 (기본 28443) |
MAC_WEB_TLS_PORT | 마스터 | 웹 UI HTTPS 포트 (기본 23443) |
MAC_TLS_CERT_FILE | 마스터 | 컨테이너 안에서의 TLS 인증서 경로 (기본 /etc/mac/certs/server.crt) |
MAC_TLS_KEY_FILE | 마스터 | 컨테이너 안에서의 TLS 키 경로 (기본 /etc/mac/certs/server.key) |
스위치 접속
| 변수 | 사용처 | 용도 |
|---|---|---|
SWITCH_USER | 마스터 | 스위치 CLI SSH 사용자명 (기본 admin) |
SWITCH_PASSWD_LIST | 마스터 |