Configura tu imagen de VM para la implementación de Terraform

Este artículo describe cómo terminar de configurar y enviar tu imagen de VM para implementación con Terraform.

Determina cómo crear tu paquete de implementación

Te recomendamos que uses la opción de configuración guiada de Producer Portal para hacer lo siguiente: crear tu paquete de implementación directamente en la consola de Google Cloud.

La opción de configuración guiada admite productos de VM simples, como VMs únicas Deployment con reglas básicas de firewall, pero no es compatible con algunas como implementaciones con varias VMs y recursos que no son de procesamiento. Si necesitas funciones que la configuración guiada no admite, puedes usar de configuración manual para crear tu paquete de implementación personalizar un paquete existente agregándole capacidades adicionales.

Cambia entre la configuración guiada y la configuración manual

Si usas la opción de configuración guiada de Producer Portal y más adelante quieres cambia a la configuración manual del paquete de implementación, haz clic Ve a la configuración manual.

Completa la configuración guiada

Para terminar de configurar y enviar un paquete de implementación simple usando el comando En la consola de Google Cloud, completa los siguientes pasos:

  1. En Producer Portal, ve a la sección Deployment package (Paquete de implementación).

  2. En Terraform configuration, junto al campo de entrada etiquetado Bucket de Cloud Storage, haz clic en Explorar.

    Si ya creaste un bucket de Cloud Storage, selecciónalo. aquí.

    Si no tienes un bucket de Cloud Storage, haz clic en el ícono etiquetado Crea un bucket nuevo. Cuando creas un bucket nuevo, tienes las siguientes opciones:

    • Selecciona un nombre para el bucket.

    • Especifica en qué región o regiones se almacenan los datos del bucket.

    • Especifica la clase de almacenamiento para tus datos.

    • Determina qué nivel de detalle aplicar al Permisos de Identity and Access Management (IAM) para los datos del bucket

    • Establece la configuración avanzada opcional, como la encriptación o los datos políticas de retención.

  3. Asegúrate de Habilita el control de versiones de objetos para tu bucket de Cloud Storage.

  4. Para guardar la configuración del bucket y continuar con la configuración de la implementación haz clic en Configure.

  5. En Elige el tipo de máquina, debes especificar una zona predeterminada. Tipo de máquina mínimo y Tipo de máquina predeterminado para tu VM junto con el tamaño y tipo de su disco de arranque.

  6. En Especifica el sistema operativo, debes especificar el nombre y la versión. del SO que usa tu imagen de VM, así como el número de versión de la VM imagen.

  7. De manera opcional, en Configura el acceso a la VM, puedes especificar el sitio y el administrador. las URLs, junto con un nombre de usuario y una contraseña, que los usuarios pueden usar para acceder la VM después de la implementación.

  8. De manera opcional, en Configurar redes, puedes especificar la configuración para Reenvío de IP y configura las reglas de firewall

  9. De manera opcional, en Definir los próximos pasos, puedes proporcionar instrucciones para lo siguiente: los usuarios de tu producto para guiarlos sobre cómo empezar a usar tu producto. Ellos podrán ver estas instrucciones después de implementar tu producto.

  10. Después de completar los pasos anteriores, haz clic en Generar para crear tu de implementación.

    Si necesitas realizar cambios adicionales en tu paquete de implementación más adelante, Puedes hacer clic en Editar para realizar cambios y, luego, en Generar para y vuelve a generar tu paquete de implementación con esos cambios aplicados.

  11. Valida el paquete de implementación en Producer Portal.

  12. Después de que Cloud Marketplace valide tu paquete de implementación si se completó correctamente, haz clic en Publicar para comenzar a probar tu implementación. .

Completa la configuración manual

En esta sección, se explica cómo usar la opción de configuración manual para crear un Deployment y enviarlo para su revisión.

Especifica si quieres usar el módulo de Terraform predeterminado o uno personalizado

Puedes elegir si deseas que tus clientes usen el método predeterminado o uno personalizado módulo de Terraform cuando implementen el producto.

Si eliges usar el módulo predeterminado de Terraform, Google Cloud proporciona a tus clientes con un código de Terraform generado automáticamente que pueden usar para implementar tu producto.

Si eliges usar un módulo de Terraform personalizado, debes proporcionar uno plantillas de Terraform para el cliente. Puedes optar por proporcionar estas plantillas en un formato que los clientes puedan implementar mediante la interfaz de línea de comandos (CLI), o con metadatos adicionales que les permitan a los clientes implementar módulos directamente desde Cloud Marketplace

Especificar si tus clientes deben usar la configuración predeterminada o personalizada y, en el caso de los módulos personalizados de Terraform, la forma en que deseas que tus clientes implementen del módulo, completa los siguientes pasos:

  1. En Producer Portal, ve a la sección Deployment package (Paquete de implementación).

  2. En Configuración de Terraform, en Tipo, selecciona Predeterminado. Personalizada (implementación de CLI) o personalizada (implementación de IU).

Requisitos para los módulos personalizados de Terraform

Si eliges usar módulos personalizados de Terraform, este debe cumplir con los con los siguientes requisitos:

  • Tu módulo personalizado debe tener un módulo que pueda usar Cloud Marketplace para verificar que cumpla con los requisitos. Para obtener más información, consulta Comprueba que tu módulo apruebe la verificación.

  • Tu módulo debe tener una variable llamada project_id, que almacena el proyecto ID que usan tus clientes para implementar el módulo.

  • Debes especificar referencias a los nombres de tus imágenes como Terraform variables con el formato projects/PROJECT_NAME/global/images/IMAGE_NAME El valor de default debe ser el nombre de tu imagen de VM, de modo que la La copia de la imagen que es propiedad de Cloud Marketplace se puede reemplazar en la cuando se publica tu producto de VM.

  • Tu módulo no debe depender de módulos externos que no estén incluidos en el paquete.

  • Tu módulo debe usar solo los siguientes proveedores aprobados:

    • archive
    • cloud-init
    • dns
    • google
    • google-beta
    • http
    • null
    • random
    • time
    • tls

Para ver un ejemplo de un módulo personalizado que cumpla con estos requisitos, visita la módulo de Terraform personalizado de muestra.

Requisitos adicionales para los módulos personalizados de Terraform en la implementación de la IU

Si tu módulo personalizado admite la implementación de IU, debe cumplir con los siguientes requisitos adicionales:

  • Tu módulo debe contener una variable llamada goog_cm_deployment_name. Cloud Marketplace usa esta variable para nombrar las ubicaciones Deployment en su página de implementación. Debes usar esta variable para evitar conflictos de nombres de recursos entre varias implementaciones en un proyecto. Para Por ejemplo, consulta goog_cm_deployment_name en las módulo de Terraform personalizado de muestra.

  • En el archivo metadata.display.yaml, debes especificar ET_GCE_DISK_IMAGE como El tipo xGoogleProperty para todas las variables de imagen Por ejemplo, consulta metadata.display.yaml en módulo de Terraform personalizado de muestra.

  • Si tu producto contiene imágenes de varias VM o imágenes compatibles con varias CPU arquitecturas de Kubernetes, debes agregar enumValueLabels para que tus clientes puedan selecciona la imagen de VM que quieren usar. Para ver un ejemplo, consulta el módulo de Terraform personalizado de muestra.

  • Tu módulo no debe depender de la compatibilidad con Aprovisionadores de Terraform:

Pasos adicionales para los módulos personalizados de Terraform

Si elegiste usar módulos personalizados de Terraform, debes completar los siguientes pasos: pasos adicionales para configurar tu imagen de VM para la implementación:

  1. En Producer Portal, ve a la sección Deployment package (Paquete de implementación).

  2. En Terraform configuration, en Image Variables, haz clic en Agregar variable.

    Para habilitar la implementación de Terraform en tu producto, debes tener activaste el uso de imágenes que son propiedad de Marketplace. Cloud Marketplace usa la variable que agregas aquí para intercambiar Versión propiedad de Marketplace de tu imagen de VM cuando un cliente implementa tu producto.

  3. En el campo de texto Image Variable, ingresa un nombre para la variable, como “imagen”.

  4. En el módulo personalizado de Terraform, configura el valor predeterminado de la variable que que creaste en el paso anterior al nombre de la imagen de VM de tu producto, en el formato projects/YOUR_PROJECT/global/images/YOUR_IMAGE

  5. En Especifica la ubicación de tu objeto de GCS, haz clic en Explorar.

    Si ya creaste un bucket de Cloud Storage, selecciónalo aquí.

    Si no tienes un bucket de Cloud Storage, haz clic en el ícono etiquetado Crea un bucket nuevo. Cuando creas un bucket nuevo, tienes las siguientes opciones:

    • Selecciona un nombre para el bucket.

    • Especifica en qué región o regiones se almacenan los datos del bucket.

    • Especifica la clase de almacenamiento para tus datos.

    • Determina qué nivel de detalle aplicar a los permisos de Identity and Access Management (IAM) para los datos del bucket.

    • Establece la configuración avanzada opcional, como la encriptación o los datos políticas de retención.

  6. Asegúrate de tener habilitado el control de versiones de objetos para tu bucket de Cloud Storage.

  7. Para guardar la configuración del bucket y continuar con la configuración de la implementación haz clic en Configure.

  8. En Roles obligatorios, especifica los roles de IAM que tus clientes. debes tener para implementar tu producto.

Crea metadatos para tu módulo personalizado de Terraform (solo implementación de IU)

Para que tu módulo personalizado sea compatible con la implementación de IU, debes crear y agregar metadatos que Cloud Marketplace usa para analizar correctamente tu módulo y y renderizarlos en la IU para tu cliente.

Para crear y agregar estos metadatos, puedes usar la API de Herramienta de la CLI de CFT. Si deseas usar CFT para crear y agregar metadatos a tus módulos personalizados, completa los los siguientes pasos:

  1. Instala la herramienta de la CLI de CFT. Para obtener más información, visita el Documentación de la CLI de CFT Te recomendamos que especifiques el valor de VERSION para que sea latest. Configura PLATFORM en uno de los siguientes valores:

    • linux

    • windows

    • darwin

  2. Ejecuta el siguiente comando:

     cft blueprint metadata -p TF_PACKAGE_PATH -q -d --nested=false
    

    En el comando anterior, la marca -p proporciona una ruta para el balanceador de la marca -q genera metadatos sin necesidad de información sobre un repositorio remoto, la marca -d genera el metadata.display.yaml y la marca --nested=false genera metadatos para el módulo raíz, omitiendo los módulos de la carpeta modules/.

Después de completar los pasos anteriores, la herramienta de la CLI de CFT genera dos archivos nuevos: metadata.yaml y metadata.display.yaml.

Personaliza los metadatos de tu módulo de Terraform personalizado

Cloud Marketplace usa el archivo metadata.display.yaml para personalizar la que usan los clientes para implementar tu producto a través de la IU. Si deseas personaliza este formulario. Después de crear los metadatos, puedes modificar los valores de los campos en metadata.display.yaml. Para obtener detalles sobre opciones de personalización, visita el sitio web Documentación de BlueprintUI, o consulta la Esquema de BlueprintUI.

Te recomendamos que uses la extensión GooglePropertyExtensions para alterar tus metadatos. GooglePropertyExtensions te permite usar validaciones específicas de Google Cloud, como la aplicación de que los clientes puedan solo seleccionar redes de nube privada virtual (VPC) que ya existan en su en un proyecto final. Para ver un ejemplo, consulta el módulo de Terraform personalizado de muestra.

Valida los metadatos de tu módulo personalizado

Para validar los metadatos de tu módulo personalizado, ejecuta el siguiente comando:

cft blueprint metadata -p TF_PACKAGE_PATH -v

En el comando anterior, la marca -p proporciona una ruta para el balanceador de el paquete, y la marca -v valida todos los archivos de metadatos en la ruta proporcionada según el Esquema BlueprintMetadata.

Prueba que tu módulo apruebe la verificación

Tu módulo personalizado pasa la verificación si se ejecuta el siguiente comando: correctamente:

terraform plan -var project_id=YOUR_PROJECT -var-file marketplace_test.tfvars

En el comando anterior, marketplace_test.tfvars es un archivo de variables de Terraform. que solo Cloud Marketplace usa, exclusivamente para esta verificación del módulo. Si tu plantilla declara alguna variable que no tiene un valor predeterminado, y no estableces un valor para esas variables, el comando no se ejecuta con éxito. Para asegurarte de que el comando se ejecute correctamente, puedes crear una marketplace_test.tfvars para establecer valores de las variables a las que declara la plantilla. Para ver un archivo marketplace_test.tfvars de ejemplo, consulta el módulo de Terraform personalizado de muestra.

Incluye un módulo de prueba (opcional) (solo implementación de la CLI)

De manera opcional, si tu módulo personalizado admite la implementación de la CLI, puedes elegir Incluye una carpeta llamada examples/marketplace_test. Te recomendamos que lo hagas si tu producto debe incluir un módulo de prueba independiente para verificar su capacidades de integración. Si incluyes esta carpeta, entonces, para que tu módulo pase el la verificación, el siguiente comando debe ejecutarse correctamente:

terraform -chdir=examples/marketplace_test plan -var project_id=YOUR_PROJECT

Valida y prueba tu implementación

Luego de crear y configurar tu paquete de implementación, debes validar y probarla antes de que el equipo de Cloud Marketplace pueda revisarla y aprobarla. que la modifica.

  1. En Producer Portal, ve a la sección Deployment package (Paquete de implementación).

  2. Haz clic en Validate. El proceso de validación puede tardar hasta dos horas que se complete y podrás salir de la pantalla mientras se ejecuta.

  3. Una vez que la validación se haya completado correctamente, haz clic en Vista previa de la implementación. para probar la implementación.

¿Qué sigue?

Después de validar y probar correctamente tu implementación, puedes hacer clic en Publica para enviar tu producto general a revisión y publicación en Cloud Marketplace Para obtener más información, consulta Envía tu producto.