Una de las ventajas de usar plantillas es la posibilidad de crear y definir propiedades de plantilla personalizadas. Las propiedades de plantilla son variables arbitrarias que se definen en los archivos de plantilla. Cualquier archivo de configuración o plantilla que use la plantilla en cuestión puede proporcionar un valor para la propiedad de la plantilla sin cambiarla directamente. De esta forma, puede abstraer la propiedad para cambiar su valor en cada configuración única sin tener que actualizar la plantilla subyacente.
Por ejemplo, la siguiente línea especifica una propiedad de plantilla en la URL del tipo de máquina:
machineType: zones/{{ properties["zone"] }}/machineTypes/n1-standard-1
En una configuración que use esta plantilla, puedes definir 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á que debe transferir el valor de zone
a la plantilla subyacente.
Antes de empezar
- Si quieres usar los ejemplos de línea de comandos de esta guía, instala la herramienta de línea de comandos`gcloud`.
- Si quieres usar los ejemplos de API de esta guía, configura el acceso a la API.
- Aprender a crear una plantilla básica
- Consulta cómo crear una configuración.
Crear una propiedad de plantilla
Para crear una propiedad de plantilla, siga estos pasos:
Jinja
En Jinja, define una propiedad con la siguiente sintaxis:
{{ properties["PROJECT_NAME"] }}
Por ejemplo:
Python
En Python, define una propiedad con la siguiente sintaxis:
context.properties["PROPERTY_NAME"]
Por ejemplo:
Para ver el ejemplo completo de Python, consulta el repositorio de GitHub de Deployment Manager.
Definir valores para las propiedades de plantilla en la configuración de nivel superior
En la configuración de nivel superior, puede definir valores para las propiedades de la plantilla con la siguiente sintaxis:
imports: - path: vm_template.jinja resources: - name: my-vm type: vm_template.jinja properties: zone: us-central1-a
Debe asignar valores a todas las propiedades de la plantilla. Por ejemplo, si una plantilla tiene las propiedades zone
, image
y network
, debes definir valores para todas esas propiedades en la configuración de nivel superior.
Si algunas propiedades de la plantilla tienen valores predeterminados, puedes usar esquemas para definir estos valores. Una propiedad de plantilla con un valor predeterminado se puede omitir de la configuración de nivel superior si el valor predeterminado es adecuado para la implementación.
Definir valores para las propiedades de 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 definir estos valores directamente en la CLI de Google Cloud. Puedes omitir la creación del archivo YAML de nivel superior. Deployment Manager generará automáticamente una configuración de nivel superior para tu implementación en función de la información de tu solicitud.
Por ejemplo, supongamos que tienes la siguiente plantilla, que tiene una propiedad de plantilla llamada zone
:
Con Google Cloud CLI, puedes introducir este archivo de plantilla directamente y proporcionar los valores de las propiedades de la plantilla en la línea de comandos. Por ejemplo, la siguiente solicitud se envía en la plantilla y especifica la propiedad 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 YAML. Por ejemplo,
version: 3
se pasa como un número entero. Si quieres especificarlo como una cadena, incluye comillas simples escapadas alrededor del valor,version: \'3\'
.En los valores booleanos no se distingue entre mayúsculas y minúsculas, por lo que
TRUE
,true
yTrue
se tratan de la misma forma.Debes incluir todas las propiedades obligatorias definidas en la plantilla. No puedes proporcionar solo un subconjunto de las propiedades. Si determinadas propiedades tienen valores predeterminados, puede omitir la propiedad de la línea de comandos.
Para especificar varias propiedades, proporcione pares clave:valor separados por comas. No importa el orden en el que 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 un despliegue con la plantilla que has proporcionado. Puedes confirmar que se ha creado el despliegue mediante la Google Cloud consola o la CLI de gcloud. Para obtener información sobre cómo ver una implementación, consulta el artículo Ver un manifiesto.
Siguientes pasos
- Rellena la información sobre tus proyectos e implementaciones con variables de entorno.
- Añade una plantilla de forma permanente a tu proyecto como tipo compuesto.
- Aloja plantillas de forma externa para compartirlas con otros usuarios.