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
- App Service RP etkinken Azure Stack Hub örneğine erişim.
- Azure Stack Hub kiracınızla ilişkili bir Azure DevOps çözümü .
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.
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. 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
register
Yeni bir ortam için komutunu veyaupdate
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
SPN için kullanmak istediğiniz abonelik kimliğinizi ve kaynak grubunuzu alın.
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
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
- Azure Stack Hub portalınızda oturum açın.
- Kaynak> oluşturWeb + Mobil>Web Uygulaması'ı seçin.
- Aboneliğinizi seçin.
- Kaynak Grubu oluşturun veya seçin.
- 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>
- 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.
- Çalışma zamanınızı ve uygulamanızı barındıracak İşletim Sistemi'ni (OS) seçin.
- Azure Stack Hub örneğiniz için Bölge'yi seçin veya yazın.
- Azure Stack Hub örneğinize, bölgenize ve uygulama işletim sisteminize göre planı seçin.
- Gözden geçir + Oluştur’u seçin.
- Web uygulamanızı gözden geçirin. Oluştur’u seçin.
- Kaynağa git’i seçin.
- 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.
Azure DevOps kuruluşunuzda oturum açın ve projenize gidin.
Proje ayarları'nı ve ardından Hizmet bağlantıları'nı seçin.
Hizmet bağlantıları>Yeni hizmet bağlantısı'nı seçin.
Azure Resource Manager'ı ve ardından İleri'yi seçin.
Hizmet sorumlusu (el ile) seçeneğini belirleyin.
Ortam'danAzure Stack'i seçin.
Formu doldurun ve doğrula ve kaydet'i seçin.
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).
Deponuzu oluşturma ve işlem hattı ekleme
Web uygulaması kodunuzu depoya eklemediyseniz şimdi ekleyin.
Depoyu açın. Depoyu seçin ve Gözat'ı seçin.
İşlem Hatları'nın seçilmesi
Yeni işlem hattı'ı seçin.
Azure Repos Git'i seçin.
Deponuzu seçin.
Başlangıç işlem hattı'ı seçin.
Depoya geri gidin ve dosyasını
azure-pipelines.yml
açın.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.azureSubscription
Değeri hizmet bağlantınızın adıyla güncelleştirin.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:
- Azure PowerShell
- Azure Dosyası Kopyalama
- Azure Kaynak Grubu Dağıtımı
- Azure App Service Dağıtma
- Azure App Service Yönet
- Azure SQL Veritabanı Dağıtımı