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 que se definen 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 implementar en varios proyectos y varias ubicaciones. La cuenta de servicio necesita permisos para los recursos y los proyectos en los que se implementan los recursos. Consulta Control de acceso con IAM para obtener la lista de permisos.

En esta página, se supone que estás familiarizado con Terraform. Para obtener más detalles, consulta Terraform e 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 detalles, 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. En particular, asegúrate de que la configuración no contenga datos sensibles.
  5. Si quieres 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 prevista. Es posible que se produzcan errores de implementación si la infraestructura prevista 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.

  7. Infra Manager usa Cloud Build para crear, actualizar o obtener una vista previa de una implementación. La creación y actualización de implementaciones tienen un tiempo de espera de dos horas, mientras que la vista previa de una implementación tiene un tiempo de espera de una hora.

    Si administras varios recursos dentro de una sola configuración que supera este límite, debes dividir la configuración en varias implementaciones.

Otorga permisos específicos para la configuración

Para implementar los recursos de Google Cloud que se especifican en la configuración de Terraform, la cuenta de servicio que usas para llamar al Administrador de infraestructura necesita los permisos requeridos que son específicos de los recursos que estás implementando.

Estos permisos se suman a los necesarios 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:

  • Recomendado: 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 opciones de configuración de Terraform. Puedes usar Infra Manager desde la consola de Google Cloud para implementar desde buckets de Cloud Storage y repositorios de Git.
  • Usa Infra Manager en Google Cloud CLI para implementar configuraciones de Terraform desde:
    • Buckets de Cloud Storage
    • Repositorios de Git
    • Directorios locales

Consulta Módulos y planos de Terraform para Google Cloud para obtener 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 cómo implementar 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 al Administrador de infraestructura

  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 implementación: En el campo ID de implementación, ingresa un nombre descriptivo para tu implementación. Consulta la documentación sobre el nombre de la implementación para obtener más detalles sobre las restricciones de nombres.
    • Región: Elige una región admitida en el menú desplegable.
    • Versión de Terraform: Elige una versión de Terraform compatible en el menú desplegable. La lista de versiones de Terraform disponibles se propaga automáticamente según la región que seleccionaste. De forma predeterminada, se selecciona la versión más reciente compatible con el nivel gratuito (1.5.7). Si seleccionas una versión pagada (como 1.16.5), se generarán cargos por implementación y administración. Para obtener más información, consulta Versiones de Terraform compatibles.
    • Cuenta de servicio: Selecciona una cuenta de servicio existente o crea una nueva. Infra Manager valida automáticamente los permisos según la infraestructura descrita en tu configuración de Terraform. Consulta Configura la cuenta de servicio para obtener más información sobre cómo trabajar con cuentas de servicio y el Administrador de infraestructura.
    • 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 repositorio de Git público o privado.
          Si proporcionas un repositorio de Git privado, asegúrate de haber conectado tu host y 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 Bucket de Cloud Storage, 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 usarlas para adjuntar información arbitraria asociada con el 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 de artefactos: Es la ubicación de los registros y artefactos de Cloud Build en Cloud Storage. El formato de la ruta de acceso 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 Implementaciones, se agregará tu implementación a la lista junto con su Estado.
  7. Para obtener más detalles sobre tu implementación, selecciónala y navega 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 cómo implementar 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 Sube una configuración a un bucket de almacenamiento para obtener más detalles.
  2. Si el bucket de almacenamiento se encuentra en un proyecto diferente del proyecto en el que ejecutas el Administrador de infraestructura, debes asegurarte de que la cuenta de servicio del Administrador de infraestructura 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 Ubicaciones de Infra Manager para obtener la lista de ubicaciones válidas.
  • DEPLOYMENT_ID: Es el identificador de la 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 al Administrador de infraestructura.
  • BUCKET_NAME: Es el nombre del bucket de almacenamiento en el que se guarda 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 control de versiones.

    Si el bucket de almacenamiento es la ruta de acceso 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 cuotas 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 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 de 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á de forma predeterminada la versión más reciente compatible del nivel gratuito de Terraform (1.5.7). Para usar una versión pagada (como 1.16.5), debes especificar la versión de forma explícita.
  • 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 para Google Cloud usa la implementación. Establécelo 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 que se almacena 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 Ubicaciones de Infra Manager para obtener la lista de ubicaciones válidas.
  • DEPLOYMENT_ID: Es el identificador de la 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 al Administrador de infraestructura.
  • 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 cuotas 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 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 de 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á de forma predeterminada la versión más reciente compatible del nivel gratuito de Terraform (1.5.7). Para usar una versión pagada (como 1.16.5), debes especificar la versión de forma explícita.
  • 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 para Google Cloud usa la implementación. Establécelo 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 que se almacena 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 Ubicaciones de Infra Manager para obtener la lista de ubicaciones válidas.
  • DEPLOYMENT_ID: Es el identificador de la 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 al Administrador de infraestructura.
  • LOCAL_DIRECTORY: Es el directorio local que almacena la configuración de Terraform. Si usas Cloud Shell, este es el directorio en Cloud Shell 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 cuotas 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 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 de 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á de forma predeterminada la versión más reciente compatible del nivel gratuito de Terraform (1.5.7). Para usar una versión pagada (como 1.16.5), debes especificar la versión de forma explícita.
  • 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 para Google Cloud usa la implementación. Establécelo 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?