Uso de un plan de Terraform para implementar una instancia de Google Cloud Platform Ubuntu y conectarla a Azure Arc
Este artículo proporciona una guía para usar el plan de Terraform proporcionado para implementar una instancia de Google Cloud Platform (GCP) y conectarla como un recurso de servidor habilitado para Azure Arc.
Prerrequisitos
Clone el repositorio Jumpstart de Azure Arc.
git clone https://github.com/microsoft/azure_arc.git
Instale o actualice la CLI de Azure a la versión 2.7 y superior. Use el siguiente comando para comprobar la versión instalada actual.
az --version
Genere una clave SSH (o use una existente).
Cree una entidad de servicio de Azure.
Para conectar la máquina virtual de GCP a Azure Arc se necesita una entidad de servicio de Azure con el rol Colaborador. Para su creación, inicie sesión en la cuenta de Azure y ejecute el siguiente comando. También puede ejecutar este comando en Azure Cloud Shell.
az login az account set -s <Your Subscription ID> az ad sp create-for-rbac -n "<Unique SP Name>" --role contributor --scopes "/subscriptions/<Your Subscription ID>"
Por ejemplo:
az ad sp create-for-rbac -n "http://AzureArcGCP" --role contributor --scopes "/subscriptions/00000000-0000-0000-0000-000000000000"
El resultado debe ser similar al siguiente:
{ "appId": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX", "displayName": "http://AzureArcGCP", "password": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX", "tenant": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX" }
Nota:
Se recomienda encarecidamente que el ámbito de la entidad de servicio se establezca en un grupo de recursos y una suscripción de Azure específicos.
Creación de un nuevo proyecto de GCP
Vaya a la consola API de Google e inicie sesión con la cuenta de Google. Cuando haya iniciado sesión, cree un nuevo proyecto denominado
Azure Arc demo
. Después de crearlo, asegúrese de copiar el identificador del proyecto, ya que suele diferir del nombre del proyecto.Una vez que se crea el nuevo proyecto y se selecciona en la lista desplegable de la parte superior de la página, debe habilitar el acceso de Compute Engine API al proyecto. Haga clic en + Habilitar API y servicios y busque compute engine. Luego seleccione Habilitar para habilitar el acceso de la API.
Luego configure una clave de cuenta de servicio para que Terraform la use para crear y administrar recursos en el proyecto de GCP. Vaya a la página Crear clave de cuenta de servicio. Seleccione Nueva cuenta de servicio en la lista desplegable, asígnele un nombre, seleccione el proyecto, elija Propietario en Rol, seleccione JSON como el tipo de clave y, finalmente, seleccione Crear. Con esto se descarga un archivo JSON con todas las credenciales necesarias para que Terraform administre los recursos. Copie el archivo JSON descargado en el directorio
azure_arc_servers_jumpstart/gcp/ubuntu/terraform
.Por último, asegúrese de que las claves SSH están disponibles en
~/.ssh
y tienen el nombreid_rsa.pub
eid_rsa
. Si ha seguido la guía dessh-keygen
anterior para crear la clave, ya debería estar configurada correctamente. Si no, puede que tenga que modificarmain.tf
para usar una clave con otra ruta de acceso.
Implementación
Antes de ejecutar el plan de Terraform, debe exportar las variables de entorno que se van a usar en él. Estas variables se basan en la entidad de servicio de Azure que acaba de crear, la suscripción de Azure y el inquilino, y el nombre del proyecto de GCP.
Recupere el identificador de la suscripción de Azure y el identificador del inquilino mediante el comando
az account list
.El plan de Terraform crea recursos tanto en Microsoft Azure como en Google Cloud Platform. Luego ejecuta un script en una máquina virtual de GCP para instalar el agente de Azure Arc y todos los artefactos necesarios. Este script requiere determinada información sobre los entornos de GCP y Azure. Edite
scripts/vars.sh
y actualice cada una de las variables con los valores adecuados.TF_VAR_subscription_id
= identificador de la suscripción de AzureTF_VAR_client_id
= identificador de aplicación de la entidad de servicio de AzureTF_VAR_client_secret
= contraseña de la entidad de servicio de AzureTF_VAR_tenant_id
= identificador del inquilino de AzureTF_VAR_gcp_project_id
= id. del proyecto de GCPTF_VAR_gcp_credentials_filename
= archivo JSON de credenciales de GCP
En la CLI, vaya al directorio
azure_arc_servers_jumpstart/gcp/ubuntu/terraform
del repositorio clonado.Exporte las variables de entorno que ha editado mediante la ejecución de
scripts/vars.sh
con el comando source, como se muestra a continuación. Terraform requiere que se establezcan para que el plan se ejecute correctamente. Tenga en cuenta que este script también se ejecuta automáticamente de forma remota en la máquina virtual de GCP como parte de la implementación de Terraform.source ./scripts/vars.sh
Ejecute el comando
terraform init
, que descargará el proveedor de AzureRM de Terraform.Luego ejecute el comando
terraform apply --auto-approve
y espere a que finalice el plan. Al finalizar, tendrá una máquina virtual Ubuntu de GCP implementada y conectada como un nuevo servidor habilitado para Azure Arc dentro de un nuevo grupo de recursos.Abra Azure Portal y vaya al grupo de recursos
arc-gcp-demo
. La máquina virtual creada en GCP es visible como un recurso.
Implementación semiautomatizada (opcional)
Como puede que haya observado, el último paso de la ejecución es registrar la máquina virtual como un nuevo recurso de servidor habilitado para Azure Arc.
Si quiere mostrar o controlar el proceso de registro real, haga lo siguiente:
En la plantilla de script
install_arc_agent.sh.tmpl
, comente la secciónrun connect command
y guarde el archivo.Para obtener la dirección IP pública de la máquina virtual de GCP, ejecute
terraform output
.Aplique SSH a la máquina virtual mediante
ssh arcadmin@xx.xx.xx.xx
, dondexx.xx.xx.xx
es la dirección IP del host.Exporte todas las variables de entorno de
vars.sh
.Ejecute el siguiente comando:
azcmagent connect --service-principal-id $TF_VAR_client_id --service-principal-secret $TF_VAR_client_secret --resource-group "Azure Arc gcp-demo" --tenant-id $TF_VAR_tenant_id --location "westus2" --subscription-id $TF_VAR_subscription_id
Cuando termina, la máquina virtual se registra en Azure Arc y está visible en el grupo de recursos mediante Azure Portal.
Eliminar la implementación
Para eliminar todos los recursos creados como parte de esta demo, use el comando terraform destroy --auto-approve
, como se muestra a continuación.
También puede eliminar la máquina virtual de GCP directamente desde la consola de GCP.
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de