A modern IT infrastruktúra gerincét egyre inkább a felhőalapú szolgáltatások, mint az Azure, képezik. A dinamikusan változó igények, a gyors telepítés és a konzisztens konfigurációk biztosítása azonban manuálisan szinte lehetetlen. Itt jön képbe az automatizálás, és azon belül is a PowerShell Az modulja, amely a Microsoft Azure platformjának hatékony és rugalmas programozható felületét biztosítja. Ez a cikk átfogó útmutatót nyújt az Az modul telepítésétől kezdve a komplex erőforrások kezelésén át egészen a fejlett automatizálási technikákig.
Miért a PowerShell Az Modul?
A PowerShell egy robusztus parancssori felület (CLI) és szkriptnyelv, amelyet a Microsoft fejlesztett ki a rendszerfelügyeleti feladatok automatizálására. Az Az modul a PowerShell parancsmagok gyűjteménye, kifejezetten az Azure erőforrások kezelésére tervezve. Miért érdemes ezt választani?
- Automatizálás és Szkriptelés: Lehetővé teszi komplex feladatok szkriptelését, minimalizálva az emberi hibákat és felgyorsítva a telepítési és konfigurációs folyamatokat.
- Konzisztencia: Biztosítja, hogy az erőforrások mindig ugyanazzal a konfigurációval települjenek, ami elengedhetetlen a nagy méretű vagy sokféle környezetben.
- Hatékonyság: Gyorsan és hatékonyan kezelhet nagyszámú Azure erőforrást.
- Integráció: Könnyedén integrálható CI/CD (Continuous Integration/Continuous Deployment) pipeline-okba, automatizálva a fejlesztési és üzembe helyezési folyamatokat.
- Rugalmasság: Széles körű funkcionalitást kínál, a virtuális gépektől a hálózatokon át az adatbázisokig szinte minden Azure szolgáltatást támogat.
Az Az Modul Telepítése és Beállítása
Mielőtt belevágnánk az Azure erőforrások kezelésébe, telepítenünk kell az Az modult. Győződjünk meg róla, hogy a PowerShell 5.1-es vagy újabb verziója fut a rendszerünkön Windows operációs rendszer esetén, illetve PowerShell Core (7.x) Linuxon vagy macOS-en.
Telepítési Lépések:
- Indítsa el a PowerShellt rendszergazdaként: Ez elengedhetetlen a modul sikeres telepítéséhez.
- Telepítse az Az modult: Futtassa a következő parancsot:
Install-Module -Name Az -Scope CurrentUser -Repository PSGallery -Force
A
-Scope CurrentUser
azt jelenti, hogy csak az aktuális felhasználó számára települ a modul. Ha minden felhasználó számára elérhetővé szeretné tenni, használja a-Scope AllUsers
paramétert (ekkor lehet, hogy további engedélyekre lesz szükség). A-Force
paraméter felülírja a már meglévő verziót vagy figyelmeztetéseket. - Ellenőrizze a telepítést:
Get-Module -Name Az -ListAvailable
Ennek meg kell jelennie a telepített Az modul listájában.
- Modul Frissítése: Időről időre érdemes frissíteni a modult, hogy hozzáférjünk a legújabb funkciókhoz és hibajavításokhoz:
Update-Module -Name Az -Force
Bejelentkezés Azure-ba:
Miután telepítettük az Az modult, be kell jelentkeznünk az Azure fiókunkba. Ehhez használjuk a Connect-AzAccount
parancsmagot:
Connect-AzAccount
Ez egy böngészőablakot nyit meg, ahol bejelentkezhet az Azure hitelesítő adataival. Sikeres bejelentkezés után a PowerShell konzolon megjelenik az alapértelmezett Azure előfizetés adatai.
Több Előfizetés Kezelése:
Ha több Azure előfizetéssel rendelkezik, kiválaszthatja azt, amellyel dolgozni szeretne:
Get-AzContext # Megjeleníti az aktuális és elérhető kontextusokat
Select-AzSubscription -SubscriptionName "Az Ön előfizetésének neve"
# Vagy GUID azonosítóval:
Select-AzSubscription -SubscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
Alapvető Azure Erőforrások Kezelése
Az Azure erőforrások kezelésének alapja az erőforráscsoportok használata, amelyek logikai tárolók a kapcsolódó erőforrások számára.
Erőforráscsoportok Kezelése:
- Létrehozás:
New-AzResourceGroup -Name "MyResourceGroup" -Location "WestEurope"
A
-Name
paraméter az erőforráscsoport nevét, a-Location
pedig a földrajzi elhelyezkedését adja meg. - Lekérdezés:
Get-AzResourceGroup -Name "MyResourceGroup" Get-AzResourceGroup # Összes erőforráscsoport lekérdezése
- Törlés:
Remove-AzResourceGroup -Name "MyResourceGroup" -Force
A
-Force
paraméter automatikusan megerősíti a törlést.
Virtuális Gépek (VMs) Kezelése:
A virtuális gépek az egyik leggyakrabban használt Azure szolgáltatás. A PowerShell az Az modullal lehetővé teszi a VM-ek teljes életciklusának kezelését.
Egy egyszerű VM létrehozása:
$resourceGroupName = "MyVMResourceGroup"
$location = "WestEurope"
$vmName = "MyWebAppVM"
$adminUsername = "azureuser"
$adminPassword = (ConvertTo-SecureString "P@ssw0rd1234!" -AsPlainText -Force)
# Erőforráscsoport létrehozása, ha még nem létezik
if (-not (Get-AzResourceGroup -Name $resourceGroupName -ErrorAction SilentlyContinue)) {
New-AzResourceGroup -Name $resourceGroupName -Location $location
}
# Virtuális hálózat és alhálózat létrehozása
$vnet = New-AzVirtualNetwork -ResourceGroupName $resourceGroupName -Location $location -Name "MyVNet" -AddressPrefix "10.0.0.0/16"
$subnetConfig = Add-AzVirtualNetworkSubnetConfig -Name "MySubnet" -AddressPrefix "10.0.0.0/24" -VirtualNetwork $vnet
$vnet | Set-AzVirtualNetwork
# Nyilvános IP-cím létrehozása
$publicIp = New-AzPublicIpAddress -ResourceGroupName $resourceGroupName -Location $location -Name "MyVMIP" -AllocationMethod Dynamic
# Hálózati biztonsági csoport (NSG) létrehozása és szabály hozzáadása (pl. RDP)
$nsg = New-AzNetworkSecurityGroup -ResourceGroupName $resourceGroupName -Location $location -Name "MyVMNSG"
Add-AzNetworkSecurityRuleConfig -Name "RDP" -NetworkSecurityGroup $nsg -Priority 100 -Direction Inbound -Access Allow -Protocol Tcp -SourceAddressPrefix "*" -SourcePortRange "*" -DestinationAddressPrefix "*" -DestinationPortRange 3389 | Set-AzNetworkSecurityGroup
# Hálózati interfész (NIC) létrehozása
$nic = New-AzNetworkInterface -ResourceGroupName $resourceGroupName -Location $location -Name "MyVMNic" -SubnetId $subnetConfig.Id -PublicIpAddressId $publicIp.Id -NetworkSecurityGroupId $nsg.Id
# VM konfigurációjának beállítása
$vmConfig = New-AzVMConfig -VMName $vmName -VMSize "Standard_DS1_v2" | Set-AzVMOperatingSystem -Windows -ComputerName $vmName -Credential (New-Object System.Management.Automation.PSCredential($adminUsername, $adminPassword)) | Set-AzVMSourceImage -Publisher "MicrosoftWindowsServer" -Offer "WindowsServer" -Skus "2019-Datacenter" -Version "latest" | Add-AzVMNetworkInterface -Id $nic.Id
# VM létrehozása
New-AzVM -ResourceGroupName $resourceGroupName -Location $location -VM $vmConfig
Ez egy komplexebb példa, amely megmutatja, hogyan lehet a kapcsolódó erőforrásokat (VNet, Subnet, Public IP, NSG, NIC) is konfigurálni a VM létrehozása előtt. A Set-AzVMSourceImage
parancsmaggal megadhatjuk az operációs rendszert, a Set-AzVMOperatingSystem
pedig a Windows vagy Linux specifikus beállításokat.
VM Kezelése:
- Elindítás:
Start-AzVM -ResourceGroupName "MyVMResourceGroup" -Name "MyWebAppVM"
- Leállítás:
Stop-AzVM -ResourceGroupName "MyVMResourceGroup" -Name "MyWebAppVM" -Force
- Újraindítás:
Restart-AzVM -ResourceGroupName "MyVMResourceGroup" -Name "MyWebAppVM"
- Törlés:
Remove-AzVM -ResourceGroupName "MyVMResourceGroup" -Name "MyWebAppVM" -Force
Tárhely Fiókok (Storage Accounts) Kezelése:
Az Azure Storage robusztus és skálázható tárhelymegoldást kínál különböző típusú adatok (blobok, fájlok, táblák, üzenetsorok) tárolására.
- Létrehozás:
New-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount001" -Location "WestEurope" -SkuName "Standard_LRS" -Kind "StorageV2"
A
-SkuName
paraméter a replikáció típusát (pl. LRS, GRS), a-Kind
pedig a fiók típusát (pl. StorageV2 a legtöbb felhasználásra) határozza meg. - Blob konténer létrehozása és fájl feltöltése:
$storageAccount = Get-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount001" $ctx = $storageAccount.Context New-AzStorageContainer -Name "myblobs" -Context $ctx Set-AzStorageBlobContent -Container "myblobs" -File "C:pathtoyourfile.txt" -Blob "mydata.txt" -Context $ctx
Haladó Funkciók és Automatizálás
Azure Resource Manager (ARM) Sablonok és PowerShell
Az ARM sablonok (Infrastructure as Code) lehetővé teszik az Azure infrastruktúra kódként történő definiálását JSON formátumban. A PowerShell Az moduljával telepíthetjük ezeket a sablonokat, biztosítva a konzisztens és ismételhető telepítéseket.
- ARM sablon telepítése:
New-AzResourceGroupDeployment -ResourceGroupName "MyResourceGroup" -TemplateFile "C:pathtoyourtemplate.json" -TemplateParameterFile "C:pathtoyourparameters.json"
A
-TemplateFile
paraméter megadja a JSON sablonfájl elérési útját, a-TemplateParameterFile
pedig a paramétereket tartalmazó fájlt. Használhatja a-TemplateParameterObject
paramétert is, ha közvetlenül PowerShell objektumként szeretné átadni a paramétereket.
Azure Automation
Az Azure Automation egy felhőalapú szolgáltatás, amely lehetővé teszi a hosszú ideig futó, ismétlődő feladatok automatizálását. PowerShell runbookokat futtathatunk benne, amelyek az Az modult használják az Azure erőforrások kezelésére.
- Hozzon létre egy Automation fiókot és egy PowerShell runbookot.
- A runbookban importálja az Az modulokat (például
Import-Module Az.Compute
,Import-Module Az.Storage
). - Használja a
Connect-AzAccount -Identity
parancsot a Managed Identity alapú hitelesítéshez a runbookon belül, ami biztonságosabb, mint a jelszavak kezelése.
CI/CD Integráció
A PowerShell szkriptek kulcsfontosságúak a CI/CD pipeline-okba való integrációban, legyen szó Azure DevOpsról vagy GitHub Actionsről. Egy CI/CD folyamatban a PowerShell szkriptek felelhetnek az infrastruktúra telepítéséért, az alkalmazás telepítéséért, a konfigurációk frissítéséért vagy a tesztek futtatásáért.
- Például egy Azure DevOps pipeline-ban a
Azure PowerShell
task segítségével futtathat PowerShell szkripteket. - GitHub Actions esetén használhatja az
azure/login@v1
actiont a bejelentkezéshez, majd egyrun
lépésben futtathatja a PowerShell szkriptjét.
Gyakori Feladatok és Tippek
Listázás és Szűrés:
Szinte minden Get-Az
parancsmag képes listázni az erőforrásokat. A Where-Object
(rövidítve Where
) parancsmaggal szűrheti az eredményeket:
Get-AzVM | Where-Object {$_.ResourceGroupName -eq "MyVMResourceGroup" -and $_.Location -eq "WestEurope"}
Kimenet Formázása:
A PowerShell kimenetét könnyen formázhatja a jobb olvashatóság érdekében:
- Táblázat:
Get-AzResourceGroup | Format-Table Name, Location
- Listázás:
Get-AzVM -Name "MyWebAppVM" | Format-List *
- JSON/CSV:
Get-AzStorageAccount | ConvertTo-Json | Set-Content "storage_accounts.json"
Hibakezelés:
Mindig kezelje a hibákat a szkriptjeiben, hogy azok robusztusabbak legyenek:
Try {
New-AzResourceGroup -Name "ExistingResourceGroup" -Location "WestEurope" -ErrorAction Stop
} Catch {
Write-Error "Hiba történt az erőforráscsoport létrehozásakor: $($_.Exception.Message)"
}
Moduláris Szkriptelés:
Nagyobb projekteknél bontsa a szkripteket kisebb, újrafelhasználható modulokra vagy funkciókra. Ez javítja az olvashatóságot és a karbantarthatóságot.
Biztonság és Engedélyek (RBAC)
Az Azure erőforrások kezelésekor a biztonság kiemelten fontos. A szerepköralapú hozzáférés-vezérlés (RBAC) lehetővé teszi, hogy pontosan szabályozza, ki férhet hozzá melyik erőforráshoz, és milyen jogosultságokkal.
A PowerShell-lel hozzárendelhet szerepköröket felhasználókhoz, csoportokhoz vagy szolgáltatásnevekhez:
New-AzRoleAssignment -SignInName "[email protected]" -RoleDefinitionName "Contributor" -ResourceGroupName "MyResourceGroup"
Szolgáltatásnevek (Service Principals) és Felügyelt Identitások (Managed Identities):
Automatizált szkriptek vagy alkalmazások számára javasolt a szolgáltatásnevek vagy még inkább a felügyelt identitások használata hitelesítésre, mivel ezek biztonságosabbak, mint a felhasználói jelszavak tárolása. A Connect-AzAccount
támogatja a szolgáltatásnévvel történő bejelentkezést:
Connect-AzAccount -ServicePrincipal -TenantId "your-tenant-id" -ApplicationId "your-app-id" -CertificateThumbprint "your-cert-thumbprint"
vagy titkos kulccsal:
Connect-AzAccount -ServicePrincipal -TenantId "your-tenant-id" -ApplicationId "your-app-id" -Credential (New-Object System.Management.Automation.PSCredential("your-app-id", (ConvertTo-SecureString "your-secret" -AsPlainText -Force)))
Hibaelhárítás és Jó Gyakorlatok
Részletes Hibalogok:
A $ErrorActionPreference
változó beállítása Stop
értékre segít a hibák korai felismerésében és kezelésében. Használja a -Debug
és -Verbose
paramétereket a parancsmagokkal a részletesebb kimenetért.
Verziókövetés:
A PowerShell szkripteket is kezelje verziókövető rendszerben (pl. Git), ahogy a többi kódot. Ez biztosítja a változások nyomon követhetőségét és a csapatmunka hatékonyságát.
Idempotencia:
Írjon idempotens szkripteket, azaz olyanokat, amelyek többszöri futtatás esetén is ugyanazt az eredményt produkálják anélkül, hogy hibát generálnának vagy duplikálnák az erőforrásokat. Ellenőrizze az erőforrások létezését a létrehozás előtt, és csak akkor hajtsa végre a műveletet, ha szükséges.
PowerShell profil:
A PowerShell profil ($PROFILE
) fájljában tárolhatja azokat a parancsokat, amelyekre a PowerShell indításakor szükség van, például aliasokat, funkciókat, vagy a gyakran használt változókat.
Összefoglalás
Az Azure erőforrások telepítése és kezelése a PowerShell Az moduljával kulcsfontosságú készség minden felhőmérnök és rendszergazda számára. A modul hatalmas rugalmasságot és vezérlést biztosít, lehetővé téve a komplex infrastruktúrák automatizált, konzisztens és hatékony felügyeletét. A bevezető telepítéstől az ARM sablonok és CI/CD pipeline-ok használatáig a PowerShell az Az modullal egy nélkülözhetetlen eszköz, amely jelentősen növeli a termelékenységet és csökkenti a hibák esélyét az Azure felhőben. Fejlessze szkriptelési készségeit, és fedezze fel az automatizálásban rejlő hatalmas potenciált!
Leave a Reply