`boundary database init` — 데이터베이스 초기화

boundary database init — 데이터베이스 초기화

database init 명령어는 Boundary의 데이터베이스를 초기화할 때 사용해요. Boundary를 처음 시작하기 전에 한 번 수행해야 하는 작업이에요.

출처: HashiCorp Boundary docs

본문

예시

아래 예시는 /etc/boundary.d/controller.hcl 파일에 지정된 구성으로 Boundary 데이터베이스를 초기화해요.

$ boundary database init -config=/etc/boundary.d/controller.hcl

controller.hcl 파일에는 데이터베이스 URL이 들어 있어요.

...
snip
...

# Controller configuration block
controller {
  # This name attr must be unique across all controller instances if running in HA mode
  name = "boundary-controller-1"
  description = "Boundary controller number one"

  # This is the public hostname or IP where the workers can reach the
  # controller. This should typically be a load balancer address
  public_cluster_addr = "example-cluster-lb.example.com"

  # Enterprise license file, can also be the raw value or env:// value
  license = "file:///path/to/license/file.hclic"

  # After receiving a shutdown signal, Boundary will wait 10s before initiating the shutdown process.
  graceful_shutdown_wait_duration = "10s"

  # Database URL for postgres. This is set in boundary.env and
  # consumed via the "env://" notation.
  database {
      url = "env://POSTGRESQL_CONNECTION_STRING"
  }
}

...
snip
...

사용법

$ boundary database init [options] [args]

초기화 과정에서 다음과 같은 초기 자원이 아래 순서로, 지정된 스코프에 생성돼요.

  • 초기 로그인 역할 (global)
  • 비밀번호 유형 인증 메서드 (global)
  • 조직 스코프 (global)
  • 프로젝트 스코프 (org)
  • 정적 유형 호스트 카탈로그 (project)
  • 정적 유형 호스트 세트
  • 정적 유형 호스트
  • 대상 (project)

팁 — 플래그를 사용해 Boundary가 이러한 자원을 만들지 않도록 할 수 있어요. 플래그로 어떤 자원을 건너뛰면 그 뒤에 만들어질 자원들도 함께 건너뛰게 돼요. 사용 가능한 플래그는 아래의 init 옵션을 참고하세요.

명령어 옵션 (Command options)

  • -config (string: "") — 구성 파일의 경로.
  • -config-kms (string: "") — config 용도로 표시된 kms 블록이 들어 있는 구성 파일의 경로. KMS 블록은 기본 구성 파일의 암호 해독을 수행해요. kms 블록을 설정하지 않으면 Boundary는 기본 구성 파일에서 그런 블록을 찾는데, 몇 가지 단점이 있어요. 자세한 내용은 boundary config encrypt -h의 도움말 출력을 참고하세요.
  • -log-format (string: "") — 로그 형식. 지원 값은 standard와 json이에요.
  • -log-level (string: "") — 로그 상세 수준. 지원 값은 상세한 것부터 간단한 것 순서로 trace, debug, info, warn, err이에요. BOUNDARY_LOG_LEVEL 환경 변수로도 로그 수준을 지정할 수 있어요.

초기화(Init) 옵션

  • -migration-url (string: "") — 설정하면 구성 파일에 설정된 마이그레이션 URL을 덮어쓰고, 초기화를 위해 데이터베이스에 연결하는 데 사용할 URL을 지정해요. 이 옵션을 구성하면 초기화를 실행하는 사용자와 표준 작업을 실행하는 사용자의 권한을 다르게 줄 수 있어요. 이 값은 직접 데이터베이스 URL을 가리키거나, Boundary가 URL을 읽어 오는 디스크 파일(file://) 또는 환경 변수(env://)를 가리킬 수 있어요.
  • -skip-auth-method-creation — 설정하지 않으면 초기화 과정의 일부로 인증 메서드 생성이 건너뛰어져요. 이 값을 설정하면 어떤 작업을 수행하려면 복구 KMS가 필요해요. 기본값은 false예요.
  • -skip-host-resources-creation — 설정하지 않으면 호스트 카탈로그, 호스트 세트, 호스트를 포함한 호스트 자원 생성이 초기화의 일부로 건너뛰어져요. 기본값은 false예요.
  • -skip-initial-authenticated-user-role-creation — 설정하면 모든 인증된 사용자에게 기본 제공되는 역할과 권한 부여 생성이 건너뛰어져요.
  • -skip-initial-login-role-creation — 설정하지 않으면 로그인에 필요한 권한 부여를 허용하는 기본 역할 생성이 초기화의 일부로 건너뛰어져요. 이 값을 설정하면 어떤 작업을 수행하려면 복구 KMS가 필요해요. 기본값은 false예요.
  • -skip-scopes-creation — 설정하지 않으면 스코프 생성이 초기화의 일부로 건너뛰어져요. 기본값은 false예요.
  • -skip-target-creation — 설정하지 않으면 대상 생성이 초기화의 일부로 건너뛰어져요. 기본값은 false예요.

CLI 옵션 — 이 명령어 고유 옵션 외에도 모든 CLI 명령어·하위 명령어에 공통으로 적용되는 옵션들이 있어요. 연결(Connection) 옵션, 클라이언트(Client) 옵션, 출력(Output) 옵션, 환경 변수(Environment variables)를 참고하세요.