Una de las ventajas de usar plantillas es la posibilidad de crear y definir propiedades de plantillas personalizadas. Las propiedades de la plantilla son variables arbitrarias que defines en los archivos de plantilla. Cualquier archivo de configuración o archivo de plantilla que utilice la plantilla en cuestión puede proporcionar un valor para la propiedad de la plantilla sin cambiar la plantilla directamente. Esto te permite abstraer la propiedad a fin de que puedas cambiar el valor de la propiedad para cada configuración única sin actualizar la plantilla subyacente.
Por ejemplo, la siguiente línea especifica una propiedad de la plantilla en la URL del tipo de máquina:
machineType: zones/{{ properties["zone"] }}/machineTypes/n1-standard-1
En una configuración que usa esta plantilla, puedes establecer el valor de zone
en la sección properties
de la plantilla:
imports: - path: vm_template.jinja resources: - name: my-vm type: vm_template.jinja properties: zone: us-central1-a
Deployment Manager sabrá pasar el valor de zone
a la plantilla subyacente.
Antes de comenzar
- Si deseas usar los ejemplos de línea de comandos de esta guía, instala la herramienta de línea de comandos de gcloud.
- Si deseas usar los ejemplos de la API en esta guía, configura el acceso a la API.
- Aprende a crear una plantilla básica.
- Aprende a crear una configuración
Crear una propiedad de la plantilla
Para crear una propiedad de la plantilla:
Jinja
En Jinja, define una propiedad con el uso de la siguiente sintaxis:
{{ properties["PROJECT_NAME"] }}
Por ejemplo:
Python
En Python, define una propiedad con el uso de la siguiente sintaxis:
context.properties["PROPERTY_NAME"]
Por ejemplo:
Para ver el ejemplo completo de Python, consulta el repositorio de GitHub de Deployment Manager.
Establecer valores para las propiedades de la plantilla en la configuración de nivel superior
En la configuración de nivel superior, puedes establecer los valores de las propiedades de la plantilla con el uso de la sintaxis:
imports: - path: vm_template.jinja resources: - name: my-vm type: vm_template.jinja properties: zone: us-central1-a
Debes establecer valores para todas las propiedades de la plantilla en la plantilla. Por ejemplo, si una plantilla tiene propiedades de plantilla zone
, image
, network
, debes definir valores para todas ellas en la configuración de nivel superior.
Si determinadas propiedades de la plantilla tienen valores predeterminados, considera utilizar esquemas para establecer estos valores predeterminados. Una propiedad de la plantilla con un valor predeterminado puede omitirse en la configuración de nivel superior si el valor predeterminado es adecuado para la implementación.
Establece valores para las propiedades de la plantilla en la línea de comandos
En lugar de proporcionar valores para las propiedades de la plantilla en el archivo principal que importa la plantilla, Deployment Manager ofrece la posibilidad de establecer estos valores directamente en Google Cloud CLI. Puedes omitir la creación del archivo YAML de nivel superior; Deployment Manager generará automáticamente una configuración de nivel superior para la implementación según la información en la solicitud.
Por ejemplo, supón que tienes la siguiente plantilla que tiene una propiedad de la plantilla denominada zone
:
Con Google Cloud CLI, puedes pasar
este archivo de plantilla directamente
y proporciona los valores para las propiedades de tu plantilla en la línea de comandos. Para
ejemplo, la siguiente solicitud pasa la plantilla y especifica la
zone
directamente en la línea de comandos:
gcloud deployment-manager deployments create a-single-vm --template vm_template.jinja \
--properties zone:us-central1-a
Ten en cuenta lo siguiente:
Todos los valores se analizan como valores de YAML. Por ejemplo,
version: 3
se pasa como un número entero. Si deseas especificarlo como una string, agrega comillas simples escapadas alrededor del valor,version: \'3\'
.Los valores booleanos no distinguen entre mayúsculas y minúsculas, por lo que
TRUE
,true
yTrue
se tratan de la misma manera.Debes pasar todas las propiedades obligatorias que definió la plantilla. No puedes proporcionar solo un subconjunto de las propiedades. Si determinadas propiedades tienen valores predeterminados, puedes omitir la propiedad en la línea de comandos.
Para especificar varias propiedades, proporciona pares clave-valor separados por comas. No importa en qué orden especifiques los pares. Por ejemplo:
gcloud deployment-manager deployments create my-igm \ --template vm_template.jinja \ --properties zone:us-central1-a,machineType:n1-standard-1,image:debian-9
Después de ejecutar este comando, Deployment Manager crea una implementación con la plantilla que proporcionaste. Puedes confirmar que la implementación se creó con la consola de Google Cloud o gcloud CLI. Para obtener más información sobre cómo ver una implementación, lee Ve un manifiesto.
Pasos siguientes
- Propaga la información sobre los proyectos y las implementaciones con las variables de entorno.
- Agrega una plantilla de forma permanente a tu proyecto como un tipo compuesto.
- Aloja plantillas de manera externa para compartir con otros.