맞춤 시작 스크립트 실행

Cloud Workstations를 사용하면 워크스테이션 컨테이너가 시작되기 전에 호스트 워크스테이션 VM에서 커스텀 시작 스크립트를 실행할 수 있습니다. 이는 VM 수준 구성을 실행하거나 기본 워크스테이션 컨테이너 외부에서 실행해야 하는 추가 소프트웨어를 설치하는 데 유용합니다.

시작하기 전에

Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.

Google Cloud CLI를 설치합니다. 설치 후 다음 명령어를 실행하여 Google Cloud CLI를 초기화합니다.

gcloud init

외부 ID 공급업체 (IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다.

Google Cloud CLI를 설치합니다. 설치 후 다음 명령어를 실행하여 Google Cloud CLI를 초기화합니다.

gcloud init

외부 ID 공급업체 (IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다.

시작 스크립트 준비

호스트 워크스테이션 VM에서 실행할 시작 스크립트를 만듭니다. 스크립트를 작성할 때는 다음 가이드라인을 준수하세요.

  1. Cloud Workstations는 지정된 워크스테이션 컨테이너와 호스트 워크스테이션 VM의 여러 시스템 컨테이너를 실행하여 워크스테이션이 올바르게 작동하도록 합니다. 모든 컨테이너는 containerd 런타임과 crictl 클라이언트를 사용하여 실행됩니다.
  2. containerd를 사용하여 시작 스크립트로 실행되는 추가 컨테이너를 실행합니다. 워크스테이션 컨테이너 내에서 실행되는 Docker 데몬과의 간섭을 방지하기 위해 호스트 VM에서 Docker가 사용 중지됩니다.
  3. 시작 스크립트로 실행된 호스트 수준 컨테이너는 기본 워크스테이션 컨테이너와 상호작용할 수 없습니다. 이러한 직접 상호작용은 Identity and Access Management (IAM) 확인을 우회하므로 지원되지 않습니다.

Cloud Storage에 시작 스크립트 저장

스크립트를 Cloud Storage 버킷에 업로드하고 워크스테이션과 연결된 서비스 계정에서 스크립트에 액세스할 수 있는지 확인합니다.

  1. 버킷에 스크립트를 업로드합니다.

    gcloud storage cp LOCAL_SCRIPT_PATH gs://BUCKET_NAME/SCRIPT_NAME
    

    다음을 바꿉니다.

    • LOCAL_SCRIPT_PATH: 시작 스크립트 파일의 로컬 경로
    • BUCKET_NAME: Cloud Storage 버킷 이름.
    • SCRIPT_NAME: 버킷에 있는 스크립트 파일에 지정할 이름입니다.
  2. 워크스테이션 구성에서 사용하는 서비스 계정에 버킷 및 스크립트 파일에 액세스할 수 있는 권한이 있는지 확인합니다. 또는 스크립트에 공개적으로 액세스할 수 있습니다.

워크스테이션 구성 만들기

커스텀 시작 스크립트를 사용하려면 워크스테이션 구성을 만들고 host.gceInstance 메시지의 startupScriptUri 필드를 스크립트의 Cloud Storage URI로 설정합니다.

REST API를 사용하여 워크스테이션 구성을 만듭니다.

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
       "host": {
         "gceInstance": {
           "poolSize": 1,
           "startupScriptUri": "gs://BUCKET_NAME/SCRIPT_NAME",
           "serviceAccount": "SERVICE_ACCOUNT"
         }
       }
     }' \
     https://workstations.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/workstationClusters/CLUSTER_ID/workstationConfigs?workstation_config_id=CONFIG_ID

다음을 바꿉니다.

  • SERVICE_ACCOUNT: 워크스테이션 구성과 연결된 서비스 계정의 이메일 주소입니다.
  • PROJECT_ID: Google Cloud 프로젝트 ID입니다.
  • LOCATION: 워크스테이션 클러스터가 있는 리전입니다.
  • CLUSTER_ID: 워크스테이션 클러스터의 ID입니다.
  • CONFIG_ID: 새 워크스테이션 구성에 할당할 ID입니다.

스크립트 실행 확인

스크립트가 올바르게 실행되었는지 확인하려면 다음 방법 중 하나를 사용하세요.

  • 직렬 포트 3 출력 로그: 스크립트에서 생성된 출력 로그는 직렬 포트 3 출력으로 자동 전송됩니다. 워크스테이션에 할당된 VM의 이름을 확인하려면 플랫폼 로그를 참고하세요.
  • VM에 SSH: 필요한 경우 워크스테이션 VM에 SSH를 사용하여 스크립트를 추가로 디버그할 수 있습니다.
  • 준비 상태 확인: 시작 스크립트는 최선을 다해 실행되며 워크스테이션의 시작을 차단하지 않습니다. 스크립트 실행 시간이 오래 걸리거나 스크립트가 실패하면 워크스테이션이 여전히 준비 상태로 표시될 수 있습니다. 스크립트가 완료될 때까지 워크스테이션이 준비 상태로 표시되지 않도록 하려면 준비 확인을 구현하는 것이 좋습니다.

다음 단계