azure cli and powershell

Azure CLI

export RESOURCE_GROUP=learn-123
export AZURE_REGION=westus2
export AZURE_APP_PLAN=popupappplan-$RANDOM
export AZURE_WEB_APP=popupwebapp-$RANDOM

# 前面漏了一个resource group的生成语句
az group list --output table
az group list --query "[?name == '$RESOURCE_GROUP']"

# webapp要用到appservice
az appservice plan create --name $AZURE_APP_PLAN --resource-group $RESOURCE_GROUP --location $AZURE_REGION --sku FREE
az appservice plan list --output table

# 生成webapp
az webapp create --name $AZURE_WEB_APP --resource-group $RESOURCE_GROUP --plan $AZURE_APP_PLAN
az webapp list --output table

# 从github部署webapp
az webapp deployment source config --name $AZURE_WEB_APP --resource-group $RESOURCE_GROUP --repo-url "https://github.com/Azure-Samples/php-docs-hello-world" --branch master --manual-integration

Azure PowerShell

默认情况下PowerShell是不包含Azure模块的,所以需要import相关模块。

Install-Module -Name Az -AllowClobber -SkipPublisherCheck
Import-Module Az
Connect-AzAccount / Select-AzSubscription -SubscriptionId '{scriptid}'
Get-AzResourceGroup / Get-AzResource
Get-AzResource -ResourceType Microsoft.Compute/virtualMachines

New-AzVm -ResourceGroupName learn-123 -Name "testvm-eus-01" -Credential (Get-Credential) -Location "East US" -Image UbuntuLTS -OpenPorts 22

$vm = (Get-AzVM -Name "testvm-eus-01" -ResourceGroupName learn-8a9c4aca-2d74-4915-8aa3-919f875366ad)
#可以通过这样的方式显示vm中的值
$vm.StorageProfile.OsDisk
$vm | Get-AzPublicIpAddress


Stop-AzVM -Name $vm.Name -ResourceGroup $vm.ResourceGroupName
Remove-AzVM -Name $vm.Name -ResourceGroup $vm.ResourceGroupName
Get-AzResource -ResourceGroupName $vm.ResourceGroupName | ft
$vm | Remove-AzNetworkInterface –Force

Get-AzDisk -ResourceGroupName $vm.ResourceGroupName -DiskName $vm.StorageProfile.OSDisk.Name | Remove-AzDisk -Force
Get-AzVirtualNetwork -ResourceGroup $vm.ResourceGroupName | Remove-AzVirtualNetwork -Force
Get-AzNetworkSecurityGroup -ResourceGroup $vm.ResourceGroupName | Remove-AzNetworkSecurityGroup -Force
Get-AzPublicIpAddress -ResourceGroup $vm.ResourceGroupName | Remove-AzPublicIpAddress -Force

使用ps脚本文件(ConferenceDailyReset.ps1)。

param([string]$resourceGroup)

$adminCredential = Get-Credential -Message "Enter a username and password for the VM administrator."
For ($i = 1; $i -le 3; $i++)
{
  $vmName = "ConferenceDemo" + $i
  Write-Host "Creating VM: " $vmName
  New-AzVm -ResourceGroupName $resourceGroup -Name $vmName -Credential $adminCredential -Image UbuntuLTS
}

运行
./ConferenceDailyReset.ps1 {resource group name}

Azure CLI需要配合OS的Shell脚本运行,而Azure PowerShell配合PowerShell运行。
相对于Azure CLI,Azure PowerShell适用于已有PowerShell经验的人。

上一篇:Azure IaaS Day在线活动邀你来参加


下一篇:使用云原生应用和开源技术的创新攻略