Desplegar infraestructura con Infrastructure Manager

En esta página se describe cómo usar Infrastructure Manager para aprovisionar un conjunto de recursos deGoogle Cloud definidos en una configuración de Terraform.

Para previsualizar una implementación sin aprovisionar recursos, consulta Previsualizar una implementación.

Puedes desplegar en varios proyectos y ubicaciones. La cuenta de servicio necesita permisos para los recursos y proyectos en los que se implementan los recursos. Consulta la lista de permisos en el artículo sobre el control de acceso con la gestión de identidades y accesos.

En esta página se da por hecho que conoces Terraform. Para obtener más información, consulta Terraform e Infra Manager.

Antes de empezar

  1. Habilita Infra Manager.
  2. Comprueba que tienes los permisos de gestión de identidades y accesos necesarios para crear implementaciones: roles/config.admin.
  3. Asegúrate de que tienes una cuenta de servicio con los permisos necesarios. Para obtener más información, consulta el artículo Configurar la cuenta de servicio.
  4. Identifica la configuración de Terraform que quieres desplegar. Asegúrate de que esta configuración de Terraform cumpla las restricciones. En concreto, asegúrate de que la configuración no contenga datos sensibles.
  5. Si quieres ver una vista previa del despliegue antes de configurar los recursos, consulta Vista previa de un despliegue.
  6. Confirma la cuota de productos de tu organización asociada a la infraestructura que quieres usar. Es posible que se produzcan errores de implementación si la infraestructura que quieres usar supera la cuota de tu organización para los productos que utiliza tu implementación. Consulta las cuotas y los límites para obtener más información.

Conceder permisos específicos de la configuración

Para desplegar Google Cloud recursos especificados en la configuración de Terraform, la cuenta de servicio que uses para llamar a Infra Manager necesita los permisos necesarios, que son específicos de los recursos que vas a desplegar.

Estos permisos se suman a los necesarios para usar el servicio Infra Manager.

Para obtener información sobre cómo conceder permisos para los recursos de Google Cloud y asegurarte de que tienes acceso a los proyectos necesarios, consulta Configurar la cuenta de servicio.

Conectar tu repositorio de Git privado y tu host a Cloud Build

Si vas a desplegar una configuración de Terraform desde un repositorio de Git privado, debes conectar tu host y tu repositorio de Git a Cloud Build.

Crear un despliegue con una configuración de Terraform

Puedes usar Infra Manager para desplegar una configuración de Terraform de varias formas:

  • Recomendación: Usa Infra Manager en la consola de Google Cloud para seleccionar una fuente, ver los detalles de la implementación, obtener una vista previa e implementar configuraciones de Terraform. Puedes usar Infra Manager desde la consola para desplegar desde los repositorios de Git y los contenedores de Cloud Storage. Google Cloud
  • Usa Infra Manager en Google Cloud CLI para desplegar configuraciones de Terraform desde:
    • Segmentos de Cloud Storage
    • Repositorios de Git
    • Directorios locales

Consulta Módulos y planos de Terraform para Google Cloud para ver ejemplos y plantillas de configuraciones de Terraform que puedes usar con Infra Manager.

Selecciona la pestaña del flujo de trabajo que hayas elegido para obtener más información sobre cómo crear una implementación.

Consola

En esta sección se describe cómo implementar una configuración de Terraform mediante Infra Manager en la consola de Google Cloud .

  1. En la consola de Google Cloud , ve a la página Gestor de infraestructuras.

    Ir a Infra Manager

  2. Haga clic en Crear para crear una implementación.
  3. En la página Deployment details (Detalles de la implementación), define los parámetros iniciales de la implementación.

    Sustituye:

    • ID de implementación: en el campo ID de implementación, introduce un nombre descriptivo para tu implementación. Consulta la documentación sobre el nombre de la implementación para obtener más información sobre las restricciones de nomenclatura.
    • Región: elige una región admitida en el menú desplegable.
    • Versión de Terraform: elija una versión de Terraform compatible en el menú desplegable. La lista de versiones de Terraform disponibles se rellena automáticamente en función de la región que haya seleccionado.
    • Cuenta de servicio: selecciona una cuenta de servicio o crea una. Infra Manager valida los permisos automáticamente en función de la infraestructura descrita en tu configuración de Terraform. Consulta Configurar la cuenta de servicio para obtener más información sobre cómo trabajar con cuentas de servicio e Infra Manager.
    • Fuente de la configuración de Terraform: haz clic en el interruptor para seleccionar Git o Cloud Storage como fuente de la configuración de Terraform que quieras desplegar.
      • En Git, sustituye lo siguiente:
        • Repositorio de Git: proporciona una URL, una rama o una etiqueta de un repositorio de Git público o privado.
          Si proporcionas un repositorio de Git privado, asegúrate de haber conectado tu host y tu repositorio a Cloud Build.
        • Opcional: directorio de Git: el directorio del repositorio de Git que contiene la configuración de Terraform.
        • Opcional: referencia de Git: la referencia de Git de la configuración. Si no especificas una referencia, se usará la rama configurada predeterminada del repositorio de Git.
      • En Cloud Storage bucket, sustituye lo siguiente:
        • Origen: el nombre del segmento de almacenamiento en el que se almacena la configuración.

    Haz clic en Continuar.

  4. En la página Detalles de Terraform, use los campos Clave y Valor para rellenar la lista de valores de entrada de su configuración de Terraform.

    Los valores pueden ser cualquier valor de entrada de la configuración de Terraform, incluidos los que no están definidos de forma predeterminada. Si todos los valores de entrada se definen de forma predeterminada en la configuración de Terraform, estos valores son opcionales. Haz clic en Continuar.

  5. En la página Detalles avanzados, defina los parámetros opcionales de su implementación.

    Sustituye:

    • Etiquetas: las etiquetas y las anotaciones son pares clave-valor de texto de formato libre. Puedes usarlos para adjuntar información arbitraria asociada al recurso. Para obtener más información, consulta la documentación sobre anotaciones.
    • Grupo de trabajadores: el recurso de grupo de trabajadores en el que se ejecutará el trabajo de Cloud Build. El formato del grupo de trabajadores es projects/{project}/locations/{location}/workerPools/{workerPoolId}.
    • Segmento de Cloud Storage de artefactos: ubicación de los registros y artefactos de Cloud Build en Cloud Storage. El formato de la ruta es gs://{bucket}/{folder}.
  6. Haz clic en Crear despliegue para iniciar el despliegue de tu configuración de Terraform. En la página Implementaciones, tu implementación se añadirá a la lista junto con su Estado.
  7. Para obtener más información sobre tu implementación, selecciónala para ir a la página Detalles de la implementación.
  8. ¡Listo! Has desplegado tu configuración de Terraform con Infra Manager.

CLI de gcloud

En esta sección se describe cómo implementar una configuración de Terraform almacenada en un segmento de Cloud Storage. Un segmento de almacenamiento te permite controlar el acceso a la configuración.

  1. Asegúrate de que la configuración de Terraform esté en un segmento de Cloud Storage. Para obtener más información, consulta el artículo Subir una configuración a un contenedor de almacenamiento.
  2. Si el segmento de almacenamiento está en un proyecto diferente del proyecto en el que ejecutas Infra Manager, debes asegurarte de que la cuenta de servicio de Infra Manager tenga permiso de lectura para el segmento. Consulta más información en el artículo Configurar la cuenta de servicio.

    Si el segmento de almacenamiento está en el mismo proyecto que Infra Manager, el permiso de lectura del segmento ya está habilitado.

  3. Despliega la configuración de Terraform:

    gcloud infra-manager deployments apply projects/PROJECT_ID/locations/LOCATION/deployments/DEPLOYMENT_ID \
            --service-account projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT \
            --gcs-source gs://BUCKET_NAME/OBJECT_NAME \
            --quota-validation=QUOTA_VALIDATION \
            --input-values=INPUT_1_NAME=VALUE,INPUT_2_NAME=VALUE \
            --tf-version-constraint=TERRAFORM_VERSION \
            --annotations="ANNOTATION_KEY=ANNOTATION_VALUE"
            --provider-source=SERVICE_MAINTAINED
            
Reemplazar:
  • PROJECT_ID: el ID del proyecto en el que se ejecuta Infra Manager.
  • LOCATION: la ubicación en la que se ejecuta Infra Manager. Consulta la lista de ubicaciones válidas en Ubicaciones de Infra Manager.
  • DEPLOYMENT_ID: el identificador de la implementación que especifiques. Consulta Nombre de la implementación para obtener información sobre las restricciones del identificador de implementación.
  • SERVICE_ACCOUNT_PROJECT_ID es el ID del proyecto de la cuenta de servicio. Lo habitual es que sea el mismo proyecto en el que se ejecuta Infra Manager.
  • SERVICE_ACCOUNT: el nombre de la cuenta de servicio que usas para llamar a Infra Manager.
  • BUCKET_NAME: el nombre del segmento de almacenamiento en el que se almacena la configuración.
  • OBJECT_NAME: el nombre del objeto del archivo de configuración. Este objeto puede ser un directorio o un archivo zip, pero no un archivo de Terraform. Si usa la gestión de versiones de objetos, también puede especificar el número de generación del objeto. Para obtener más información, consulta Usar objetos versionados.

    Si el contenedor de almacenamiento es la ruta raíz de la configuración de Terraform, OBJECT_NAME es opcional.

  • Opcional: QUOTA_VALIDATION es el valor que determina si la validación de cuota de los recursos de los archivos de configuración de Terraform está habilitada o se aplica cuando creas una implementación. Estos son algunos de los posibles valores:
    • ENABLED: habilita la validación de cuotas de computación para los recursos de los archivos de configuración de Terraform. Proporciona visibilidad de los recursos con cuotas insuficientes.
    • ENFORCED: valida la cuota para que tu implementación falle si no hay suficiente cuota disponible para la infraestructura definida en tu archivo de configuración de Terraform.

    Si no se define QUOTA_VALIDATION, se inhabilitará la validación de cuotas en los archivos de configuración de Terraform. Este es el valor predeterminado. La validación de cuotas se aplica a los recursos limitados. Google Cloud Para obtener más información, consulta Cuotas y límites.

  • INPUT_1_NAME y INPUT_2_NAME: cualquier valor de entrada de la configuración de Terraform, incluidos los que no están definidos de forma predeterminada. Por ejemplo, puedes especificar el proyecto en el que implementas los recursos como project_id=my-project.

    Si todos los valores de entrada se definen de forma predeterminada en la configuración, esta marca es opcional.

  • Opcional:TERRAFORM_VERSION la versión de Terraform que Infra Manager debe usar para crear la implementación. Consulta la versión de Terraform compatible para ver la lista de versiones admitidas. Si quitas esta marca opcional, se usará la última versión compatible de Terraform.
  • Opcional: ANNOTATION_KEY y ANNOTATION_VALUE representan un par clave-valor de texto de formato libre que se puede adjuntar a tus implementaciones de Infra Manager. Para obtener más información sobre el uso y las restricciones de las anotaciones y las etiquetas, consulta Anotaciones y etiquetas.
  • Opcional: PROVIDER_SOURCE: determina qué proveedor de Terraform utiliza Google Cloud el despliegue. Defina el valor SERVICE_MAINTAINED para usar el proveedor de Terraform mantenido por Infra Manager. Omite este campo para usar el proveedor de Terraform mantenido por HashiCorp. Para obtener más información, consulta Usar el proveedor de Terraform para Google Cloud.

CLI de gcloud

En esta sección se describe cómo trabajar con una configuración de Terraform almacenada en un repositorio de Git.

  1. Comprueba que has instalado Git.
  2. Si tu configuración de Terraform se almacena en un repositorio de Git privado, asegúrate de que el host y el repositorio de Git estén conectados a Cloud Build.
  3. Despliega la configuración de Terraform:

    gcloud infra-manager deployments apply projects/PROJECT_ID/locations/LOCATION/deployments/DEPLOYMENT_ID \
            --service-account projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT \
            --git-source-repo="GIT_REPO" \
            --git-source-directory="DIRECTORY" \
            --git-source-ref="REF" \
            --quota-validation=QUOTA_VALIDATION \
            --input-values=INPUT_1_NAME=VALUE,INPUT_2_NAME=VALUE \
            --tf-version-constraint=TERRAFORM_VERSION \
            --annotations="ANNOTATION_KEY=ANNOTATION_VALUE"
            --provider-source=SERVICE_MAINTAINED
            
Reemplazar:
  • PROJECT_ID: el ID del proyecto en el que se ejecuta Infra Manager.
  • LOCATION: la ubicación en la que se ejecuta Infra Manager. Consulta la lista de ubicaciones válidas en Ubicaciones de Infra Manager.
  • DEPLOYMENT_ID: el identificador de la implementación que especifiques. Consulta Nombre de la implementación para obtener información sobre las restricciones del identificador de implementación.
  • SERVICE_ACCOUNT_PROJECT_ID es el ID del proyecto de la cuenta de servicio. Lo habitual es que sea el mismo proyecto en el que se ejecuta Infra Manager.
  • SERVICE_ACCOUNT: el nombre de la cuenta de servicio que usas para llamar a Infra Manager.
  • GIT_REPO: el repositorio de Git.
  • DIRECTORY: el directorio que tiene la configuración de Terraform.
  • Opcional: REF: la referencia de Git de la configuración. La referencia es opcional. Si no especificas la referencia, se usará la rama configurada predeterminada del repositorio de Git.
  • Opcional: QUOTA_VALIDATION es el valor que determina si la validación de cuota de los recursos de los archivos de configuración de Terraform está habilitada o se aplica cuando creas una implementación. Estos son algunos de los posibles valores:
    • ENABLED: habilita la validación de cuotas de computación para los recursos de los archivos de configuración de Terraform. Proporciona visibilidad de los recursos con cuotas insuficientes.
    • ENFORCED: valida la cuota para que tu implementación falle si no hay suficiente cuota disponible para la infraestructura definida en tu archivo de configuración de Terraform.

    Si no se define QUOTA_VALIDATION, se inhabilitará la validación de cuotas en los archivos de configuración de Terraform. Este es el valor predeterminado. La validación de cuotas se aplica a los recursos limitados. Google Cloud Para obtener más información, consulta Cuotas y límites.

  • INPUT_1_NAME y INPUT_2_NAME: cualquier valor de entrada de la configuración de Terraform, incluidos los que no están definidos de forma predeterminada. Por ejemplo, puedes especificar el proyecto en el que implementas los recursos como project_id=my-project.

    Si todos los valores de entrada se definen de forma predeterminada en la configuración, esta marca es opcional.

  • Opcional:TERRAFORM_VERSION la versión de Terraform que Infra Manager debe usar para crear la implementación. Consulta la versión de Terraform compatible para ver la lista de versiones admitidas. Si quitas esta marca opcional, se usará la última versión compatible de Terraform.
  • Opcional: ANNOTATION_KEY y ANNOTATION_VALUE representan un par clave-valor de texto de formato libre que se puede adjuntar a tus implementaciones de Infra Manager. Para obtener más información sobre el uso y las restricciones de las anotaciones y las etiquetas, consulta Anotaciones y etiquetas.
  • Opcional: PROVIDER_SOURCE: determina qué proveedor de Terraform utiliza Google Cloud el despliegue. Defina el valor SERVICE_MAINTAINED para usar el proveedor de Terraform mantenido por Infra Manager. Omite este campo para usar el proveedor de Terraform mantenido por HashiCorp. Para obtener más información, consulta Usar el proveedor de Terraform para Google Cloud.

CLI de gcloud

En esta sección se describe cómo trabajar con una configuración de Terraform almacenada en tu máquina local.

  1. Si usas Cloud Shell, debes subir la configuración a Cloud Shell. Para obtener más información, consulta el artículo Gestionar archivos con Cloud Shell.
  2. Despliega la configuración de Terraform:

    gcloud infra-manager deployments apply projects/PROJECT_ID/locations/LOCATION/deployments/DEPLOYMENT_ID \
            --service-account projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT \
            --local-source="LOCAL_DIRECTORY" \
            --quota-validation=QUOTA_VALIDATION \
            --input-values=INPUT_1_NAME=VALUE,INPUT_2_NAME=VALUE \
            --tf-version-constraint=TERRAFORM_VERSION \
            --annotations="ANNOTATION_KEY=ANNOTATION_VALUE"
            --provider-source=SERVICE_MAINTAINED
            
Reemplazar:
  • PROJECT_ID: el ID del proyecto en el que se ejecuta Infra Manager.
  • LOCATION: la ubicación en la que se ejecuta Infra Manager. Consulta la lista de ubicaciones válidas en Ubicaciones de Infra Manager.
  • DEPLOYMENT_ID: el identificador de la implementación que especifiques. Consulta Nombre de la implementación para obtener información sobre las restricciones del identificador de implementación.
  • SERVICE_ACCOUNT_PROJECT_ID es el ID del proyecto de la cuenta de servicio. Lo habitual es que sea el mismo proyecto en el que se ejecuta Infra Manager.
  • SERVICE_ACCOUNT: el nombre de la cuenta de servicio que usas para llamar a Infra Manager.
  • LOCAL_DIRECTORY: el directorio local que almacena la configuración de Terraform. Si usas Cloud Shell, este es el directorio de Cloud Shell en el que se almacena la configuración.
  • Opcional: QUOTA_VALIDATION es el valor que determina si la validación de cuota de los recursos de los archivos de configuración de Terraform está habilitada o se aplica cuando creas una implementación. Estos son algunos de los posibles valores:
    • ENABLED: habilita la validación de cuotas de computación para los recursos de los archivos de configuración de Terraform. Proporciona visibilidad de los recursos con cuotas insuficientes.
    • ENFORCED: valida la cuota para que tu implementación falle si no hay suficiente cuota disponible para la infraestructura definida en tu archivo de configuración de Terraform.

    Si no se define QUOTA_VALIDATION, se inhabilitará la validación de cuotas en los archivos de configuración de Terraform. Este es el valor predeterminado. La validación de cuotas se aplica a los recursos limitados. Google Cloud Para obtener más información, consulta Cuotas y límites.

  • INPUT_1_NAME y INPUT_2_NAME: cualquier valor de entrada de la configuración de Terraform, incluidos los que no están definidos de forma predeterminada. Por ejemplo, puedes especificar el proyecto en el que implementas los recursos como project_id=my-project.

    Si todos los valores de entrada se definen de forma predeterminada en la configuración, esta marca es opcional.

  • Opcional:TERRAFORM_VERSION la versión de Terraform que Infra Manager debe usar para crear la implementación. Consulta la versión de Terraform compatible para ver la lista de versiones admitidas. Si quitas esta marca opcional, se usará la última versión compatible de Terraform.
  • Opcional: ANNOTATION_KEY y ANNOTATION_VALUE representan un par clave-valor de texto de formato libre que se puede adjuntar a tus implementaciones de Infra Manager. Para obtener más información sobre el uso y las restricciones de las anotaciones y las etiquetas, consulta Anotaciones y etiquetas.
  • Opcional: PROVIDER_SOURCE: determina qué proveedor de Terraform utiliza Google Cloud el despliegue. Defina el valor SERVICE_MAINTAINED para usar el proveedor de Terraform mantenido por Infra Manager. Omite este campo para usar el proveedor de Terraform mantenido por HashiCorp. Para obtener más información, consulta Usar el proveedor de Terraform para Google Cloud.

Siguientes pasos