Azure Pipelines kullanarak Azure Stack Hub App Service dağıtma

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Bu makalede, Azure Pipelines kullanarak azure stack hub örneğindeki uygulama hizmetlerine uygulama hizmetlerine uygulama dağıtmak için CI/CD işlem hattı ayarlama adımları açıklanmaktadır.

Bu makalede şunları oluşturmayı veya doğrulamayı öğrenebilirsiniz:

  • İşlem hattı için Azure Stack Hub hizmet sorumlusu (SPN) kimlik bilgileri.
  • Azure Stack Hub örneğinizdeki bir web uygulaması.
  • Azure Stack Hub örneğine bir hizmet bağlantısı.
  • Uygulamanıza dağıtılacak uygulama kodunuzu içeren depo

Önkoşullar

SPN'nizi oluşturma veya doğrulama

SPN, Azure dışındaki işlemlerin kaynaklara bağlanabilmesi ve kaynaklarla etkileşim kurabilmesi için rol tabanlı kimlik bilgileri sağlar. Azure DevOps işlem hattınızla kullanmak için katkıda bulunan erişimine ve bu yönergelerde belirtilen özniteliklere sahip bir SPN'ye ihtiyacınız vardır.

Azure Stack Hub kullanıcısı olarak SPN oluşturma izniniz yok. Bu sorumluya bulut operatörünüzden istekte bulunmanız gerekir. Burada, bulut operatörüyseniz SPN'yi oluşturabilmeniz veya bir bulut operatörü tarafından sağlanan iş akışınızda SPN kullanan bir geliştiriciyseniz SPN'yi doğrulayabileceğiniz yönergeler sağlanmıştır.

Bulut operatörünün Azure CLI kullanarak SPN'yi oluşturması gerekir.

Aşağıdaki kod parçacıkları, Azure Stack Hub için Azure CLI ile PowerShell istemi kullanılarak bir Windows makinesi için yazılmıştır. Cli'yi bir Linux makinesinde kullanıyorsanız ve Bash kullanıyorsanız, satır uzantısını kaldırın veya bir ile \değiştirin.

  1. SPN'yi oluşturmak için kullanılan aşağıdaki parametrelerin değerlerini hazırlayın:

    Parametre Örnek Description
    endpoint-resource-manager "https://management.orlando.azurestack.corp.microsoft.com" Kaynak yönetimi uç noktası.
    suffix-storage-endpoint "orlando.azurestack.corp.microsoft.com" Depolama hesapları için uç nokta son eki.
    suffix-keyvault-dns ".vault.orlando.azurestack.corp.microsoft.com" Key Vault hizmeti dns soneki.
    endpoint-active-directory-graph-resource-id "https://graph.windows.net/" Active Directory kaynak kimliği.
    endpoint-sql-management https://notsupported SQL Server yönetim uç noktası. Bunu olarak ayarlayın https://notsupported
    profil 2019-03-01-hibrit Bu bulut için kullanılacak profil.
  2. Windows PowerShell veya Bash gibi komut satırı aracınızı açın ve oturum açın. Aşağıdaki komutu kullanın:

    az login
    
  3. register Yeni bir ortam için komutunu veya update mevcut bir ortamı kullanıyorsanız komutunu kullanın. Aşağıdaki komutu kullanın.

    az cloud register `
        -n "AzureStackUser" `
        --endpoint-resource-manager "https://management.<local>.<FQDN>" `
        --suffix-storage-endpoint ".<local>.<FQDN>" `
        --suffix-keyvault-dns ".vault.<local>.<FQDN>" `
        --endpoint-active-directory-graph-resource-id "https://graph.windows.net/" `
        --endpoint-sql-management https://notsupported  `
        --profile 2019-03-01-hybrid
    
  4. SPN için kullanmak istediğiniz abonelik kimliğinizi ve kaynak grubunuzu alın.

  5. Abonelik kimliği ve kaynak grubu ile aşağıdaki komutla SPN'yi oluşturun:

    az ad sp create-for-rbac --name "myApp" --role contributor `
        --scopes /subscriptions/{subscription-id}/resourceGroups/{resource-group} `
        --sdk-auth
    

    Bulut operatörü ayrıcalıklarınız yoksa, bulut operatörünüz tarafından size sağlanan SPN ile de oturum açabilirsiniz. İstemci kimliğine, gizli diziye ve kiracı kimliğiniz gerekir. Bu değerlerle, hizmet bağlantınızı oluşturmak için ihtiyacınız olan değerleri içeren JSON nesnesini oluşturmak için aşağıdaki Azure CLI komutlarını kullanabilirsiniz.

    az login --service-principal -u "<client-id>" -p "<secret>" --tenant "<tenant-ID>" --allow-no-subscriptions
    az account show
    
  6. Sonuçta elde edilen JSON nesnesini denetleyin. Hizmet bağlantınızı oluşturmak için JSON nesnesini kullanacaksınız. JSON nesnesi aşağıdaki özniteliklere sahip olmalıdır:

    {
      "environmentName": "<Environment name>",
      "homeTenantId": "<Tenant ID for the SPN>",
      "id": "<Application ID for the SPN>",
      "isDefault": true,
      "managedByTenants": [],
      "name": "<Tenant name>",
      "state": "Enabled",
      "tenantId": "<Tenant ID for the SPN>",
      "user": {
        "name": "<User email address>",
        "type": "user"
      }
    }
    

Web uygulaması hedefi oluşturma

  1. Azure Stack Hub portalınızda oturum açın.
  2. Kaynak> oluşturWeb + Mobil>Web Uygulaması'ı seçin.
  3. Aboneliğinizi seçin.
  4. Kaynak Grubu oluşturun veya seçin.
  5. Uygulamanızın Adını yazın. Uygulamanın adı uygulamanızın URL'sinde görünür, örneğin, yourappname.appservice.<region>.<FQDN>
  6. Uygulamanız için Çalışma Zamanı yığınını seçin. Çalışma zamanı, web uygulamanız için kullanmayı planladığınız kodla eşleşmelidir.
  7. Çalışma zamanınızı ve uygulamanızı barındıracak İşletim Sistemi'ni (OS) seçin.
  8. Azure Stack Hub örneğiniz için Bölge'yi seçin veya yazın.
  9. Azure Stack Hub örneğinize, bölgenize ve uygulama işletim sisteminize göre planı seçin.
  10. Gözden geçir + Oluştur’u seçin.
  11. Web uygulamanızı gözden geçirin. Oluştur’u seçin.
  12. Kaynağa git’i seçin.
  13. Uygulama adınızı not edin. Adı, deponuzda işlem hattınızı tanımlayan yml belgesine ekleyeceksiniz.

Hizmet bağlantısı oluşturma

Hizmet bağlantısı oluşturun. SPN'nizdeki değerlere ve Azure Stack Hub aboneliğinizin adına ihtiyacınız olacaktır.

  1. Azure DevOps kuruluşunuzda oturum açın ve projenize gidin.

  2. Proje ayarları'nı ve ardından Hizmet bağlantıları'nı seçin.

  3. Hizmet bağlantıları>Yeni hizmet bağlantısı'nı seçin.

  4. Azure Resource Manager'ı ve ardından İleri'yi seçin.

  5. Hizmet sorumlusu (el ile) seçeneğini belirleyin.

  6. Ortam'danAzure Stack'i seçin.

  7. Formu doldurun ve doğrula ve kaydet'i seçin.

  8. Hizmet bağlantınıza bir ad verin. (Yaml işlem hattınızı oluşturmak için hizmet bağlantı adına ihtiyacınız olacaktır).

    Azure Stack Hub için hizmet bağlantısı oluşturma

Deponuzu oluşturma ve işlem hattı ekleme

  1. Web uygulaması kodunuzu depoya eklemediyseniz şimdi ekleyin.

  2. Depoyu açın. Depoyu seçin ve Gözat'ı seçin.

  3. İşlem Hatları'nın seçilmesi

  4. Yeni işlem hattı'ı seçin.

  5. Azure Repos Git'i seçin.

  6. Deponuzu seçin.

  7. Başlangıç işlem hattı'ı seçin.

  8. Depoya geri gidin ve dosyasını azure-pipelines.ymlaçın.

  9. Aşağıdaki yaml'yi ekleyin:

    # Starter pipeline
    # Start with a minimal pipeline that you can customize to build and deploy your code.
    # Add steps that build, run tests, deploy, and more:
    # https://aka.ms/yaml
    trigger:
    - main
    variables:
      azureSubscription: '<your connection name>'
      VSTS_ARM_REST_IGNORE_SSL_ERRORS: true
    steps:
    - task: AzureWebApp@1
      displayName: Azure Web App Deploy
      inputs:
        azureSubscription: $(azureSubscription)
        appName: <your-app-name>
        package: '$(System.DefaultWorkingDirectory)'
    

    Not

    SSL hatalarını yoksaymak için, bu örnekte olduğu gibi derleme veya yayın işlem hattındaki değere true adlı VSTS_ARM_REST_IGNORE_SSL_ERRORS bir değişken ayarlayın.

  10. azureSubscription Değeri hizmet bağlantınızın adıyla güncelleştirin.

  11. uygulamasını appName uygulama adınızla güncelleştirin. Artık dağıtmaya hazırsınız.

Azure Stack Hub ile Azure görevlerini kullanma hakkında notlar

Aşağıdaki Azure görevleri Azure Stack Hub ile doğrulanır:

Sonraki adımlar