Implementa la 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 obtener una vista previa de una implementación sin aprovisionar recursos, consulta Obtén una vista previa de una implementación.

Puedes realizar implementaciones en varios proyectos y ubicaciones. La cuenta de servicio necesita permisos para los recursos y proyectos en los que se implementan los recursos. Consulta Control de acceso con IAM para ver la lista de permisos.

En esta página, se supone que estás familiarizado con Terraform. Para obtener más detalles, consulta Terraform y Infra Manager.

Antes de comenzar

  1. Habilita Infra Manager.
  2. Asegúrate de tener los permisos de IAM necesarios para crear implementaciones: roles/config.admin.
  3. Asegúrate de tener una cuenta de servicio con los permisos necesarios. Para obtener más información, consulta Configura la cuenta de servicio.
  4. Identifica la configuración de Terraform que se implementará. Asegúrate de que esta configuración de Terraform cumpla con las restricciones. Específicamente, asegúrate de que la configuración no contenga datos sensibles.
  5. Si deseas obtener una vista previa de la implementación antes de configurar los recursos, consulta Obtén una vista previa de una implementación.
  6. Confirma la cuota de tu organización para los productos asociados con la infraestructura que deseas usar. Es posible que se produzcan errores de implementación si la infraestructura que deseas usar supera la cuota de tu organización para los productos que usa tu implementación. Consulta Cuotas y límites para obtener más información.

Otorga permisos específicos para la configuración

Para implementar recursos Google Cloud especificados en la configuración de Terraform, la cuenta de servicio que usas para llamar a Infra Manager necesita los permisos requeridos que son específicos de los recursos que implementas.

Estos permisos se suman a los que se necesitan para usar el servicio de Infra Manager.

Para obtener detalles sobre cómo otorgar permisos para los recursos de Google Cloud y asegurarte de tener acceso a los proyectos necesarios, consulta Configura la cuenta de servicio.

Conecta tu repositorio y host de Git privados a Cloud Build

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

Crea una implementación con una configuración de Terraform

Puedes usar Infra Manager para implementar una configuración de Terraform de varias maneras:

  • 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 y, luego, implementar las configuraciones de Terraform. Puedes usar Infra Manager desde la consola de Google Cloud para realizar implementaciones desde buckets de Cloud Storage y repositorios de Git.
  • Usa Infra Manager en Google Cloud CLI para implementar configuraciones de Terraform desde las siguientes ubicaciones:
    • Depósitos 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 con el flujo de trabajo que elegiste para obtener más información sobre cómo crear una implementación.

Console

En esta sección, se describe la implementación de una configuración de Terraform con Infra Manager en la consola de Google Cloud .

  1. En la consola de Google Cloud , ve a la página Infra Manager.

    Ir a Infra Manager

  2. Haz clic en Crear para crear una implementación nueva.
  3. En la página Detalles de la implementación, establece los parámetros iniciales de tu implementación.

    Reemplaza lo siguiente:

    • ID de la implementación: En el campo ID de la implementación, ingresa un nombre descriptivo para tu implementación. Consulta la documentación de Nombre de la implementación para obtener más detalles sobre las restricciones de nombres.
    • Región: Elige una región compatible en el menú desplegable.
    • Versión de Terraform: Elige una versión compatible de Terraform en el menú desplegable. La lista de versiones de Terraform disponibles se propaga automáticamente según la región que seleccionaste.
    • Cuenta de servicio: Selecciona una cuenta de servicio existente o crea una nueva. Infra Manager valida los permisos automáticamente según la infraestructura que se describe en tu configuración de Terraform. Consulta Cómo configurar la cuenta de servicio para obtener más información sobre cómo trabajar con cuentas de servicio y Infra Manager.
    • Fuente de la configuración de Terraform: Haz clic en el botón de activación para seleccionar Git o Cloud Storage como fuente de la configuración de Terraform que deseas implementar.
      • Para Git, reemplaza 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 conectar tu host y tu repositorio a Cloud Build.
        • Opcional: Directorio de Git: Es el directorio dentro del repositorio de Git que tiene la configuración de Terraform.
        • Opcional: Referencia de Git: Es la referencia de Git de la configuración. Si no especificas una referencia, se usa la rama configurada de forma predeterminada del repositorio de Git.
      • En Cloud Storage bucket, reemplaza lo siguiente:
        • Fuente: Es el nombre del bucket de almacenamiento en el que se almacena la configuración.

    Haz clic en Continuar.

  4. En la página Detalles de Terraform, usa los campos Clave y Valor para completar la lista de valores de entrada en tu configuración de Terraform.

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

  5. En la página Detalles avanzados, establece parámetros opcionales para tu implementación.

    Reemplaza lo siguiente:

    • 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 de anotaciones.
    • Grupo de trabajadores: Es el recurso del 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}.
    • Bucket de Cloud Storage para artefactos: Es la 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 implementación para iniciar la implementación de tu configuración de Terraform. En la página Deployments, se agregará tu implementación a la lista junto con su Estado.
  7. Para obtener más detalles sobre tu implementación, selecciónala para navegar a la página Detalles de la implementación.
  8. ¡Listo! Implementaste tu configuración de Terraform con Infra Manager.

gcloud CLI

En esta sección, se describe la implementación de una configuración de Terraform que se almacena en un bucket de Cloud Storage. Un bucket de almacenamiento te permite controlar el acceso a la configuración.

  1. Asegúrate de que la configuración de Terraform esté en un bucket de Cloud Storage. Consulta Cómo subir una configuración a un bucket de almacenamiento para obtener más detalles.
  2. Si el bucket 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 bucket. Consulta Configura la cuenta de servicio para obtener más detalles.

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

  3. Implementa 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
            
Reemplaza lo siguiente:
  • PROJECT_ID: Es el ID del proyecto en el que se ejecuta Infra Manager.
  • LOCATION: Es la ubicación en la que se ejecuta Infra Manager. Consulta las ubicaciones de Infra Manager para obtener la lista de ubicaciones válidas.
  • DEPLOYMENT_ID: Es el identificador de implementación que especificas. Consulta Nombre de la implementación para obtener detalles sobre las restricciones del identificador de implementación.
  • SERVICE_ACCOUNT_PROJECT_ID es el ID del proyecto de la cuenta de servicio. Es común que este sea el mismo proyecto en el que se ejecuta Infra Manager.
  • SERVICE_ACCOUNT: Es el nombre de la cuenta de servicio que usas para llamar a Infra Manager.
  • BUCKET_NAME: Es el nombre del bucket de almacenamiento en el que se almacena la configuración.
  • OBJECT_NAME: Es 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 usas el control de versiones de objetos, también puedes especificar el número de generación del objeto. Para obtener más detalles, consulta Usa objetos con versiones.

    Si el bucket 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 cuotas para los recursos en tus archivos de configuración de Terraform está habilitada o se aplica cuando creas una implementación. Entre los valores posibles, se incluyen los siguientes:
    • ENABLED: Habilita la validación de la cuota de procesamiento para los recursos en los archivos de configuración de Terraform. Proporciona visibilidad de los recursos con cuotas insuficientes.
    • ENFORCED: Aplica la validación de cuotas para que tu implementación falle si no hay cuota suficiente 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 Google Cloud limitados. Para obtener más información, consulta Cuotas y límites.

  • INPUT_1_NAME y INPUT_2_NAME: Cualquier valor de entrada en 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: Es la versión de Terraform que Infra Manager usará para crear la implementación. Consulta la versión de Terraform compatible para obtener la lista de versiones compatibles. Si quitas esta marca opcional, se usará la versión más reciente 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 usa Google Cloud para la implementación. Se establece en SERVICE_MAINTAINED para usar el proveedor de Terraform que mantiene Infra Manager. Omite este campo para usar el proveedor de Terraform que mantiene HashiCorp. Para obtener más información, consulta Usa el proveedor de Terraform para Google Cloud.

gcloud CLI

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

  1. Asegúrate de haber instalado Git.
  2. Si tu configuración de Terraform se almacena en un repositorio de Git privado, asegúrate de que tu host y repositorio de Git estén conectados a Cloud Build.
  3. Implementa 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
            
Reemplaza lo siguiente:
  • PROJECT_ID: Es el ID del proyecto en el que se ejecuta Infra Manager.
  • LOCATION: Es la ubicación en la que se ejecuta Infra Manager. Consulta las ubicaciones de Infra Manager para obtener la lista de ubicaciones válidas.
  • DEPLOYMENT_ID: Es el identificador de implementación que especificas. Consulta Nombre de la implementación para obtener detalles sobre las restricciones del identificador de implementación.
  • SERVICE_ACCOUNT_PROJECT_ID es el ID del proyecto de la cuenta de servicio. Es común que este sea el mismo proyecto en el que se ejecuta Infra Manager.
  • SERVICE_ACCOUNT: Es el nombre de la cuenta de servicio que usas para llamar a Infra Manager.
  • GIT_REPO: Es el repositorio de Git.
  • DIRECTORY: Es 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 usa la rama configurada de forma predeterminada del repositorio de Git.
  • Opcional: QUOTA_VALIDATION: Es el valor que determina si la validación de cuotas para los recursos en tus archivos de configuración de Terraform está habilitada o se aplica cuando creas una implementación. Entre los valores posibles, se incluyen los siguientes:
    • ENABLED: Habilita la validación de la cuota de procesamiento para los recursos en los archivos de configuración de Terraform. Proporciona visibilidad de los recursos con cuotas insuficientes.
    • ENFORCED: Aplica la validación de cuotas para que tu implementación falle si no hay cuota suficiente 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 Google Cloud limitados. Para obtener más información, consulta Cuotas y límites.

  • INPUT_1_NAME y INPUT_2_NAME: Cualquier valor de entrada en 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: Es la versión de Terraform que Infra Manager usará para crear la implementación. Consulta la versión de Terraform compatible para obtener la lista de versiones compatibles. Si quitas esta marca opcional, se usará la versión más reciente 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 usa Google Cloud para la implementación. Se establece en SERVICE_MAINTAINED para usar el proveedor de Terraform que mantiene Infra Manager. Omite este campo para usar el proveedor de Terraform que mantiene HashiCorp. Para obtener más información, consulta Usa el proveedor de Terraform para Google Cloud.

gcloud CLI

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 Administra archivos con Cloud Shell.
  2. Implementa 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
            
Reemplaza lo siguiente:
  • PROJECT_ID: Es el ID del proyecto en el que se ejecuta Infra Manager.
  • LOCATION: Es la ubicación en la que se ejecuta Infra Manager. Consulta las ubicaciones de Infra Manager para obtener la lista de ubicaciones válidas.
  • DEPLOYMENT_ID: Es el identificador de implementación que especificas. Consulta Nombre de la implementación para obtener detalles sobre las restricciones del identificador de implementación.
  • SERVICE_ACCOUNT_PROJECT_ID es el ID del proyecto de la cuenta de servicio. Es común que este sea el mismo proyecto en el que se ejecuta Infra Manager.
  • SERVICE_ACCOUNT: Es el nombre de la cuenta de servicio que usas para llamar a Infra Manager.
  • LOCAL_DIRECTORY: Es el directorio local que almacena la configuración de Terraform. Si usas Cloud Shell, este es el directorio en el que se almacena la configuración.
  • Opcional: QUOTA_VALIDATION: Es el valor que determina si la validación de cuotas para los recursos en tus archivos de configuración de Terraform está habilitada o se aplica cuando creas una implementación. Entre los valores posibles, se incluyen los siguientes:
    • ENABLED: Habilita la validación de la cuota de procesamiento para los recursos en los archivos de configuración de Terraform. Proporciona visibilidad de los recursos con cuotas insuficientes.
    • ENFORCED: Aplica la validación de cuotas para que tu implementación falle si no hay cuota suficiente 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 Google Cloud limitados. Para obtener más información, consulta Cuotas y límites.

  • INPUT_1_NAME y INPUT_2_NAME: Cualquier valor de entrada en 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: Es la versión de Terraform que Infra Manager usará para crear la implementación. Consulta la versión de Terraform compatible para obtener la lista de versiones compatibles. Si quitas esta marca opcional, se usará la versión más reciente 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 usa Google Cloud para la implementación. Se establece en SERVICE_MAINTAINED para usar el proveedor de Terraform que mantiene Infra Manager. Omite este campo para usar el proveedor de Terraform que mantiene HashiCorp. Para obtener más información, consulta Usa el proveedor de Terraform para Google Cloud.

¿Qué sigue?