PowerShell Kullanarak Azure Hizmetleri Oluşturun | sıcak çevrimiçi

Womanne

Member


  1. PowerShell kullanarak Azure hizmetleri oluşturun

Bir PowerShell betiği, Microsoft’un Azure bulutunda hızla birden çok web sunucusu ve veritabanı oluşturur.


Microsoft’un “Azure” bulut hizmetinde farklı kaynaklar oluşturmak istiyorsanız, Azure web portalında birçok tıklama yapmanız gerekir. Bir alternatif komut dosyası yazmaktır. Klasik az.exe komut satırı aracına ek olarak, PowerShell komutları (Windows PowerShell ve platformdan bağımsız PowerShell Core için), .NET ve Java için Azure yönetim kitaplıkları ve bir REST API’si vardır. Bu gönderide, PowerShell komutları dört web sunucusu (Azure Web App Services) ve iki veritabanı (SQL Azure) oluşturacak.

modül kurulumu


Gerekli hazırlık çalışması, PowerShell Galerisi’nden AzureRM PowerShell modülünü yüklemektir:

Install-Module PowerShellGet -Force -Scope currentuser
Install-Module -Name AzureRM -force -Scope currentuser

Bu komut önce PowerShell paket yöneticisinin geçerli sürümünü kurar, ardından oturum açmış kullanıcının modül dizinine modülü kurar. “AllUsers” standart kapsamı, yalnızca PowerShell yönetici haklarıyla başlatıldığında mümkündür.

Modül kurulumunu doğrulamak için artık PowerShell modülünü ve kullanılabilir Azure komut uygulamalarını bir tabloda görüntüleyebilirsiniz:

Get-Module AzureRM -ListAvailable | Select-Object -Property Name,Version,Path | ft
Get-Command -module AzureRM*


Liste çok uzun: modülün mevcut 6.10 sürümü 2207 komut içerir. sonra yıldız AzureRM komutlar kullandıkları alt modüller halinde organize edildiğinden gereklidir AzureRM başla, örneğin AzureRM.Sql. AzureRM, şu anda 53 modül içeren bir meta modüldür.

"Anzahl geladener Azure-Module: " + (Get-Module AzureRM* -ListAvailable | Select-Object -Property Name,Version,Path).Count
kayıt


Ardından, Azure portalında oturum açmanız gerekir. girişi ile

Login-AzureRmAccount

tarayıcı tabanlı bir oturum açma iletişim kutusu görünür. Bu etkileşim, işlem başına yalnızca bir kez gereklidir. PowerShell açık kaldığı sürece erişim geçerlidir.

senaryo


Şimdi, dört web sunucusunu ve iki veritabanını oluşturan asıl komut dosyasını takip eder. Betik, eşleşen bir kaynak Grubunun “DEMO_Mucize Listesi” ve bir hizmet planı “DEMOMiracleListFREE” Azure web portalında zaten oluşturulmuşlardır. Komut dosyası birkaç saniye sürer. İşlem sırasında, web portalındaki yeni hizmetleri zaten görüntüleyebilir ve kullanabilirsiniz.

# Wichtige Festlegungen
$prefix= "HD-"
$RessourceGroup = "DEMO_MiracleList"
$Serviceplan = "DEMOMiracleListFREE"
$Location="West Europe"
#region Ressourcen prüfen
$rg= Get-AzureRmResourceGroup$RessourceGroup
if (-not $sp) { Write-Error "ResourceGroup nicht gefunden!" : return }
$sp= Get-AzureRmAppServicePlan-Name $Serviceplan
if (-not $sp) { Write-Error "Service Plan nicht gefunden!" : return }
#endregion

#region Websites
$webappnames="$($prefix)MLBackend-Produktion","$($prefix)MLBackend-Staging","$($prefix)MLClient-Produktion","$($prefix)MLClient-Staging"

Get-AzureRmResourceGroup $RessourceGroup

$sp= Get-AzureRmAppServicePlan-Name $Serviceplan
if (-not $sp) { Write-Error "Service Plan nicht gefunden!" : return }
foreach($webappname in$webappnames)
{
Write-Host "Creating $webappname"-ForegroundColor Yellow
# Create a web app.
New-AzureRmWebApp -Name $webappname-Location $Location -AppServicePlan $Serviceplan -ResourceGroupName$RessourceGroup
$wa= Get-AzureRmWebApp-Name $webappname
if ($wa -eq$null) { Write-Error"WebApp wurde nicht angelegt!"; return; }
else { write-host "OK"-ForegroundColor Green }
}
# Kontrolle:
Get-AzureRmWebApp -ResourceGroupName $RessourceGroup |where RepositorySiteName-like "*$prefix*"| ft
#endregion

#region SQL Server
$dbnames="$($prefix)MLDB-Staging","$($prefix)MLDB-Produktion"
$servername = "$($prefix)MLSQLServer"
$adminlogin = "MLSQLAdmin"
$password = New-Guid
Write-Host "SQL Server password is: $password"-ForegroundColor Green
$startip = "0.0.0.0"
$endip= "255.255.255.255"

New-AzureRmSqlServer -ResourceGroupName $RessourceGroup `
-ServerName$servername `
-Location$location `
-SqlAdministratorCredentials $(New-Object -TypeNameSystem.Management.Automation.PSCredential-ArgumentList $adminlogin, $(ConvertTo-SecureString-String $password-AsPlainText -Force))

New-AzureRmSqlServerFirewallRule -ResourceGroupName $RessourceGroup `
-ServerName$servername `
-FirewallRuleName"AllowAll" -StartIpAddress "0.0.0.0"-EndIpAddress $endip

foreach($databasename in$dbnames)
{
New-AzureRmSqlDatabase -ResourceGroupName $RessourceGroup-ServerName $servername -DatabaseName$databasename -RequestedServiceObjectiveName"S0"
}

# Kontrolle
Get-AzureRmSqlDatabase -ResourceGroupName $resourcegroupname-ServerName $servername | ft
#endregion

PowerShell Çekirdek 6


PowerShell Core 6.x (PowerShell 6 olarak da bilinir) için Microsoft, “Az” adlı başka bir Azure modülü sunar. Ayrıca macOS ve Linux’ta da çalışır, ancak yalnızca 0.2 sürümüdür ve .NET Standardını temel aldığı ve .NET Framework sınıf kitaplığının tüm kapsamını kullanamadığı için daha az komut sunar.

Install-Module -Name Az
Get-Module AZ.* -ListAvailable

Bu nedenle, komutların adında “AzureRM” yerine “Az” bulunur, örneğin

Login-AzAccount


()





Haberin Sonu
 
Üst