셀프 매니지드 워커 설치

셀프 매니지드 워커 설치 (Install self-managed workers)

HCP Boundary는 조직이 자체 워커를 등록하고 관리할 수 있게 해줘요. 이러한 셀프 매니지드 워커를 프라이빗 네트워크에 배포할 수 있고, 업스트림 HCP Boundary 클러스터와 통신할 수 있어요. 셀프 매니지드 워커 인스턴스 구성에 대한 단계별 예시는 셀프 매니지드 워커 튜토리얼을 참고하세요.

셀프 매니지드 워커를 설치하고 구성하려면 아래 절차를 완료해요.

출처: 문서

본문

Boundary Enterprise 바이너리 다운로드

Linux / MacOS / Windows

Boundary 릴리스 페이지로 이동해 운영체제에 맞는 최신 Boundary Enterprise 바이너리를 다운로드해요.

Linux

Linux에는 배포판과 아키텍처에 따라 여러 버전의 바이너리가 있어요. 로컬 머신에 다운로드할 올바른 패키지를 선택해 boundary 바이너리를 추출해요. 또는 패키지 관리자를 사용해 최신 버전의 boundary-enterprise 패키지를 설치하는 아래 예시를 참고할 수도 있어요.

Ubuntu/Debian / CentOS/RHEL / Fedora / Amazon Linux

$ curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
$ echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
$ sudo apt update && sudo apt install boundary-enterprise -y
$ sudo yum install -y yum-utils
$ sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
$ sudo yum -y install boundary-enterprise
$ sudo dnf install -y dnf-plugins-core
$ sudo dnf config-manager --add-repo https://rpm.releases.hashicorp.com/fedora/hashicorp.repo
$ sudo dnf -y install boundary-enterprise
$ sudo yum install -y yum-utils shadow-utils
$ sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/AmazonLinux/hashicorp.repo
$ sudo yum -y install boundary-enterprise

바이너리를 다운로드한 뒤, 최신 HCP Boundary 기능을 활용하려면 boundary 버전이 HCP Boundary 컨트롤 플레인의 버전과 일치하는지 확인해요. 다음 명령으로 버전을 확인해요.

$ boundary version

Version information:
  Build Date:          2024-11-18T16:04:45Z
  Git Revision:        d648fb7e0fe80d45df04faa165161ede74014888
  Metadata:            ent
  Version Number:      0.18.1+ent

MacOS

Boundary 릴리스 페이지로 이동해 운영체제에 맞는 최신 Boundary Enterprise 바이너리를 다운로드해요. MacOS에는 프로세서가 AMD64(x86_64)인지 ARM64인지에 따라 두 가지 버전의 바이너리가 있어요. 로컬 머신에 boundary zip을 다운로드할 올바른 패키지를 선택한 뒤 boundary 바이너리를 추출해요. 또는 다음 명령을 사용해 boundary 바이너리를 다운로드할 수 있어요. 이 예시는 AMD64 프로세서와 HCP Boundary 컨트롤 플레인 버전 0.11.2를 사용한다는 점에 주의하세요. 환경에 필요한 바이너리에 맞게 이 값을 업데이트하세요.

$ wget -q https://releases.hashicorp.com/boundary/0.13.0+ent/boundary_0.13.0+ent_darwin_amd64.zip ;\
/usr/bin/unzip *.zip

바이너리를 다운로드한 뒤, 최신 HCP Boundary 기능을 활용하려면 boundary 버전이 HCP Boundary 컨트롤 플레인의 버전과 일치하는지 확인해요. 다음 명령으로 버전을 확인해요.

$ ./boundary version

Version information:
  Build Date:          2024-11-18T16:04:45Z
  Git Revision:        d648fb7e0fe80d45df04faa165161ede74014888
  Metadata:            ent
  Version Number:      0.18.1+ent

Windows

Boundary 릴리스 페이지로 이동해 운영체제에 맞는 최신 Boundary Enterprise 바이너리를 다운로드해요. Windows에는 프로세서가 AMD64(x86_64)인지 i386인지에 따라 두 가지 버전의 바이너리가 있어요. 로컬 머신에 boundary zip을 다운로드할 올바른 패키지를 선택한 뒤 boundary 바이너리를 추출해요. 또는 다음 명령을 사용해 boundary 바이너리를 다운로드하고 추출할 수 있어요. 이 예시는 AMD64 프로세서와 HCP Boundary 컨트롤 플레인 버전 0.13.0을 사용한다는 점에 주의하세요. 환경에 필요한 바이너리에 맞게 이 값을 업데이트하세요.

$ Invoke-WebRequest -OutFile boundary.zip https://releases.hashicorp.com/boundary/0.13.0+ent/boundary_0.13.0+ent_windows_amd64.zip ;
Expand-Archive -Path boundary.zip -DestinationPath .

바이너리를 다운로드한 뒤, 최신 HCP Boundary 기능을 활용하려면 boundary 버전이 HCP Boundary 컨트롤 플레인의 버전과 일치하는지 확인해요. 다음 명령으로 버전을 확인해요.

$ .\boundary.exe version

Version information:
  Build Date:          2024-11-18T16:04:45Z
  Git Revision:        d648fb7e0fe80d45df04faa165161ede74014888
  Metadata:            ent
  Version Number:      0.18.1+ent

boundary를 시스템 전역 실행 가능 파일로 설치하려면 시스템의 전역 path를 업데이트해 boundary.exe의 경로를 포함시키세요.

셀프 매니지드 워커 구성 파일 만들기

다음으로 셀프 매니지드 워커 구성 파일을 만들어요. 모든 유효한 구성 옵션을 보려면 전체 구성 예시를 참고하세요.

Linux / MacOS / Windows

워커 구성을 저장할 새 파일을 만들어요.

$ touch worker.hcl

Vi 같은 텍스트 편집기로 worker.hcl 파일을 열고 다음 구성 정보를 worker.hcl 파일에 붙여 넣어요.

worker.hcl

disable_mlock = true

hcp_boundary_cluster_id = "<cluster-id>"

listener "tcp" {
  address = "127.0.0.1:9202"
  purpose = "proxy"
}

worker {
  auth_storage_path = "/home/myusername/worker"
  tags {
    type = ["worker", "linux"]
  }
}

필요에 따라 worker.hcl 파일의 구성 필드를 업데이트해요. 셀프 매니지드 워커에 대해 다음 구성 필드를 지정할 수 있어요.

  • hcp_boundary_cluster_id 필드는 Boundary 클러스터 ID를 받고 워커가 처음 HCP Boundary에 연결할 때 사용해요. 이 필드는 worker 스탠자 바깥에서 구성해요. 클러스터 ID는 HCP Boundary 클러스터 URL의 UUID예요. 예를 들어 클러스터 URL이 https://c3a7a20a-f663-40f3-a8e3-1b2f69b36254.boundary.hashicorp.cloud라면 클러스터 ID는 c3a7a20a-f663-40f3-a8e3-1b2f69b36254예요.
  • 위 예시의 listener 스탠자는 address 포트를 0.0.0.0:9202로 설정해요. 이 포트는 인바운드 TCP 연결을 받도록 이 인스턴스의 AWS 보안 그룹에서 이미 구성되어 있어야 해요. 커스텀 리스너 포트를 사용하려면 이 필드에 지정할 수 있어요.
  • 설정하면 public_addr 필드는 셀프 매니지드 워커 인스턴스의 공개 IP 또는 DNS 이름과 일치해야 해요. 워커가 업스트림 워커나 컨트롤러에 대한 아웃바운드 접근이 있다면 public_addr을 설정할 필요가 없어요. Boundary 클라이언트와 워커를 같은 로컬 머신에 배포하는 드문 경우에는 public_addr 속성을 생략해야 해요. Boundary 클라이언트와 워커를 같은 로컬 머신에 배포하는 예시는 셀프 매니지드 워커 튜토리얼의 Configure the worker 섹션을 참고하세요.
  • auth_storage_path 는 워커가 자격 증명을 저장하는 로컬 경로예요. 워커 간에 스토리지를 공유하면 안 돼요. 이 필드는 /worker/ 디렉터리의 전체 경로(예: /home/ubuntu/worker)와 일치해야 해요.
  • initial_upstreams 값은 워커가 처음 Boundary에 연결할 때 사용하는 주소를 나타내요. worker 스탠자에서 hcp_boundary_cluster_id 대신 initial_upstreams를 사용할 수 있어요. 대부분의 사용 사례에서는 HCP 관리 업스트림 워커가 변경되더라도 항상 연결이 유지되도록 hcp_boundary_cluster_id만으로 충분해요. 멀티홉 세션 토폴로지의 일부로 이 워커를 다른 셀프 매니지드 또는 HCP 매니지드 워커에 연결하려는 경우에만 initial_upstreams 값을 구성해야 해요. 셀프 매니지드 워커를 HCP Boundary에 연결하려면 hcp_boundary_cluster_id를 사용하세요. 위 예시는 auth_storage_path와 hcp_boundary_cluster_id 값을 사용해요. 대신 initial_upstreams를 구성하려면 hcp_boundary_cluster_id를 생략해야 해요.

worker.hcl 파일을 저장해요.

(MacOS 예시에서는 auth_storage_path = "/Users/myusername/worker", tags에 type = ["worker", "macos"], Windows 예시에서는 auth_storage_path = "C:/Users/myusername/worker", tags에 type = ["worker", "windows"]를 각각 사용합니다.)

셀프 매니지드 워커 시작

구성 파일이 만들어지면 워커 서버를 시작할 수 있어요. 다음 명령으로 서버를 시작해요. 워커 구성 파일의 전체 경로(예: /home/worker.hcl)를 제공해야 해요.

12번 줄의 Worker Auth Registration Request 값을 기록해 두세요. 이 값은 auth_request_token 파일에서도 찾을 수 있어요. HCP에 새 워커를 등록할 때 이 값을 제공해야 해요.

다음 명령을 입력해 워커를 시작해요.

Linux / MacOS / Windows

worker.hcl

$ ./boundary server -config="/home/myusername/worker.hcl"

==> Boundary server configuration:

                             Cgo: disabled
                      Listener 1: tcp (addr: "0.0.0.0:9202", max_request_duration: "1m30s", purpose: "proxy")
                       Log Level: info
                           Mlock: supported: true, enabled: false
                         Version: Boundary v0.11.2+hcp
                     Version Sha: f0006502c93b51291896b4c9a1d2d5290796f9ce
      Worker Auth Current Key Id: knoll-unengaged-twisting-kite-envelope-dock-liftoff-legend
Worker Auth Registration Request: GzusqckarbczHoLGQ4UA25uSR7RQJqCjDfxGSJZvEpwQpE7HzYvpDJ88a4QMP3cUUeBXhS5oTgck3ZvZ3nrZWD3HxXzgq4wNScpy7WE7JmNrrGNLNEFeqqMcyhjqGJVvg2PqiZA6arL6zYLNLNCEFtRhcvG5LLMeHc3bthkrbwLg7R7TNswTjDJWmwh4peYpnKuQ9qHEuTK9fapmw4fdvRTiTbrq78ju4asvLByFTCTR3nbk62Tc15iANYsUAn9JLSxjgRXTsuTBkp4QoqBqz89pEi258Wd1ywcACBHRT3
        Worker Auth Storage Path: /home/myusername/worker
        Worker Public Proxy Addr: 52.90.177.171:9202

==> Boundary server started! Log data will stream in below:

{"id":"l0UQKrAg7b","source":"https://hashicorp.com/boundary/ip-172-31-86-85/worker","specversion":"1.0","type":"system","data":{"version":"v0.1","op":"worker.(Worker).StartControllerConnections","data":{"msg":"Setting HCP Boundary cluster address 6f40d99c-ed7a-4f22-ae52-931a5bc79c03.proxy.boundary.hashicorp.cloud:9202 as upstream address"}},"datacontentype":"application/cloudevents","time":"2023-01-10T04:34:52.616180263Z"}

워커가 시작되고 인증 토큰을 Worker Auth Registration Request로 출력해요. 이 값은 워커 구성 파일의 auth_storage_path로 정의된 auth_request_token 파일에도 저장돼요.

셀프 매니지드 워커를 설치하고 시작한 뒤, 환경의 관리 콘솔에서 HCP에 등록해야 해요.

더 알아보기 (Learn more)