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 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 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
- 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 detalles, 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. Específicamente, 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 que deseas. 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 la implementación. Consulta Cuotas y límites para obtener más información.
Otorga permisos específicos de 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 a Infra Manager necesita los permisos necesarios específicos de los recursos que implementas.
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 Cómo configurar la cuenta de servicio.
Conecta tu repositorio de Git privado y alójalo en 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
Crea una implementación con una configuración de Terraform
Puedes usar Infra Manager para implementar una configuración de Terraform de varias maneras:
- Opción recomendada: Usa Infra Manager en la consola de Google Cloud para seleccionar una fuente, ver detalles de la implementación, obtener una vista previa y, luego, implementar configuraciones de Terraform. Puedes usar Infra Manager desde la consola de Google Cloud para implementar desde buckets de Cloud Storage, repositorios de Git y directorios locales.
- Usa Infra Manager en Google Cloud CLI para implementar configuraciones de Terraform desde los siguientes lugares:
- Buckets de Cloud Storage
- Repositorios de Git
- Directorios locales
Consulta los módulos y los esquemas 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 cómo implementar una configuración de Terraform con Infra Manager en la consola de Google Cloud .
- En la consola de Google Cloud , 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 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 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 en función de 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 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ública o privada.
Si proporcionas un repositorio de Git privado, asegúrate de conectar 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 usará la rama predeterminada configurada del repositorio de Git.
- Repositorio de Git: Proporciona una URL, una rama o una etiqueta de repositorio de Git pública o privada.
- En 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 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 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 los 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 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 tu configuración de Terraform. En la página Implementaciones, se agregará tu implementación a la lista junto con su Estado. Para obtener más detalles sobre tu 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.
Haga 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 Cómo subir 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 \ --annotation="ANNOTATION_KEY=ANNOTATION_VALUE"
- 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 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 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 Cómo usar 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 cuotas para los recursos de tus 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 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 la 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 recursos limitados de 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 versión compatible de Terraform 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 etiquetas, consulta Anotaciones y etiquetas.
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 tener instalado Git.
- 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. 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 \ --annotation="ANNOTATION_KEY=ANNOTATION_VALUE"
- 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 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: 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 usará la rama configurada predeterminada del repositorio de Git.
- Opcional: QUOTA_VALIDATION: Es el valor que determina si la validación de cuotas para los recursos de tus 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 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 la 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 recursos limitados de 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 versión compatible de Terraform 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 etiquetas, consulta Anotaciones y etiquetas.
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 \ --annotation="ANNOTATION_KEY=ANNOTATION_VALUE"
- 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 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 de tus 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 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 la 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 recursos limitados de 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 versión compatible de Terraform 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 etiquetas, consulta Anotaciones y etiquetas.
¿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.
- Ver los recursos implementados.
- Borra una implementación.