VM용 Terraform 배포 모듈 만들기
이 페이지에서는 가상 머신 (VM)과 VM의 Terraform 배포 모듈을 만드는 방법을 설명합니다.
라이선스가 부여된 VM 이미지 만들기
- 개발 VM에 영향을 주지 않으려면 다음 gcloud 명령어를 실행하여 VM에 사용된 디스크의 사본을 만듭니다.
gcloud compute disks create CLONE_DISK \ --description="cloned disk" \ --source-disk=projects/PROJECT/zones/ZONE/disks/SOURCE_VM_DISK
- VM의 클론을 만듭니다. 자세한 내용은 기존 VM과 유사한 VM 만들기를 참고하세요.
- 고급 옵션 섹션에서 클론된 디스크를 연결합니다.
- VM을 만듭니다.
- 이 VM에 서버가 실행 중인지 확인합니다. 시작 스크립트는 VM이 실행 중인지 확인합니다.
- Docker에서 커넥터 서비스를 중지하고 삭제합니다.
- 홈 디렉터리와 서버 실행에 필요하지 않은 다른 파일을 삭제합니다. 동일한 디스크가 VM 이미지를 만드는 데 사용되며 나중에 고객이 액세스할 수 있습니다. 이 VM에는 서비스를 실행하는 데 필요한 라이브러리만 있어야 합니다.
- VM을 수정하고 삭제 규칙을 디스크 유지로 선택합니다.
- 이 VM을 삭제합니다.
- 라이선스가 있는 이미지를 만들려면 Producer Portal에서 라이선스를 가져옵니다. Producer Portal을 방문합니다.
- 새 가상 머신 제품을 만듭니다. 배포 패키지 섹션으로 이동하여 VM 라이선스를 복사합니다.
- 라이선스가 있는 VM 이미지를 만들려면 다음 명령어를 실행합니다.
gcloud compute images create VM_IMAGE_NAME \ --project PUBLIC_PROJECT_NAME \ --source-disk projects/DEV_PROJECT_NAME/zones/ZONE/disks/SOURCE_VM_DISK \ --licenses LICENSE \ --description VM_IMAGE_DESCRIPTION
자세한 내용은 VM 빌드를 참고하세요.
terraform 배포 모듈 만들기
Marketplace는 Marketplace에 VM 이미지를 배포하기 위한 Terraform 모듈을 생성하는 Autogen 도구를 제공합니다.
이 도구는 자동 생성 프로토 사양을 사용하여 배포를 생성합니다. 자세한 내용은 구성 예시를 참고하세요.
- 솔루션 세부정보를 추가합니다.
- 커넥터의 경우 VM이 포함된 모듈을 만듭니다. 공개 프로젝트에서 이미지의 프로젝트 이름, VM 이미지 이름, 라벨을 입력합니다.
- 최소 CPU 2개, RAM 8GB로 n2d-standard-2를 기본 머신 유형으로 사용합니다. N2d-standard는 중간 트래픽 웹 서버에 적합합니다. 기본 VM은 코어 2개로 설정할 수 있습니다. 고객이 더 많은 트래픽을 예상하는 경우 마켓플레이스에서 VM을 만들 때 이를 변경할 수 있습니다. 다양한 머신 유형의 가격 책정에 대한 자세한 내용은 VM 인스턴스 가격 책정을 참고하세요.
machineType: # Check http://cloud.google.com/compute/docs/machine-types for all available types defaultMachineType: gceMachineType: n2d-standard-2 # Minimum CPU and memory constraints for the machine type to run your solution properly minimum: cpu: 2 ramGb: 8
- 기본 디스크 유형으로 pd-standard를 사용합니다.
bootDisk: diskType: defaultType: pd-standard
- 자동 생성 구성에 시작 스크립트를 추가합니다. 시작 스크립트를 문자열로 변환하고 bashScriptContent에 추가합니다.
gceStartupScript: bashScriptContent:
- VM 생성 중에 고객으로부터 입력으로 가져올 입력란을 정의합니다.
deployInput: sections: # The place int he Deployment Manager config that this section will appear. More details in deployment_package_autogen_spec.proto - placement: CUSTOM_TOP name: CONNECTOR_SETTINGS title: Connectors settings description: Connectors settings tooltip: Setting with which connector VM will be running # List of input fields that this section has fields: - required: false name: TEST_DATA title: Test Data description: Test data tooltip: random data for testing string_box: {} - required: false name: PORT title: Port to run service tooltip: Port to run connector service string_box: {} - required: false name: LOG_LEVEL title: Log level description: Log level for the web service. Allowed values are DEBUG, INFO, WARNING, ERROR. Default is INFO string_box: {}
게재위치는 CUSTOM_TOP으로, 이름은 CONNECTOR_SETTINGS로 유지합니다.
필드와 필드에 필요한 입력 유형을 정의합니다. 이 예에서는 Marketplace 커넥터의 고객에게 테스트 데이터 및 서비스를 실행할 포트 필드가 표시됩니다.
- Compute Engine 메타데이터 항목을 정의합니다. VM 메타데이터를 정의하는 동안 입력란의 이름을 메타데이터 키에 매핑합니다.
gce_metadata_items: - key: CONNECTOR_ENV_PORT value_from_deploy_input_field: PORT - key: CONNECTOR_ENV_TEST_DATA value_from_deploy_input_field: TEST_DATA - key: CONNECTOR_ENV_LOG_LEVEL value_from_deploy_input_field: LOG_LEVEL
- 배포 후 고객에게 표시할 단계 세부정보를 추가합니다.
postDeploy: # List of suggested action items for users, after deployment is successful actionItems: - heading: Create the Private service attachment description: Now the connector service is running on the VM, please create the PSC service attachment to create the connection. Follow https://cloud.google.com/integration-connectors/docs/configure-psc for the detailed guide. - heading: Create the connection description: After creating the connectors endpoint attachment, use the endpoint attachment to create a connection to the partner connector.
- 자동 생성을 설정하려면 다음 명령어를 실행합니다.
alias autogen='docker run \ --rm \ --workdir /mounted \ --mount type=bind,source="$(pwd)",target=/mounted \ --user $(id -u):$(id -g) \ gcr.io/cloud-Marketplace-tools/dm/autogen' autogen --help
- terraform 모듈을 생성하려면 다음 명령어를 실행합니다.
mkdir solution_folder autogen \ --input_type YAML \ --single_input example-config/solution.yaml \ --output_type PACKAGE \ --output solution_folder
solution_folder에는 terraform 모듈이 포함되어 있습니다. 이 모듈은 Marketplace에 제품을 게시하는 동안 사용됩니다.
solutionInfo: name:packagedSoftwareGroups: - type: SOFTWARE_GROUP_OS components: - name: Ubuntu version: 16.04 LTS - components: - name: Apache version: 2.4.23
다음 단계
- 승인을 위해 VM 이미지를 제출하는 방법을 알아보세요.