Rychlý start: Nasazení linuxové webové aplikace do Azure pomocí šablony ARM
Azure DevOps Services
Začněte používat šablony Azure Resource Manager (šablony ARM) nasazením linuxové webové aplikace s MySQL. Šablony ARM poskytují způsob, jak uložit konfiguraci v kódu. Použití šablony ARM je příkladem infrastruktury jako kódu a dobrým postupem DevOps.
Šablona Resource ARM je soubor JSON (JavaScript Object Notation), který definuje infrastrukturu a konfiguraci projektu. Tato šablona používá deklarativní syntaxi. V deklarativní syntaxi popíšete zamýšlené nasazení, aniž byste museli psát sekvenci programovacích příkazů pro vytvoření tohoto nasazení.
K nasazení prostředků Azure můžete použít syntaxi JSON nebo Bicep . Přečtěte si další informace o rozdílech mezi JSON a Bicep pro šablony.
Požadavky
Než začnete, potřebujete:
- Účet Azure s aktivním předplatným. Vytvořte si zdarma účet.
- Aktivní organizace Azure DevOps. Zaregistrujte se ke službě Azure Pipelines.
- (Pro nasazení Bicep) Existující skupina prostředků. Vytvořte skupinu prostředků pomocí Azure Portal, Azure CLI nebo Azure PowerShell.
Získání kódu
Vytvoření forku tohoto úložiště na GitHubu:
https://github.com/Azure/azure-quickstart-templates/tree/master/quickstarts/microsoft.web/webapp-linux-managed-mysql
Kontrola šablony
Šablona použitá v tomto rychlém startu je jednou z šablon pro rychlý start Azure.
Šablona definuje několik prostředků:
- Microsoft.Web/serverfarms
- Microsoft.Web/sites
- Microsoft.DBforMySQL/servers
- Microsoft.DBforMySQL/servers/firewallrules
- Microsoft.DBforMySQL/servers/databases
Vytvoření kanálu a nasazení šablony
Přihlaste se ke své organizaci Azure DevOps a přejděte do svého projektu. Vytvořte projekt , pokud ho ještě nemáte.
Přejděte na Pipelines (Kanály) a pak vyberte Create Pipeline (Vytvořit kanál).
Jako umístění zdrojového kódu vyberte GitHub .
Poznámka
Možná budete přesměrováni na GitHub, abyste se přihlásili. Pokud ano, zadejte své přihlašovací údaje GitHubu.
Jakmile se zobrazí seznam úložišť, vyberte
yourname/azure-quickstart-templates/
.Poznámka
Můžete být přesměrováni na GitHub a nainstalovat aplikaci Azure Pipelines. Pokud ano, vyberte Schválit a nainstalovat.
Když se zobrazí karta Konfigurovat, vyberte
Starter pipeline
.Obsah kanálu nahraďte tímto kódem:
trigger: - none pool: vmImage: 'ubuntu-latest'
Vytvořte tři proměnné:
siteName
,administratorLogin
aadminPass
.adminPass
musí být proměnná tajného kódu.- Vyberte Proměnné.
- Pomocí znaménka
+
přidejte tři proměnné. Při vytvářeníadminPass
vyberte Zachovat tuto hodnotu v tajnosti. - Až budete hotovi, klikněte na Uložit .
Proměnná Hodnota Tajemství? Sitename mytestsite
No adminUser fabrikam
No adminPass Fqdn:5362!
Yes Namapujte proměnnou
$(adminPass)
tajného klíče tak, aby byla k dispozici v úloze nasazení skupiny prostředků Azure. V horní části souboru YAML namapujte$(adminPass)
na$(ARM_PASS)
.variables: ARM_PASS: $(adminPass) trigger: - none pool: vmImage: 'ubuntu-latest'
Přidejte do souboru YAML úlohu Kopírovat soubory. Použijete
101-webapp-linux-managed-mysql
projekt. Další informace najdete v tématu Vytvoření webové aplikace v Linuxu s využitím úložiště Azure Database for MySQL .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)'
Přidejte a nakonfigurujte úlohu nasazení skupiny prostředků Azure .
Úloha odkazuje jak na artefakt, který jste vytvořili pomocí úlohy Kopírovat soubory, tak na proměnné kanálu. Tyto hodnoty nastavte při konfiguraci úkolu.
- Obor nasazení (deploymentScope): Nastavte obor nasazení na
Resource Group
. Nasazení můžete zacílit na skupinu pro správu, předplatné Azure nebo skupinu prostředků. - Připojení azure Resource Manager (azureResourceManagerConnection): Vyberte připojení služby Azure Resource Manager. Pokud chcete nakonfigurovat nové připojení služby, vyberte ze seznamu předplatné Azure a klikněte na Autorizovat. Další podrobnosti najdete v tématu Připojení k Microsoft Azure .
- Předplatné (id předplatného): Vyberte předplatné, do kterého má nasazení přejít.
- Akce (akce): Pokud chcete vytvořit novou skupinu prostředků nebo aktualizovat existující skupinu prostředků, nastavte
Create or update resource group
na . - Skupina prostředků: Nastavte na a
ARMPipelinesLAMP-rg
pojmenujte novou skupinu prostředků. Pokud se jedná o existující skupinu prostředků, bude aktualizována. - Location(location): Umístění pro nasazení skupiny prostředků. Nastavte na nejbližší umístění (například USA – západ). Pokud skupina prostředků už ve vašem předplatném existuje, bude se tato hodnota ignorovat.
- Umístění šablony (templateLocation): Nastavte na
Linked artifact
. Toto je umístění šablony a souborů parametrů. - Šablona (csmFile): Nastavte na
$(Build.ArtifactStagingDirectory)/azuredeploy.json
. Toto je cesta k šabloně ARM. - Parametry šablony (csmParametersFile): Nastavte na
$(Build.ArtifactStagingDirectory)/azuredeploy.parameters.json
. Toto je cesta k souboru parametrů pro vaši šablonu ARM. - Přepsat parametry šablony (overrideParameters): Nastavte na pro
-siteName $(siteName) -administratorLogin $(adminUser) -administratorLoginPassword $(ARM_PASS)
použití proměnných, které jste vytvořili dříve. Tyto hodnoty nahradí parametry nastavené v souboru parametrů šablony. - Režim nasazení (deploymentMode): Způsob nasazení prostředků. Nastavte na
Incremental
. Přírůstkové zachová prostředky, které nejsou v šabloně ARM, a je rychlejší nežComplete
.Validate
Režim umožňuje najít problémy se šablonou před nasazením.
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'
- Obor nasazení (deploymentScope): Nastavte obor nasazení na
Kliknutím na Uložit a spustit šablonu nasadíte. Úloha kanálu se spustí a po několika minutách, v závislosti na vašem agentu, by stav úlohy měl ukazovat
Success
.
Kontrola nasazených prostředků
Ověřte, že jsou nasazené prostředky. Přejděte do
ARMPipelinesLAMP-rg
skupiny prostředků v Azure Portal a ověřte, že se zobrazují App Service, App Service Plán a prostředky Azure Database for MySQL serveru.Prostředky můžete také ověřit pomocí Azure CLI.
az resource list --resource-group ARMPipelinesLAMP-rg --output table
Přejděte na nový web. Pokud nastavíte
siteName
hodnotuarmpipelinetestsite
, lokalita se nachází na adresehttps://armpipelinetestsite.azurewebsites.net/
.
Vyčištění prostředků
K odstranění prostředků můžete použít také šablonu ARM. action
Změňte hodnotu v úloze nasazení skupiny prostředků Azure na DeleteRG
. Můžete také odebrat vstupy pro templateLocation
, , csmFile
csmParametersFile
, overrideParameters
a deploymentMode
.
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>'
Další kroky
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro