Hızlı Başlangıç: Azure'a Linux web uygulaması dağıtmak için ARM şablonu kullanma
Azure DevOps Services
MySQL ile bir Linux web uygulaması dağıtarak Azure Resource Manager şablonlarını (ARM şablonları) kullanmaya başlayın. ARM şablonları, yapılandırmanızı koda kaydetmeniz için size bir yol sağlar. ARM şablonu kullanmak, kod olarak altyapı ve iyi bir DevOps uygulaması örneğidir.
ARM şablonu projenizin altyapısını ve yapılandırmasını tanımlayan bir JavaScript Nesne Gösterimi (JSON) dosyasıdır. Bu şablonda, bildirim temelli sözdizimi kullanılır. Bildirim temelli sözdiziminde, dağıtım oluşturmak için programlama komutlarının dizisini yazmadan amaçladığınız dağıtımı ifade edersiniz.
Azure kaynaklarını dağıtmak için JSON veya Bicep söz dizimlerini kullanabilirsiniz. Şablonlar için JSON ile Bicep arasındaki fark hakkında daha fazla bilgi edinin.
Önkoşullar
Başlamadan önce şunları yapmanız gerekir:
- Etkin aboneliği olan bir Azure hesabı. Ücretsiz bir hesap oluşturun.
- Etkin bir Azure DevOps kuruluşu. Azure Pipelines'a kaydolun.
- (Bicep dağıtımları için) Mevcut bir kaynak grubu. Azure portal, Azure CLI veya Azure PowerShell ile bir kaynak grubu oluşturun.
Kodu alma
GitHub'da bu deponun çatalını oluşturun:
https://github.com/Azure/azure-quickstart-templates/tree/master/quickstarts/microsoft.web/webapp-linux-managed-mysql
Şablonu gözden geçirme
Bu hızlı başlangıçta kullanılan şablon Azure Hızlı Başlangıç Şablonlarından alınmıştır.
Şablon birkaç kaynak tanımlar:
- Microsoft.Web/serverfarms
- Microsoft.Web/sites
- Microsoft.DBforMySQL/servers
- Microsoft.DBforMySQL/servers/firewallrules
- Microsoft.DBforMySQL/servers/databases
İşlem hattınızı oluşturma ve şablonunuzu dağıtma
Azure DevOps kuruluşunuzda oturum açın ve projenize gidin. Henüz bir projeniz yoksa bir proje oluşturun.
İşlem Hatları'na gidin ve İşlem Hattı Oluştur'u seçin.
Kaynak kodunuzun konumu olarak GitHub'ı seçin.
Not
Oturum açmak için GitHub'a yönlendirilebilirsiniz. Öyleyse GitHub kimlik bilgilerinizi girin.
Depo listesi görüntülendiğinde öğesini seçin
yourname/azure-quickstart-templates/
.Not
Azure Pipelines uygulamasını yüklemek için GitHub'a yönlendirilebilirsiniz. Öyleyse Onayla ve yükle'yi seçin.
Yapılandır sekmesi görüntülendiğinde öğesini seçin
Starter pipeline
.İşlem hattınızın içeriğini şu kodla değiştirin:
trigger: - none pool: vmImage: 'ubuntu-latest'
Üç değişken oluşturun:
siteName
,administratorLogin
veadminPass
.adminPass
gizli dizi değişkeni olmalıdır.- Değişkenler'i seçin.
+
Üç değişken eklemek için işaretini kullanın. oluşturduğunuzdaadminPass
Bu değeri gizli tut'u seçin.- İşiniz bittiğinde Kaydet'e tıklayın.
Değişken Değer Gizli? Sitename mytestsite
No adminUser fabrikam
No adminPass Fqdn:5362!
Yes Gizli dizi değişkenini
$(adminPass)
Azure Kaynak Grubu Dağıtımı görevinizde kullanılabilir olacak şekilde eşleyin. YAML dosyanızın üst kısmında ile eşleyin$(adminPass)
$(ARM_PASS)
.variables: ARM_PASS: $(adminPass) trigger: - none pool: vmImage: 'ubuntu-latest'
Dosyaları Kopyala görevini YAML dosyasına ekleyin. Projeyi kullanacaksınız
101-webapp-linux-managed-mysql
. Daha fazla bilgi için bkz. MySQL için Azure veritabanı deposuyla Linux üzerinde Web uygulaması derleme .variables: ARM_PASS: $(adminPass) trigger: - none pool: vmImage: 'ubuntu-latest' steps: - task: CopyFiles@2 inputs: SourceFolder: 'quickstarts/microsoft.web/webapp-linux-managed-mysql/' Contents: '**' TargetFolder: '$(Build.ArtifactStagingDirectory)'
Azure Kaynak Grubu Dağıtım görevini ekleyin ve yapılandırın.
Görev hem Dosyaları Kopyala göreviyle oluşturduğunuz yapıta hem de işlem hattı değişkenlerinize başvurur. Görevinizi yapılandırırken bu değerleri ayarlayın.
- Dağıtım kapsamı (deploymentScope): Dağıtım kapsamını olarak
Resource Group
ayarlayın. Dağıtımınızı bir yönetim grubuna, Azure aboneliğine veya kaynak grubuna hedefleyebilirsiniz. - Azure Resource Manager bağlantısı (azureResourceManagerConnection): Azure Resource Manager hizmet bağlantınızı seçin. Yeni hizmet bağlantısını yapılandırmak için listeden Azure aboneliğini seçin ve Yetkile'ye tıklayın. Diğer ayrıntılar için bkz. Microsoft Azure'a bağlanma
- Subscription (subscriptionId): Dağıtımın gitmesi gereken aboneliği seçin.
- Eylem (eylem): Yeni bir kaynak grubu oluşturmak veya var olan bir kaynak grubunu güncelleştirmek için olarak ayarlayın
Create or update resource group
. - Kaynak grubu: Yeni kaynak grubunuzu adlandırmak
ARMPipelinesLAMP-rg
için olarak ayarlayın. Bu mevcut bir kaynak grubuysa, güncelleştirilir. - Konum(konum): Kaynak grubunun dağıtılacağı konum. En yakın konumunuza ayarlayın (örneğin, Batı ABD). Kaynak grubu aboneliğinizde zaten varsa, bu değer yoksayılır.
- Şablon konumu (templateLocation): olarak
Linked artifact
ayarlayın. Bu, şablonunuzun ve parametre dosyalarının konumudur. - Şablon (csmFile): olarak
$(Build.ArtifactStagingDirectory)/azuredeploy.json
ayarlayın. Bu, ARM şablonunun yoludur. - Şablon parametreleri (csmParametersFile): olarak
$(Build.ArtifactStagingDirectory)/azuredeploy.parameters.json
ayarlayın. Bu, ARM şablonunuzun parametre dosyasının yoludur. - Şablon parametrelerini geçersiz kıl (overrideParameters): Daha önce oluşturduğunuz değişkenleri kullanmak için olarak ayarlayın
-siteName $(siteName) -administratorLogin $(adminUser) -administratorLoginPassword $(ARM_PASS)
. Bu değerler, şablon parametreleri dosyanızda ayarlanan parametrelerin yerini alır. - Dağıtım modu (deploymentMode): Kaynakların dağıtılma şekli.
Incremental
olarak ayarlayın. Artımlı, ARM şablonunda olmayan ve değerindenComplete
daha hızlı olan kaynakları tutar.Validate
modu, dağıtmadan önce şablonla ilgili sorunları bulmanıza olanak tanır.
variables: ARM_PASS: $(adminPass) trigger: - none pool: vmImage: 'ubuntu-latest' steps: - task: CopyFiles@2 inputs: SourceFolder: 'quickstarts/microsoft.web/webapp-linux-managed-mysql/' Contents: '**' TargetFolder: '$(Build.ArtifactStagingDirectory)' - task: AzureResourceManagerTemplateDeployment@3 inputs: deploymentScope: 'Resource Group' azureResourceManagerConnection: '<your-resource-manager-connection>' subscriptionId: '<your-subscription-id>' action: 'Create Or Update Resource Group' resourceGroupName: 'ARMPipelinesLAMP-rg' location: '<your-closest-location>' templateLocation: 'Linked artifact' csmFile: '$(Build.ArtifactStagingDirectory)/azuredeploy.json' csmParametersFile: '$(Build.ArtifactStagingDirectory)/azuredeploy.parameters.json' overrideParameters: '-siteName $(siteName) -administratorLogin $(adminUser) -administratorLoginPassword $(ARM_PASS)' deploymentMode: 'Incremental'
- Dağıtım kapsamı (deploymentScope): Dağıtım kapsamını olarak
Şablonunuzu dağıtmak için Kaydet ve çalıştır'a tıklayın. İşlem hattı işi başlatılır ve aracınıza bağlı olarak birkaç dakika sonra iş durumu değerini göstermelidir
Success
.
Dağıtılan kaynakları gözden geçirme
Kaynakların dağıtıldığını doğrulayın. Azure portal kaynak grubuna
ARMPipelinesLAMP-rg
gidin ve App Service, plan App Service ve sunucu kaynaklarını MySQL için Azure Veritabanı gördüğünüzden emin olun.Azure CLI kullanarak kaynakları da doğrulayabilirsiniz.
az resource list --resource-group ARMPipelinesLAMP-rg --output table
Yeni sitenize gidin. olarak
armpipelinetestsite
ayarlarsanızsiteName
, site konumundahttps://armpipelinetestsite.azurewebsites.net/
bulunur.
Kaynakları temizleme
Kaynakları silmek için ARM şablonu da kullanabilirsiniz. action
Azure Kaynak Grubu Dağıtımı görevinizdeki değeri olarak DeleteRG
değiştirin. , , csmFile
, csmParametersFile
overrideParameters
ve deploymentMode
için girişleri templateLocation
de kaldırabilirsiniz.
variables:
ARM_PASS: $(adminPass)
trigger:
- none
pool:
vmImage: 'ubuntu-latest'
steps:
- task: CopyFiles@2
inputs:
SourceFolder: 'quickstarts/microsoft.web/webapp-linux-managed-mysql/'
Contents: '**'
TargetFolder: '$(Build.ArtifactStagingDirectory)'
- task: AzureResourceManagerTemplateDeployment@3
inputs:
deploymentScope: 'Resource Group'
azureResourceManagerConnection: '<your-resource-manager-connection>'
subscriptionId: '<your-subscription-id>'
action: 'DeleteRG'
resourceGroupName: 'ARMPipelinesLAMP-rg'
location: ''<your-closest-location>'
Sonraki adımlar
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin