템플릿을 사용할 때의 장점 중 하나는 커스텀 템플릿 속성을 만들고 정의할 수 있다는 것입니다. 템플릿 속성은 템플릿 파일에 정의하는 임의 변수입니다. 문제의 템플릿을 사용하는 모든 구성 파일 또는 템플릿 파일은 템플릿을 직접 변경하지 않고 템플릿 속성 값을 제공할 수 있습니다. 이렇게 하면 속성을 추상화하여 기본 템플릿을 업데이트하지 않고도 각각의 고유 구성에 대해 속성 값을 변경할 수 있습니다.
예를 들어 다음 줄은 머신 유형의 URL에서 템플릿 속성을 지정합니다.
machineType: zones/{{ properties["zone"] }}/machineTypes/n1-standard-1
이 템플릿을 사용하는 구성에서는 템플릿의 properties
섹션에 있는 zone
값을 설정할 수 있습니다.
imports: - path: vm_template.jinja resources: - name: my-vm type: vm_template.jinja properties: zone: us-central1-a
Deployment Manager는 기본 템플릿에 zone
값을 전달한다는 것을 인식합니다.
시작하기 전에
- 이 가이드의 명령줄 예시를 사용하려면 'gcloud' 명령줄 도구를 설치합니다.
- 이 가이드의 API 예시를 사용하려면 API 액세스를 설정합니다.
- 기본 템플릿을 만드는 방법을 이해합니다.
- 구성을 만드는 방법을 이해합니다.
템플릿 속성 만들기
템플릿 속성을 만들려면 다음 안내를 따르세요.
Jinja
Jinja에서는 다음 구문을 사용하여 속성을 정의합니다.
{{ properties["PROJECT_NAME"] }}
예를 들면 다음과 같습니다.
Python
Python에서는 다음 구문을 사용하여 속성을 정의합니다.
context.properties["PROPERTY_NAME"]
예를 들면 다음과 같습니다.
전체 Python 예는 Deployment Manager GitHub 저장소를 참조하세요.
최상위 구성에서 템플릿 속성 값 설정
최상위 구성에서 다음 구문을 사용하여 템플릿 속성 값을 설정할 수 있습니다.
imports: - path: vm_template.jinja resources: - name: my-vm type: vm_template.jinja properties: zone: us-central1-a
템플릿의 모든 템플릿 속성에 값을 설정해야 합니다. 예를 들어 템플릿에 템플릿 속성 zone
, image
, network
가 있으면 최상위 구성에서 이러한 속성 값을 모두 정의해야 합니다.
특정 템플릿 속성에 기본값이 포함된 경우, schemas를 사용하여 이러한 기본값을 설정할 수 있습니다. 기본값이 있는 템플릿 속성은 해당 기본값이 배포에 적합한 경우, 최상위 구성에서 생략할 수 있습니다.
명령줄에서 템플릿 속성 값 설정
템플릿을 가져오는 상위 파일에 템플릿 속성 값을 지정하는 대신 Deployment Manager는 Google Cloud CLI에서 직접 이러한 값을 설정할 수 있습니다. 최상위 YAML 파일 만들기를 건너뛸 수 있습니다. Deployment Manager는 요청에 있는 정보를 기준으로 배포의 최상위 구성을 자동으로 생성합니다.
예를 들어 다음 템플릿에 zone
이라는 템플릿 속성이 있다고 가정합니다.
Google Cloud CLI를 사용하여 이 템플릿 파일을 직접 전달하고 명령줄에서 템플릿 속성 값을 지정할 수 있습니다. 예를 들어 다음 요청은 템플릿을 전달하고 명령줄에서 직접 zone
속성을 지정합니다.
gcloud deployment-manager deployments create a-single-vm --template vm_template.jinja \
--properties zone:us-central1-a
다음 사항에 유의하세요.
모든 값은 YAML 값으로 파싱됩니다. 예를 들어
version: 3
은 정수로 전달됩니다. 문자열로 지정하려면version: \'3\'
값을 이스케이프 처리된 작은 따옴표로 묶습니다.불리언 값은 대소문자를 구분하지 않으므로
TRUE
,true
,True
는 모두 동일하게 취급됩니다.템플릿으로 정의된 모든 필수 속성을 전달해야 합니다. 속성의 하위 집합만 제공할 수는 없습니다. 특정 속성에 기본값이 포함된 경우, 명령줄에서 해당 속성을 생략할 수 있습니다.
여러 속성을 지정하려면 쉼표로 구분된 키:값 쌍을 제공합니다. 쌍을 지정하는 순서는 중요하지 않습니다. 예를 들면 다음과 같습니다.
gcloud deployment-manager deployments create my-igm \ --template vm_template.jinja \ --properties zone:us-central1-a,machineType:n1-standard-1,image:debian-9
이 명령어를 실행하면 Deployment Manager는 개발자가 제공한 템플릿을 사용하여 배포를 만듭니다. Google Cloud 불리언 또는 gcloud CLI를 사용하여 만든 배포를 확인할 수 있습니다. 배포 보기에 대한 자세한 내용은 매니페스트 보기를 참조하세요.
다음 단계
- 환경 변수를 사용하여 프로젝트 및 배포에 대한 정보를 채웁니다.
- 프로젝트에 템플릿을 복합 유형으로 영구적으로 추가합니다.
- 다른 사람과 공유하기 위해 템플릿을 외부적으로 호스팅합니다.