En este documento se describe cómo usar plantillas externas en tu implementación que estén alojadas en algún lugar de Internet en lugar de en tu máquina local.
Puedes almacenar plantillas en un host externo en cualquier lugar de Internet y llamarlas desde tu configuración. Al alojar plantillas de forma externa, se obtienen ciertas ventajas con respecto a almacenarlas de forma local:
- Compartir plantillas fácilmente con otros usuarios
- Asegurarse de que las configuraciones siempre usen la plantilla más actualizada
- Gestionar automáticamente las importaciones y los esquemas relevantes
Deployment Manager siempre obtiene la versión más reciente de las plantillas externas cada vez que vuelves a implementar tu configuración. Si mantienes tus plantillas, tus implementaciones también estarán siempre actualizadas. Deployment Manager también se encargará de importar otras plantillas dependientes si se hace referencia a ellas en la plantilla externa.
Ejemplo
Esta configuración importa una plantilla externa:
resources:
- name: my-frontend
type: gs://my-frontend-templates/webserver-frontend.jinja
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.
- Consulta la documentación sobre la configuración.
- Consulta la documentación sobre plantillas.
Alojar plantillas externas
Puedes alojar plantillas externas en Google Cloud Storage o en una ubicación de acceso público, como GitHub. Siempre que haya una URL al archivo y tengas acceso a las plantillas, Deployment Manager podrá descargarlo. Si el archivo usa un esquema para importar otras plantillas, también debe alojar esas plantillas en la misma URL base.
En Google Cloud Storage
Para alojar plantillas en Google Cloud Storage, sigue estos pasos:
- Crea un segmento para las plantillas o usa uno que ya tengas.
- Sube tus plantillas y los archivos de plantilla relacionados, como los esquemas, al segmento.
- Si tienes previsto usar las plantillas de un proyecto de Google Cloud Platform distinto al que pertenecen, configura los controles de acceso para permitir ese acceso.
Al alojar plantillas en Google Cloud Storage, puedes controlar quién tiene acceso a ellas, ya que puedes definir opciones de control de acceso en el segmento de Cloud Storage correspondiente o en la plantilla específica.
Por el contrario, si aloja sus plantillas en otras URLs de acceso público, deberá hacer que las plantillas estén disponibles para todos los usuarios.
En una URL de acceso público
También puedes alojar plantillas externas fuera de Google Cloud Storage, siempre que sean accesibles públicamente. Por ejemplo, puedes alojar plantillas en GitHub y hacer referencia a ellas mediante la URL de GitHub.
En el caso de GitHub, debes proporcionar la URL de GitHub sin formato para que Deployment Manager obtenga la plantilla en lugar de la página HTML de GitHub. Por ejemplo, una URL sin procesar tiene este aspecto:
https://raw.githubusercontent.com/GoogleCloudPlatform/deploymentmanager-samples/master/examples/v2/single_vm/jinja/vm_template.jinja
Llamar a una plantilla externa
Llama a una plantilla externa como si fuera una plantilla local, pero proporciona la URL completa del archivo de plantilla como tipo. Por ejemplo:
resources:
- name: my-salt-cluster
type: gs://v2/saltstack/salt_cluster.jinja
Para una URL de GitHub:
resources:
- name: my-salt-cluster
type: https://raw.githubusercontent.com/GoogleCloudPlatform/deploymentmanager-samples/master/examples/v2/single_vm/vm_template.jinja
Si una plantilla externa importa otras plantillas o hay un esquema asociado, puede almacenar los archivos relacionados en el mismo directorio o en un subdirectorio relativo e incluir estas otras plantillas con una URL relativa. Deployment Manager buscará estas otras plantillas mediante la ruta relativa basada en la URL base.
Por ejemplo, si tu configuración fuera la siguiente:
resources:
- name: my-salt-cluster
type: gs://v2/saltstack/salt_cluster.jinja
También había un archivo de esquema llamado salt_cluster.jinja.schema
que importaba estos archivos:
imports:
- path: minion.py
- path: master.py
- path: examples/source/example.py
Deployment Manager descargará e importará automáticamente todos los archivos necesarios para la plantilla.