`dev` — 개발 모드로 Boundary 인스턴스 시작하기
dev — 개발 모드로 Boundary 인스턴스 시작하기
boundary dev 명령어는 개발(dev) 모드로 Boundary 인스턴스를 시작해요. 개발 모드는 비밀번호 인증을 위한 관리자 자격 증명을 제공해요.
개발 모드는 완전히 동작하는 Boundary 인스턴스를 띄워 줘요. 여기에는 컨트롤러 서버, 워커 서버, Postgres 데이터베이스가 포함돼요. 이 구성 요소들은 임시(ephemeral)라서 데이터는 저장되지 않아요. 개발 모드로 환경을 켜는 건 빠른 테스트를 위한 편리한 방법이에요.
본문
예시 (Examples)
다음 예시는 개발 모드로 Boundary 인스턴스를 시작해요.
$ boundary dev
예시 출력:
==> Boundary server configuration:
[Bsr] AEAD Key Bytes: McoUxn6XMdaYdS8lb2bqjgvrZIaLWML0
[Controller] AEAD Key Bytes: SA+ccZA42hj/7XRwYeq4c7OEeSoYT4Ds
[Recovery] AEAD Key Bytes: 9KJyjHcC35MPcz6VsfGczZn4KLCNXhz5
[Worker-Auth] AEAD Key Bytes: Pgr4AbL+S6hThU6B0cyVOI7cqtoyCVrS
[Bsr] AEAD Type: aes-gcm
[Recovery] AEAD Type: aes-gcm
[Root] AEAD Type: aes-gcm
[Worker-Auth-Storage] AEAD Type: aes-gcm
[Worker-Auth] AEAD Type: aes-gcm
Cgo: disabled
Controller Public Cluster Addr: 127.0.0.1:9201
Dev Database Container: infallible_mahavira
Dev Database Url: postgres://postgres:***@localhost:32769/boundary?sslmode=disable
Generated Admin Login Name: admin
Generated Admin Password: password
Generated Host Catalog Id: hcst_1234567890
Generated Host Id: hst_1234567890
Generated Host Set Id: hsst_1234567890
Generated Ldap Auth Method Base Search DNs: users="ou=people,dc=example,dc=org" groups="ou=groups,dc=example,dc=org"
Generated Ldap Auth Method Host:Port: 127.0.0.1:64160 (does not have a root DSE; use simple bind)
Generated Ldap Auth Method Id: amldap_1234567890
Generated Oidc Auth Method Id: amoidc_1234567890
Generated Org Scope Id: o_1234567890
Generated Password Auth Method Id: ampw_1234567890
Generated Project Scope Id: p_1234567890
Generated Target With Address Id: ttcp_1234567890
Generated Target With Host Source Id: ttcp_0987654321
Generated Unprivileged Login Name: user
Generated Unprivileged Password: password
Listener 1: tcp (addr: "127.0.0.1:9200", cors_allowed_headers: "[]", cors_allowed_origins: "[*]", cors_enabled: "true", max_request_duration: "1m30s", purpose: "api")
Listener 2: tcp (addr: "127.0.0.1:9201", max_request_duration: "1m30s", purpose: "cluster")
Listener 3: tcp (addr: "127.0.0.1:9203", max_request_duration: "1m30s", purpose: "ops")
Listener 4: tcp (addr: "127.0.0.1:9202", max_request_duration: "1m30s", purpose: "proxy")
Log Level: info
Mlock: supported: false, enabled: false
Version: Boundary v0.13.1
Version Sha: db01791662a7126fbf4ea0a27b23b70acd20b17b
Worker Auth Current Key Id: september-viewing-rubdown-wrench-sliceable-valid-chute-retrace
Worker Auth Storage Path: (in-memory)
Worker Public Proxy Addr: 127.0.0.1:9202
==> Boundary server started! Log data will stream in below:
...
생성된 관리자 사용자 이름은 admin, 비밀번호는 password예요.
사용법 (Usage)
$ boundary dev [options]
명령 옵션 (Command options)
-api-listen-address(string: "")— 컨트롤러의 "api" 용도로 바인딩할 주소예요. 주소가 슬래시로 시작하면 Boundary는 Unix 도메인 소켓 경로로 간주해요. 주소는 BOUNDARY_DEV_CONTROLLER_API_LISTEN_ADDRESS 환경 변수로도 지정할 수 있어요.-audit-events(string: "")— 설정하면 감사(audit) 이벤트를 내보낼지 여부를 나타내요. 지원되는 값은true와false예요.-bsr-key(string: "")— 세션 녹화에 사용할 유효한 base64 인코딩 AES 키예요. BSR 키는 BOUNDARY_DEV_BSR_KEY 환경 변수로도 지정할 수 있어요.-cluster-listen-address(string: "")— 컨트롤러의 "cluster" 용도로 바인딩할 주소예요. 주소가 슬래시로 시작하면 Boundary는 Unix 도메인 소켓 경로로 간주해요. 주소는 BOUNDARY_DEV_CONTROLLER_CLUSTER_LISTEN_ADDRESS 환경 변수로도 지정할 수 있어요.-combine-logs— 설정하면 시작 정보와 로그를 모두 stdout으로 보내요. 설정하지 않으면 시작 정보는 stdout으로, 로그는 stderr로 보내져요. 기본값은false예요.-container-image(string: "")— 사용할 컨테이너 이미지예요. 이 값은<repo>:<tag>형식이어야 해요.-controller-only— 설정하면 개발 컨트롤러와 개발 워커 모두 대신 개발 컨트롤러만 시작해요. 기본값은false예요.-controller-public-cluster-address(string: "")— 워커 연결 같은 클러스터 작업을 위해 컨트롤러가 접근 가능한 공개 주소예요. 이 공개 주소는 BOUNDARY_DEV_CONTROLLER_PUBLIC_CLUSTER_ADDRESS 환경 변수로도 지정할 수 있어요.-database-url(string: "")— 초기화를 위해 Boundary가 데이터베이스에 연결할 때 사용하는 URL이에요. 지정하지 않으면 Docker 컨테이너를 시작해요. 이 URL은 URL을 읽어오는 디스크의 파일(file://), URL을 읽어오는 환경 변수(env://), 또는 직접 데이터베이스 URL을 가리킬 수 있어요.-debug(string: "")— Boundary는 실행 중에 어디에서 시간을 쓰는지 볼 수 있게 해주는 소수의 런타임 추적 사용자 영역을 포함해요. 추적을 만들려면 기본적으로 비활성화된 pprof 엔드포인트를 노출해야 해요. pprof 엔드포인트를 노출하려면ops리스너가 있는 프로세스에서 런타임-debug플래그를 활성화해야 해요. 예:$ boundary dev -debug -ops-listen-address=127.0.0.1:9203. 자세한 내용은 디버그 모드 활성화 페이지를 참고하세요.-disable-database-destruction— 설정하면 Docker에 데이터베이스를 자동으로 만들어요. 개발 서버가 종료되어도 데이터베이스는 제거되지 않아요. 기본값은false예요.-event-allow-filter(string: "")— 모든 이벤트에 대한 선택적 허용(allow) 필터예요. 이 값을 여러 번 지정할 수 있어요.-event-deny-filter(string: "")— 모든 이벤트에 대한 선택적 거부(deny) 필터예요. 이 값을 여러 번 지정할 수 있어요.-event-format(string: "")— 이벤트 형식이에요. 지원되는 값:cloudevents-json,cloudevents-text,hclog-json,hclog-text.-host-address(string: "")— 생성되는 기본 호스트에 사용할 주소예요. 이 값은 호스트 또는 IP 주소만 가능하며 포트는 될 수 없어요. 기본값은localhost예요. 호스트 주소는 BOUNDARY_DEV_HOST_ADDRESS 환경 변수로도 지정할 수 있어요.-id-suffix(string: "")— 설정하면 자동 생성되는 리소스가 식별자로 이 서픽스 값을 사용해요(설정된 경우 리소스별 접두사와 함께). 이 값은 10자 영숫자여야 해요. 예를 들어1234567890으로 설정하면 생성되는 비밀번호 인증 방법 ID는ampw_1234567890, 생성되는 TCP 대상 ID는ttcp_1234567890이 되는 식이에요. 이 값은-secondary-id-suffix또는 BOUNDARY_DEV_SECONDARY_ID_SUFFIX 값과 달라야 해요. 기본값은1234567890이에요. 서픽스는 BOUNDARY_DEV_ID_SUFFIX 환경 변수로도 구성할 수 있어요.-log-format(string: "")— 로그 형식이에요. 지원되는 값은standard와json이에요.-log-level(string: "")— 원하는 로그 상세 수준이에요. 상세한 순서부터 덜 상세한 순서로trace,debug,info,warn,err가 지원돼요. 로그 상세 수준은 BOUNDARY_LOG_LEVEL 환경 변수로도 지정할 수 있어요.-login-name(string: "")— 초기 관리자 로그인 이름이에요. 이 값을 빈 문자열로 설정하면 Boundary가 로그인 이름을 자동 생성해요. 기본값은admin이에요. 로그인 이름은 BOUNDARY_DEV_LOGIN_NAME 환경 변수로도 지정할 수 있어요.-observation-events(string: "")— 설정하면 Boundary가 관찰(observation) 이벤트를 내보낼지 여부를 나타내요. 지원되는 값은true와false예요.-ops-listen-address(string: "")— "ops" 용도로 바인딩할 주소예요. 주소가 슬래시로 시작하면 Boundary는 Unix 도메인 소켓 경로로 간주해요. 주소는 BOUNDARY_DEV_OPS_LISTEN_ADDRESS 환경 변수로도 지정할 수 있어요.-password(string: "")— 초기 관리자 로그인 비밀번호예요. 이 값을 빈 문자열로 설정하면 Boundary가 비밀번호를 자동 생성해요. 기본값은password예요. 초기 관리자 로그인 비밀번호는 BOUNDARY_DEV_PASSWORD 환경 변수로도 지정할 수 있어요.-plugin-execution-dir(string: "")— Boundary가 실행하는 플러그인을 쓸 디렉터리예요. 값을 설정하지 않으면 시스템 임시 디렉터리를 사용해요. 디렉터리는 BOUNDARY_DEV_PLUGIN_EXECUTION_DIR 환경 변수로도 지정할 수 있어요.-proxy-listen-address(string: "")— 워커의 "proxy" 용도로 바인딩할 주소예요. 주소는 BOUNDARY_DEV_WORKER_PROXY_LISTEN_ADDRESS 환경 변수로도 지정할 수 있어요.-recovery-key(string: "")— 복구 작업에 사용할 base64 인코딩 256비트 AES 키예요. 복구 키는 BOUNDARY_DEV_RECOVERY_KEY 환경 변수로도 지정할 수 있어요.-secondary-id-suffix(string: "")— 설정하면 자동 생성되는 이차(secondary) 리소스가 설정된 경우 리소스별 접두사와 함께 주어진 값을 식별자로 사용해요. 이 값은 10자 영숫자여야 해요. 현재는 대상(target) 리소스에만 사용돼요. 이차 서픽스는-id-suffix및 BOUNDARY_DEV_ID_SUFFIX 값과 달라야 해요. 기본값은0987654321이에요. 이차 서픽스는 BOUNDARY_DEV_SECONDARY_ID_SUFFIX 환경 변수로도 지정할 수 있어요.-system-events(string: "")— 설정하면 Boundary가 시스템 이벤트를 내보낼지 여부를 나타내요. 지원되는 값은true와false예요.-target-default-port(int: 0)— 생성되는 기본 대상에 사용할 기본 포트예요. 기본값은22예요. 기본 대상 포트는 BOUNDARY_DEV_TARGET_DEFAULT_PORT 환경 변수로도 지정할 수 있어요.-target-session-connection-limit(int: 0)— 기본 대상에 설정할 세션당 최대 연결 수예요. 값이-1이면 무제한이에요. 기본값은-1이에요. 최대 연결 수는 BOUNDARY_DEV_TARGET_SESSION_CONNECTION_LIMIT 환경 변수로도 지정할 수 있어요.-target-session-max-seconds(int: 0)— 기본 대상의 세션에 사용할 최대 초 수예요. 최대 초 수는 BOUNDARY_DEV_TARGET_SESSION_MAX_SECONDS 환경 변수로도 지정할 수 있어요.-ui-passthrough-dir(string: "")— 웹서버의/에 있는 패스스루(passthrough) 디렉터리예요. 패스스루 디렉터리는 BOUNDARY_DEV_UI_PASSTHROUGH_DIR 환경 변수로도 지정할 수 있어요.-unprivileged-login-name(string: "")— 초기 비특권 사용자의 이름이에요. 이 값을 빈 문자열로 설정하면 Boundary가 사용자 이름을 자동 생성해요. 기본값은user예요. 사용자 이름은 BOUNDARY_DEV_UNPRIVILEGED_LOGIN_NAME 환경 변수로도 지정할 수 있어요.-unprivileged-password(string: "")— 초기 비특권 사용자 로그인 비밀번호예요. 이 값을 빈 문자열로 설정하면 Boundary가 비밀번호를 자동 생성해요. 기본값은password예요. 비밀번호는 BOUNDARY_DEV_UNPRIVILEGED_PASSWORD 환경 변수로도 지정할 수 있어요.-worker-auth-enable-debugging— 설정하면 워커 인증 프로세스의 디버그 로깅을 켜요. 기본값은false예요.-worker-auth-key(string: "")— 워커 인증 목적에 사용할 유효한 base64 인코딩 AES 키예요. 키는 BOUNDARY_DEV_WORKER_AUTH_KEY 환경 변수로도 지정할 수 있어요.-worker-auth-method(string: "")— 설정하면 생성된 워커가 컨트롤러에 인증하는 방식을 지정할 수 있어요. 기본값은random이에요.-worker-auth-storage-dir(string: "")— 개발 모드일 때 워커 인증 자격 증명을 저장할 디렉터리예요. 이 값을 설정하지 않으면 Boundary는 인메모리 저장소 또는 임시 디렉터리를 사용해요.-worker-auth-storage-skip-cleanup— 설정하면 설정된 경우 워커 자격 증명 저장 디렉터리의 삭제를 막아요. 이 값은worker-auth-storage-dir값을 지정하지 않으면 효과가 없어요. 기본값은false예요.-worker-public-address(string: "")— 세션 프록싱을 위해 워커가 접근 가능한 공개 주소예요. 주소는 BOUNDARY_DEV_WORKER_PUBLIC_ADDRESS 환경 변수로도 지정할 수 있어요.-worker-recording-storage-dir(string: "")— 개발 모드일 때 워커 세션 녹화물을 저장할 디렉터리예요. 디렉터리를 지정하지 않으면 Boundary가 임시 디렉터리를 만들어요.