Implementa una VPC con Terraform
Aprende a usar Infrastructure Manager para implementar una nube privada virtual (VPC).
En esta guía de inicio rápido, se usa una configuración de Terraform que se almacena en un repositorio público de GitHub. La configuración define la VPC que se aprovisionará.
Antes de comenzar
-
Accede a tu Cuenta de Google.
Si todavía no tienes una cuenta, regístrate para obtener una nueva.
-
Instala Google Cloud CLI.
-
Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init -
Crea o selecciona un Google Cloud proyecto.
Roles necesarios para seleccionar o crear un proyecto
- Selecciona un proyecto: Seleccionar un proyecto no requiere un rol de IAM específico. Puedes seleccionar cualquier proyecto en el que se te haya otorgado un rol.
-
Crea un proyecto: Para crear un proyecto, necesitas el rol de Creador de proyectos (
roles/resourcemanager.projectCreator), que contiene el permisoresourcemanager.projects.create. Obtén más información para otorgar roles.
-
Crea un proyecto de Google Cloud :
gcloud projects create PROJECT_ID
Reemplaza
PROJECT_IDpor un nombre para el proyecto de Google Cloud que estás creando. -
Selecciona el proyecto Google Cloud que creaste:
gcloud config set project PROJECT_ID
Reemplaza
PROJECT_IDpor el nombre de tu proyecto de Google Cloud .
-
Verifica que la facturación esté habilitada para tu proyecto de Google Cloud .
Habilita la API de Infrastructure Manager si aún no está habilitada:
Roles necesarios para habilitar las APIs
Para habilitar APIs, necesitas el permiso
serviceusage.services.enable. Si creaste el proyecto, es probable que ya tengas este permiso a través del rol de propietario (roles/owner). De lo contrario, puedes obtener este permiso a través del rol de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin). Obtén más información para otorgar roles.gcloud services enable config.googleapis.com
-
Configura la autenticación:
-
Asegúrate de tener el rol de IAM de creador de cuentas de servicio (
roles/iam.serviceAccountCreator) y el rol de administrador de IAM del proyecto (roles/resourcemanager.projectIamAdmin). Obtén información para otorgar roles. -
Crea la cuenta de servicio:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Reemplaza
SERVICE_ACCOUNT_NAMEpor un nombre para la cuenta de servicio. -
Otorga el rol de IAM
roles/config.agenta la cuenta de servicio.gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=roles/config.agent
Reemplaza lo siguiente:
SERVICE_ACCOUNT_NAME: el nombre de la cuenta de servicioPROJECT_ID: el ID del proyecto en el que creaste la cuenta de servicio
-
Asegúrate de tener el rol de IAM de creador de cuentas de servicio (
-
Instala Google Cloud CLI.
-
Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init -
Crea o selecciona un Google Cloud proyecto.
Roles necesarios para seleccionar o crear un proyecto
- Selecciona un proyecto: Seleccionar un proyecto no requiere un rol de IAM específico. Puedes seleccionar cualquier proyecto en el que se te haya otorgado un rol.
-
Crea un proyecto: Para crear un proyecto, necesitas el rol de Creador de proyectos (
roles/resourcemanager.projectCreator), que contiene el permisoresourcemanager.projects.create. Obtén más información para otorgar roles.
-
Crea un proyecto de Google Cloud :
gcloud projects create PROJECT_ID
Reemplaza
PROJECT_IDpor un nombre para el proyecto de Google Cloud que estás creando. -
Selecciona el proyecto Google Cloud que creaste:
gcloud config set project PROJECT_ID
Reemplaza
PROJECT_IDpor el nombre de tu proyecto de Google Cloud .
-
Verifica que la facturación esté habilitada para tu proyecto de Google Cloud .
Habilita la API de Infrastructure Manager si aún no está habilitada:
Roles necesarios para habilitar las APIs
Para habilitar APIs, necesitas el permiso
serviceusage.services.enable. Si creaste el proyecto, es probable que ya tengas este permiso a través del rol de propietario (roles/owner). De lo contrario, puedes obtener este permiso a través del rol de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin). Obtén más información para otorgar roles.gcloud services enable config.googleapis.com
-
Configura la autenticación:
-
Asegúrate de tener el rol de IAM de creador de cuentas de servicio (
roles/iam.serviceAccountCreator) y el rol de administrador de IAM del proyecto (roles/resourcemanager.projectIamAdmin). Obtén información para otorgar roles. -
Crea la cuenta de servicio:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Reemplaza
SERVICE_ACCOUNT_NAMEpor un nombre para la cuenta de servicio. -
Otorga el rol de IAM
roles/config.agenta la cuenta de servicio.gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=roles/config.agent
Reemplaza lo siguiente:
SERVICE_ACCOUNT_NAME: el nombre de la cuenta de servicioPROJECT_ID: el ID del proyecto en el que creaste la cuenta de servicio
-
Asegúrate de tener el rol de IAM de creador de cuentas de servicio (
Otorga permisos para los recursos de la configuración
Otorgaste los permisos necesarios para ejecutar Infra Manager, pero también debes otorgar permisos específicos para los recursos que se describen en la configuración que implementas.
Otorga permisos para la VPC, que es el recurso definido en la configuración de Terraform.
gcloud projects add-iam-policy-binding PROJECT_ID \
--member=serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
--role=roles/compute.networkAdmin
Reemplaza lo siguiente:
- SERVICE_ACCOUNT_NAME: Es el nombre de la cuenta de servicio.
- PROJECT_ID: Es el ID del proyecto.
Obtén una vista previa de la implementación
Antes de crear una implementación, puedes crear una vista previa de la implementación. Puedes usar esta vista previa para verificar los recursos que se planean aprovisionar.
El siguiente comando tiene cuatro valores completados que no tienen un valor predeterminado.
Estos valores son el ID del proyecto, el nombre de la cuenta de servicio, la ubicación us-central1 y el nombre quickstart-vpc de la red que estás creando.
Para crear una vista previa, usa el siguiente comando:
gcloud infra-manager previews create projects/PROJECT_ID/locations/us-central1/previews/quickstart-preview \
--service-account projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
--git-source-repo=https://github.com/terraform-google-modules/terraform-google-network \
--git-source-directory=modules/vpc \
--git-source-ref=main \
--input-values=project_id=PROJECT_ID,network_name=quickstart-vpc
Después de crear una vista previa, puedes revisar sus resultados. En esta guía de inicio rápido, se omite este paso, pero puedes consultar Cómo exportar y ver los resultados de la vista previa si deseas obtener más detalles.
Crear una implementación
Usa Infra Manager para crear una implementación. Esto significa que Infra Manager aprovisiona los recursos definidos en la configuración de Terraform.
La configuración de esta guía de inicio rápido tiene cuatro valores que no tienen un valor predeterminado. El siguiente comando agrega estos valores: tu ID del proyecto, el nombre de la cuenta de servicio, la ubicación us-central1 y el nombre quickstart-vpc para la red que estás creando.
gcloud infra-manager deployments apply projects/PROJECT_ID/locations/us-central1/deployments/quickstart-deployment \
--service-account=projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
--git-source-repo=https://github.com/terraform-google-modules/terraform-google-network \
--git-source-directory=modules/vpc \
--git-source-ref=main \
--input-values=project_id=PROJECT_ID,network_name=quickstart-vpc
Cuando finalice la implementación, verás lo siguiente:
Creating the deployment...done
Ahora, la VPC se creó y configuró como se describe en la configuración.
Visualiza los resultados de la compilación en Cloud Build
Para ver el trabajo de Cloud Build que usó Infra Manager para crear la implementación, abre la página Historial de compilación en la consola de Google Cloud :
Abrir la página Historial de compilación
Consulta el estado de la implementación
Ahora que se completó la implementación, puedes ver su descripción para revisar la información sobre ella, incluido el estado.
Consulta la descripción de la implementación:
gcloud infra-manager deployments describe projects/PROJECT_ID/locations/us-central1/deployments/quickstart-deployment
El resultado incluye detalles sobre la implementación, como la marca de tiempo de la implementación, el nombre de la revisión más reciente y el estado.
Para el estado, verás ACTIVE.
Consulta los detalles de la VPC aprovisionada
Para ver detalles sobre la VPC aprovisionada, haz lo siguiente:
gcloud infra-manager resources list --revision=projects/PROJECT_ID/locations/us-central1/deployments/quickstart-deployment/revisions/REVISION_ID
Reemplaza REVISION_ID por el ID de la revisión más reciente. Este ID es r-0, a menos que hayas realizado varias implementaciones. Puedes ver el ID de la revisión más reciente en la descripción de la implementación de la sección anterior.
Visualiza la VPC en la consola
Sigue estos pasos para ver la VPC en la consola:
Verás la VPC llamada quickstart-vpc. Esta es la VPC que aprovisionó Infra Manager.
Realiza una limpieza
Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos que usaste en esta página, asegúrate de borrar los recursos que ya no necesites.
Borra la VPC
Borra la VPC y los metadatos sobre la implementación:
gcloud infra-manager deployments delete projects/PROJECT_ID/locations/us-central1/deployments/quickstart-deployment
Opcional: borra el proyecto
Si implementaste la solución en un proyecto Google Cloud nuevo y ya no lo necesitas, sigue estos pasos para borrarlo:
- En la Google Cloud consola, ve a la página Administrar recursos.
- En la lista de proyectos, elige el proyecto que quieres borrar y haz clic en Borrar.
- Cuando se te solicite, escribe el ID del proyecto y, luego, haz clic en Cerrar.
¿Qué sigue?
- Para obtener más información sobre Infra Manager, consulta Cómo funciona Infra Manager.
- Obtén más información sobre Infra Manager y Terraform.
- Actualiza una implementación.
- Automatiza las implementaciones.
- Para obtener un conjunto de configuraciones y módulos listos para usar con Google Cloud, consulta Módulos y planos de Terraform para Google Cloud.