본문으로 건너뛰기

환경 변수

mac env 명령으로 MAC의 동작을 결정하는 변수들(레지스트리, 마스터 IP, 스위치 자격 증명 등)을 조회·설정·삭제할 수 있습니다.

mac env

~$ mac env # 관리 대상 변수와 출처를 나열
~$ mac env set KEY=VAL [...] # ~/.mac/env에 저장 (사용자별, 영속)
~$ mac env unset KEY [...] # ~/.mac/env에서 삭제

파일 우선순위

MAC은 다음 파일들에서 변수를 읽습니다. 우선순위가 높은 순서대로입니다.

  1. ~/.mac/env — 사용자별 오버라이드 (mac env set이 기록)
  2. /etc/mango/mac/env — 전역 기본값 (설치 시 작성, root 권한으로 편집)

관리 대상 변수에 대해 셸 환경 변수는 무시됩니다 — 재기동 후에도 값이 유지되도록 항상 mac env set을 사용하세요. 예외는 MAC_CONFIG_DIRMAC_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에 가려지지 않도록, 이 변수만은 다른 변수와 다른 우선순위를 씁니다:

  1. 프로세스 환경 (MAC_IMAGE_SOURCE=local mac start master)
  2. /etc/mango/mac/env (전역)
  3. ~/.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.crtserver.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마스터쉼표로 구분한 SSH 비밀번호 목록 (순차 시도)
SWITCH_PASSWD마스터레거시 단일 SSH 비밀번호 (_LIST가 비었을 때만 사용)
SNMP_COMMUNITY마스터SNMP community 문자열 (기본 public)

gNMI 스트리밍 텔레메트리

switch-exporter는 gNMI 능력 프로브를 통과한 sonic-gnmi 기반 SONiC 스위치로부터 카운터, oper 상태, 트랜시버 존재 여부를 gNMI로 스트리밍합니다. Dell OS10과 gNMI를 지원하지 않는 SONiC은 자동으로 SNMP를 계속 사용하며, LLDP 토폴로지 탐색은 항상 SNMP로 유지됩니다. 이 변수들은 /etc/mango/mac/env에 기본적으로 주석 처리되어 있습니다 (스트리밍은 기본으로 활성화됨):

변수사용처용도
GNMI_ENABLED마스터gNMI 스트리밍 활성화 (기본 true; false면 SNMP 전용 강제)
GNMI_PORT마스터sonic-gnmi 서버 포트 (기본 8080)
GNMI_USERNAME마스터gNMI 인증 사용자명 (기본 비어 있음 — noTLS/--allow_no_client_auth)
GNMI_PASSWORD마스터gNMI 인증 비밀번호 (기본 비어 있음)
GNMI_TLS_MODE마스터전송 보안: none (기본), skip-verify, ca
GNMI_SAMPLE_INTERVAL_SEC마스터카운터 SAMPLE 구독 간격 (기본 5)
GNMI_PATH_MODE마스터경로 프로파일: auto (기본), sonic-db, openconfig

LLMBoost

변수사용처용도
LLMBOOST_API_ENDPOINT마스터LLMBoost 모델 서빙 API 엔드포인트 강제 지정 (미설정 시 에이전트의 30080 포트에서 자동 탐색; LLMBoost 페이지에서 런타임 설정도 가능 — admin 전용)

현재 상태 확인

~$ mac env
KEY VALUE SOURCE
MASTER_IP 10.1.5.7 user
MAC_REGISTRY registry.example.com/mac user
SWITCH_USER admin user
SWITCH_PASSWD_LIST admin,123455 user