En esta página, se describe cómo usar Infrastructure Manager para aprovisionar un conjunto de Google Cloud recursos 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 realizar implementaciones en varios proyectos y 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 asume que estás familiarizado con Terraform. Para obtener más información, consulta Terraform y Infra Manager.
Antes de comenzar
- Habilita Infra Manager.
- Asegúrate de tener los permisos de IAM necesarios para crear implementaciones:
roles/config.admin. - Asegúrate de tener una cuenta de servicio con los permisos necesarios. Para obtener más información, consulta Configura la cuenta de servicio.
- 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.
- 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.
Confirma la cuota de tu organización para los productos asociados con la infraestructura deseada. Es posible que enfrentes errores de implementación si la infraestructura deseada supera la cuota de tu organización para los productos que usa tu implementación. Para obtener más información, consulta Cuotas y límites.
Infra Manager usa Cloud Build para crear, actualizar o obtener una vista previa de una implementación. La creación y la 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 Google Cloud recursos que se especifican 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 permisos necesarios para usar el servicio de Infra Manager.
Para obtener detalles sobre cómo otorgar permisos para los Google Cloud recursos 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.
GitHub
GitHub Enterprise
GitLab
GitLab Enterprise
Developer Connect
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 para seleccionar una fuente, ver los detalles de la implementación, obtener una vista previa y, luego, implementar las configuraciones de Terraform. Google Cloud Puedes usar Infra Manager desde Google Cloud la consola 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 lo siguiente:
- Buckets de Cloud Storage
- Repositorios de Git
- Directorios locales
Consulta Módulos y planos de Terraform para Google Cloud obtener ejemplos y plantillas de configuraciones de Terraform que puedes usar con Infra Manager.
Selecciona la pestaña con el flujo de trabajo elegido 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 Google Cloud la consola.
- En la Google Cloud consola, ve a la página Infra Manager.
- Haz clic en Crear para crear una implementación nueva.
En la página Detalles de la implementación, establece los parámetros iniciales de la implementación.
Reemplaza lo siguiente:
- ID de implementación: En el campo ID de implementación, ingresa un nombre descriptivo para la 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 admitida 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 en función de la infraestructura que se describe en la 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 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 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.
- Repositorio de Git: Proporciona una URL, una rama o una etiqueta de repositorio de Git público o privado.
- Para bucket de Cloud Storage, reemplaza lo siguiente:
- Fuente: Es el nombre del bucket de almacenamiento en el que se almacena la configuración.
- Para Git, reemplaza lo siguiente:
En la página Detalles de Terraform, usa los campos Clave y Valor para propagar la lista de valores de entrada en la 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 los valores de entrada se definen de forma predeterminada en la configuración de Terraform, estos valores son opcionales. Haz clic en Continuar.
En la página Detalles avanzados, establece parámetros opcionales para la 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}.
- Haz clic en Crear implementación para iniciar la implementación de la configuración de Terraform. En la página Implementaciones, tu implementación se agregará a la lista junto con su Estado. Para obtener más detalles sobre la implementación, selecciónala para navegar a la página Detalles de la implementación.
- ¡Listo! Implementaste tu configuración de Terraform con Infra Manager.
Haz clic en Continuar.
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.
- 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.
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.
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
- 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 implementación que especificas. Consulta Nombre de la implementación para obtener detalles sobre las restricciones en el 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 versión.
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 cuota para los recursos en los archivos de configuración de Terraform está habilitada o aplicada cuando creas una implementación. Entre los valores posibles, se incluyen los siguientes:
ENABLED: Habilita la validación de cuota de procesamiento para los recursos en los archivos de configuración de Terraform. Proporciona visibilidad sobre los recursos con cuotas insuficientes.ENFORCED: Aplica la validación de cuota para que la implementación falle si no hay suficiente cuota disponible para la infraestructura definida en el archivo de configuración de Terraform.
Si no se define QUOTA_VALIDATION, se inhabilitará la validación de cuota en los archivos de configuración de Terraform. Este es el valor predeterminado. La validación de cuota se aplica en 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 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 admitida para obtener la lista de versiones compatibles. Si quitas esta marca opcional, se usará la versión más reciente admitida 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_MAINTAINEDpara 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.
- Asegúrate de haber instalado Git.
- 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. 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
- 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 implementación que especificas. Consulta Nombre de la implementación para obtener detalles sobre las restricciones en el 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: Es 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 cuota para los recursos en los archivos de configuración de Terraform está habilitada o aplicada cuando creas una implementación. Entre los valores posibles, se incluyen los siguientes:
ENABLED: Habilita la validación de cuota de procesamiento para los recursos en los archivos de configuración de Terraform. Proporciona visibilidad sobre los recursos con cuotas insuficientes.ENFORCED: Aplica la validación de cuota para que la implementación falle si no hay suficiente cuota disponible para la infraestructura definida en el archivo de configuración de Terraform.
Si no se define QUOTA_VALIDATION, se inhabilitará la validación de cuota en los archivos de configuración de Terraform. Este es el valor predeterminado. La validación de cuota se aplica en 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 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 admitida para obtener la lista de versiones compatibles. Si quitas esta marca opcional, se usará la versión más reciente admitida 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_MAINTAINEDpara 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.
- Si usas Cloud Shell, debes subir la configuración a Cloud Shell. Para obtener más información, consulta Administra archivos con Cloud Shell.
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
- 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 implementación que especificas. Consulta Nombre de la implementación para obtener detalles sobre las restricciones en el 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 Cloud Shell en el que se almacena la configuración.
- Opcional: QUOTA_VALIDATION: Es el valor que determina si la validación de cuota para los recursos en los archivos de configuración de Terraform está habilitada o aplicada cuando creas una implementación. Entre los valores posibles, se incluyen los siguientes:
ENABLED: Habilita la validación de cuota de procesamiento para los recursos en los archivos de configuración de Terraform. Proporciona visibilidad sobre los recursos con cuotas insuficientes.ENFORCED: Aplica la validación de cuota para que la implementación falle si no hay suficiente cuota disponible para la infraestructura definida en el archivo de configuración de Terraform.
Si no se define QUOTA_VALIDATION, se inhabilitará la validación de cuota en los archivos de configuración de Terraform. Este es el valor predeterminado. La validación de cuota se aplica en 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 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 admitida para obtener la lista de versiones compatibles. Si quitas esta marca opcional, se usará la versión más reciente admitida 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_MAINTAINEDpara 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?
- Obtén más información sobre Terraform con Google Cloud.
- Automatiza las implementaciones.
- Actualiza una implementación.
- Consulta el estado de una implementación.
- Consulta los recursos implementados.
- Borra una implementación.