Amazon Web Services Amazon Elastic Compute Cloud örneğini dağıtmak ve Azure Arc'a bağlamak için Terraform planı kullanma

Bu makale, sağlanan Terraform planını kullanarak bir Amazon Web Services (AWS) Amazon Elastic Compute Cloud (EC2) örneği dağıtmak ve bunu Azure Arc özellikli bir sunucu kaynağı olarak bağlamak için rehberlik sağlar.

Önkoşullar

  1. Azure Arc Jumpstart deposunu kopyalayın.

    git clone https://github.com/microsoft/azure_arc.git
    
  2. Azure CLI'yi 2.7 ve üzeri bir sürüme yükleyin veya güncelleştirin. Geçerli yüklü sürümünüzü denetlemek için aşağıdaki komutu kullanın.

    az --version
    
  3. SSH anahtarı oluşturma (veya mevcut SSH anahtarını kullanma)

  4. Ücretsiz AWS hesabı oluşturma

  5. Terraform >'u yükleme = 0,12

  6. Azure hizmet sorumlusu oluşturma.

    AWS sanal makinesini Azure Arc'a bağlamak için Katkıda Bulunan rolüyle atanmış bir Azure hizmet sorumlusu gereklidir. Oluşturmak için Azure hesabınızda oturum açın ve aşağıdaki komutu çalıştırın. Bu komutu Azure Cloud Shell'de de çalıştırabilirsiniz.

    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>"
    

    Örneğin:

    az ad sp create-for-rbac -n "http://AzureArcAWS" --role contributor --scopes "/subscriptions/00000000-0000-0000-0000-000000000000"
    

    Çıkış şu şekilde görünmelidir:

    {
      "appId": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX",
      "displayName": "http://AzureArcAWS",
      "password": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX",
      "tenant": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX"
    }
    

    Dekont

    Hizmet sorumlusunu belirli bir Azure aboneliği ve kaynak grubuyla kapsamanızı kesinlikle öneririz.

AWS kimliği oluşturma

Terraform'un AWS'de kaynak oluşturabilmesi için uygun izinlere sahip yeni bir AWS IAM rolü oluşturmamız ve Terraform'u bunu kullanacak şekilde yapılandırmamız gerekir.

  1. AWS yönetim konsolunda oturum açma

  2. Oturum açtıktan sonra sol üstteki Hizmetler açılan listesini seçin. Güvenlik, Kimlik ve Uyumluluk altında, kimlik ve erişim yönetimi sayfasına erişmek için IAM'yiseçin

    A screenshot of an AWS cloud console.

    A screenshot of identity and access management in the AWS cloud console.

  3. Soldaki menüden Kullanıcılar'a tıklayın ve ardından Yeni bir IAM kullanıcısı oluşturmak için Kullanıcı ekle'yi seçin.

    A screenshot of creating a new user in an AWS cloud console.

  4. Kullanıcı Ekle sayfasında kullanıcıyı adlandırın Terraform ve Programlı Erişim onay kutusunu seçin ve ardından İleri'yi seçin.

    Second screenshot of creating a new user in an AWS cloud console.

  5. İzinleri Ayarla sayfasında Var olan ilkeleri doğrudan ekle'yi seçin ve ardından ekran görüntüsünde görüldüğü gibi AmazonEC2FullAccess'in yanındaki kutuyu seçin ve ardından İleri'yi seçin.

    Third screenshot of creating a new user in an AWS cloud console.

  6. Etiketler sayfasında anahtarı olan bir etiket atayın azure-arc-demo ve İleri'yi seçerek Gözden Geçir sayfasına geçin.

    A screenshot of tags in an AWS cloud console.

  7. Her şeyin doğru olduğundan emin olun ve Hazır olduğunuzda Kullanıcı oluştur'u seçin.

    Fourth screenshot of creating a user in an AWS cloud console.

  8. Kullanıcı oluşturulduktan sonra kullanıcının erişim anahtarı kimliğini ve gizli dizi erişim anahtarını görürsünüz. Kapat'ı seçmeden önce bu değerleri kopyalayın. Sonraki sayfada, bunun nasıl görünmesi gerektiğini gösteren bir örnek görebilirsiniz. Bu anahtarlara sahip olduktan sonra bunları Terraform ile kullanarak AWS kaynakları oluşturabilirsiniz.

    A screenshot of creating a user successfully in an AWS cloud console.

Terraform'ı yapılandırma

Terraform planını yürütmeden önce, plan tarafından kullanılacak ortam değişkenlerini dışarı aktarmanız gerekir. Bu değişkenler Azure aboneliğinizi ve kiracınızı, Azure hizmet sorumlusunu ve yeni oluşturduğunuz AWS IAM kullanıcısını ve anahtarlarını temel alır.

  1. komutunu kullanarak az account list Azure abonelik kimliğinizi ve kiracı kimliğinizi alın.

  2. Terraform planı hem Microsoft Azure hem de AWS'de kaynaklar oluşturur. Ardından Azure Arc aracısını ve tüm gerekli yapıtları yüklemek için AWS EC2 sanal makinesinde bir betik yürütür. Bu betik, AWS ve Azure ortamlarınız hakkında belirli bilgiler gerektirir. Değişkenlerin her birini uygun değerlerle düzenleyin scripts/vars.sh ve güncelleştirin.

    • TF_VAR_subscription_id = Azure abonelik kimliğiniz
    • TF_VAR_client_id = Azure hizmet sorumlusu uygulama kimliğiniz
    • TF_VAR_client_secret = Azure hizmet sorumlusu parolanız
    • TF_VAR_tenant_id = Azure kiracı kimliğiniz
    • AWS_ACCESS_KEY_ID = AWS erişim anahtarı
    • AWS_SECRET_ACCESS_KEY = AWS gizli anahtarı
  3. Azure CLI'dan kopyalanan deponun dizinine azure_arc_servers_jumpstart/aws/ubuntu/terraform gidin.

  4. Aşağıda gösterildiği gibi kaynak komutuyla çalıştırarak scripts/vars.sh düzenlediğiniz ortam değişkenlerini dışarı aktarın. Terraform, planın düzgün yürütülmesi için bunların ayarlanmasını gerektirir. Bu betiğin Terraform dağıtımının bir parçası olarak AWS sanal makinesinde de otomatik olarak yürütüleceğini unutmayın.

    source ./scripts/vars.sh
    
  5. SSH anahtarlarınızın ~/.ssh ve adlandırılmış id_rsaid_rsa.pub ve içinde kullanılabilir olduğundan emin olun. Anahtarınızı oluşturmak için yukarıdaki kılavuzu izlediyseniz ssh-keygen , bu zaten doğru ayarlanmış olmalıdır. Aksi takdirde, farklı bir yola sahip bir anahtar kullanmak için değiştirmeniz main.tf gerekebilir.

  6. terraform init Terraform AzureRM sağlayıcısını indirecek komutu çalıştırın.

    A screenshot of the terraform init command.

Dağıtım

  1. terraform apply --auto-approve komutunu çalıştırın ve planın tamamlanmasını bekleyin. Tamamlandıktan sonra, yeni bir kaynak grubu içinde yeni bir Azure Arc özellikli sunucu olarak dağıtılan ve bağlanan bir AWS Amazon Linux 2 EC2 örneğine sahip olacaksınız.

  2. Azure portalını açın ve kaynak grubuna arc-aws-demo gidin. AWS'de oluşturulan sanal makine kaynak olarak görünür.

    A screenshot showing an Azure Arc-enabled server in the Azure portal.

    A screenshot of AWS console displaying EC2 instances.

Yarı otomatik dağıtım (isteğe bağlı)

Fark etmiş olabileceğiniz gibi, çalıştırmanın son adımı VM'yi yeni bir Azure Arc özellikli sunucu kaynağı olarak kaydetmektir.

A screenshot of the azcmagent connect command.

Gerçek kayıt işleminin tanıtımını yapmak/denetlemek istiyorsanız aşağıdakileri yapın:

  1. Betik şablonunda install_arc_agent.sh.tmpl bölümü açıklama satırı yapın run connect command ve dosyayı kaydedin.

    A screenshot showing main.tf being commented out to disable automatic onboarding of an Azure Arc agent.

  2. komutunu çalıştırarak terraform outputAWS VM'sinin genel IP'sini alın.

    A screenshot of output from Terraform.

  3. Konak IP'sinin ssh ubuntu@xx.xx.xx.xx nerede xx.xx.xx.xx olduğunu kullanarak VM'yi SSH olarak ayarlayın.

    A screenshot of an SSH key connecting to an EC2 server.

  4. içindeki vars.shtüm ortam değişkenlerini dışarı aktarın.

    A screenshot of exported environment variables in vars.sh.

  5. Şu komutu çalıştırın:

    azcmagent connect --service-principal-id $TF_VAR_client_id --service-principal-secret $TF_VAR_client_secret --resource-group "arc-aws-demo" --tenant-id $TF_VAR_tenant_id --location "westus2" --subscription-id $TF_VAR_subscription_id
    

    Another screenshot of the azcmagent connect command.

  6. Tamamlandığında VM'niz Azure Arc'a kaydedilir ve Azure portalı aracılığıyla kaynak grubunda görünür.

Dağıtımı silme

Bu tanıtım kapsamında oluşturduğunuz tüm kaynakları silmek için aşağıda gösterildiği gibi komutunu kullanın terraform destroy --auto-approve .

A screenshot of the terraform destroy command.

Alternatif olarak AWS EC2 örneğini AWS konsolundan sonlandırarak doğrudan silebilirsiniz. Örneğin gerçekten kaldırılmasının birkaç dakika süreceğini unutmayın.

A screenshot of how to terminate an instance in the AWS console.

Örneği el ile silerseniz Terraform planı tarafından oluşturulan öğesini de silmelisiniz *./scripts/install_arc_agent.sh.