Kushandisa PowerShell, mainjiniya uye IT administrators vakabudirira otomatiki mabasa akasiyana-siyana kana vachishanda kwete chete ne-pa-nzvimbo, asiwo nemafu ehupfumi, kunyanya neAzure. Mune zvimwe zviitiko, kushanda kuburikidza nePowerShell kuri nyore uye nekukurumidza kupfuura kushanda kuburikidza neAzure portal. Kutenda kune yayo muchinjiko-chikuva, PowerShell inogona kushandiswa pane chero inoshanda sisitimu.
Kunyangwe iwe uchimhanyisa Ubuntu, Red Hat, kana Windows, PowerShell inogona kukubatsira kudzora zviwanikwa zvegore. Kushandisa module
Muchikamu chino, tichatarisa mashandisiro aungaite PowerShell kudzoreredza VM mugore reAzure, pamwe nekudzima VM nezvimwe zvakabatana nazvo.
Zvinokosha! Usakanganwa kupukuta maoko ako nesanitizer kugadzirira basa:
- Iwe uchada module Azure PowerShell Module - inogona kutorwa kubva kuPowerShell Gallery nemurairo
Install-Module Az
. - Iwe unofanirwa kutendesa mune yeAzure gore uko iyo chaiyo muchina uri kushanda nekumhanyisa murairo
Connect-AzAccount
.
Kutanga, ngatigadzire script inozogadzirisa Azure VM. Ngativhure VS Code uye tichengetedze nyowani PowerShell script inonzi Resize-AzVirtualMachine.ps1 - isu tichawedzera zvidimbu zvekodhi kwairi sezvo muenzaniso unofambira mberi.
Tinokumbira hukuru hweVM huripo
Usati washandura saizi yeVM, iwe unofanirwa kuziva kuti ndeapi masaizi anogamuchirika emakina chaiwo ari muAzure gore. Kuti uite izvi unofanirwa kumhanya murairo Get-AzVMSize
.
Saka kune virtual muchina devvm01 kubva resource group hombororo Tinokumbira masaizi ese anogamuchirika:
Get-AzVMSize -ResourceGroupName dev -VMName devvm01
(Mumatambudziko chaiwo, hongu, pane ResourceGroupName=dev ΠΈ VMName=devvm01 iwe unozotsanangura ako ako madhiri eaya ma parameter.)
Murairo uchadzorera chinhu chakadai:
Aya ese ese anogona saizi sarudzo dzinogona kusetwa kune yakapihwa virtual muchina.
Ngatigadzirise mota
Semuenzaniso, isu tichagadzirisa saizi kune imwe saizi Standard_B1ls - ari panzvimbo yekutanga pane rondedzero iri pamusoro. (Mumashandisirwo chaiwo ehupenyu, hongu, iwe unosarudza chero saizi yaunoda.)
- Kutanga kushandisa murairo
Get-AzVM
isu tinowana ruzivo nezve chinhu chedu (virtual muchina) nekuchichengeta muchinjika$virtualMachine
:$virtualMachine = Get-AzVM -ResourceGroupName dev -VMName devvm01
- Zvadaro tinotora pfuma kubva pachinhu ichi
.HardwareProfile.VmSize
uye isa kukosha kutsva kwaunoda:$virtualMachine.HardwareProfile.VmSize = "Standard_B1ls"
- Uye ikozvino isu tinongoita iyo VM yekuvandudza yekuraira -
Update-AzVm
:Update-AzVM -VM devvm01 -ResourceGroupName dev
- Isu tinoita chokwadi chekuti zvese zvakafamba zvakanaka - kuita izvi, tinokumbira zvakare ruzivo nezve chinhu chedu uye titarise pfuma
$virtualMachine.HardwareProfile
:$virtualMachine = Get-AzVM -ResourceGroupName dev -VMName devvm01 $virtualMachine.HardwareProfile
Kana tichiona ipapo Standard_B1ls - zvinoreva kuti zvinhu zvose zvakarongeka, ukuru hwemotokari hwakachinjwa. Iwe unogona kuenda kumberi uye kuvaka pakubudirira kwako nekugadzirisa akati wandei maVM panguva imwe chete uchishandisa array.
Zvakadini nekudzima VM muAzure?
Nekudzima, hazvisi zvese zviri nyore uye zvakanangana sezvazvingaite. Mushure mezvose, zvinodikanwa kubvisa huwandu hwezviwanikwa zvine chekuita nemuchina uyu, kusanganisira:
- Boot diagnostics kuchengetedza midziyo
- Network pakati
- Public IP kero
- System disk uye blob uko chimiro chayo chinochengetwa
- Data disks
Naizvozvo, isu tichagadzira basa uye toridaidza Remove-AzrVirtualMachine
- uye ichabvisa kwete Azure VM chete, asiwo zvese zviri pamusoro.
Isu tinoenda nenzira yakajairwa uye tanga tawana chinhu chedu (VM) tichishandisa murairo Get-AzVm
. Somuenzaniso, ngaive motokari WINSRV19 kubva resource group MyTestVMs.
Ngatichengetedzei chinhu ichi pamwe chete nemhando dzayo dzese kuita shanduko $vm
:
$vm = Get-AzVm -Name WINSRV19 -ResourceGroupName MyTestVMs
Kubvisa mudziyo une boot diagnostic mafaira
Paunenge uchigadzira VM muAzure, mushandisi anokumbirwawo kugadzira mudziyo wekuchengetera boot diagnostics (bhoot diagnostics mudziyo), kuitira kuti kana paine matambudziko nekubhowa, pane chimwe chinhu chekutendeukira kune kugadzirisa matambudziko. Nekudaro, kana VM yadzimwa, mudziyo uyu unosiiwa kuti uenderere mberi nekuvapo kwayo kusina chinangwa. Ngatigadzirisei mamiriro aya.
- Chekutanga, ngatitsvagei kuti ndeipi account yekuchengetera iyi - pane izvi isu tinoda kuwana iyo nzvimbo
storageUri
muura hwechinhuDiagnosticsProfile
yedu VM. Kune izvi ini ndinoshandisa iyi yenguva dzose kutaura:$diagSa = [regex]::match($vm.DiagnosticsProfile.bootDiagnostics.storageUri, '^http[s]?://(.+?)\.').groups[1].value
- Zvino iwe unofanirwa kutsvaga zita remudziyo, uye nekuda kweizvi iwe unofanirwa kuwana iyo VM ID uchishandisa rairo
Get-AzResource
:if ($vm.Name.Length -gt 9) { $i = 9 } else { $i = $vm.Name.Length - 1 } $azResourceParams = @{ 'ResourceName' = WINSRV 'ResourceType' = 'Microsoft.Compute/virtualMachines' 'ResourceGroupName' = MyTestVMs } $vmResource = Get-AzResource @azResourceParams $vmId = $vmResource.Properties.VmId $diagContainerName = ('bootdiagnostics-{0}-{1}' -f $vm.Name.ToLower().Substring(0, $i), $vmId)
- Tevere, tinowana zita reboka rezvishandiso iro ndiro racho:
$diagSaRg = (Get-AzStorageAccount | where { $_.StorageAccountName -eq $diagSa }).ResourceGroupName
- Uye ikozvino tine zvese zvatinoda kudzima mudziyo nemurairo
Remove-AzStorageContainer
:$saParams = @{ 'ResourceGroupName' = $diagSaRg 'Name' = $diagSa } Get-AzStorageAccount @saParams | Get-AzStorageContainer | where { $_.Name-eq $diagContainerName } | Remove-AzStorageContainer -Force
Kubvisa iyo VM
Zvino ngatibvisei muchina chaiwo, sezvo isu takatogadzira shanduko $vm
nokuda kwechinhu chinoenderana. Zvakanaka, ngatimhanyei murairo Remove-AzVm
:
$null = $vm | Remove-AzVM -Force
Kubvisa network interface uye yeruzhinji IP kero
VM yedu ichine imwe (kana kunyange akati wandei) network interfaces (NICs) - kuvabvisa sezvisina basa, ngatipfuure nepanzvimbo. NetworkInterfaces
yedu VM chinhu uye bvisa iyo NIC nemurairo Remove-AzNetworkInterface
. Kana paine inopfuura imwechete network interface, isu tinoshandisa loop. Panguva imwecheteyo, kune imwe neimwe NIC isu tichatarisa pfuma IpConfiguration
kuona kana iyo interface ine yeruzhinji IP kero. Kana imwe yakawanikwa, tichaibvisa nemurairo Remove-AzPublicIpAddress
.
Heino muenzaniso wekodhi yakadaro, kwatinotarisa kuburikidza neNIC dzese muchiuno, tidzime, uye tarisa kana paine IP yeruzhinji. Kana iripo, patsanura pfuma yacho PublicIpAddress
, tsvaga zita reiyo inoenderana sosi neID uye uibvise:
foreach($nicUri in $vm.NetworkProfile.NetworkInterfaces.Id) {
$nic = Get-AzNetworkInterface -ResourceGroupName $vm.ResourceGroupName -Name $nicUri.Split('/')[-1]
Remove-AzNetworkInterface -Name $nic.Name -ResourceGroupName $vm.ResourceGroupName -Force
foreach($ipConfig in $nic.IpConfigurations) {
if($ipConfig.PublicIpAddress -ne $null) {
Remove-AzPublicIpAddress -ResourceGroupName $vm.ResourceGroupName -Name $ipConfig.PublicIpAddress.Id.Split('/')[-1] -Force
}
}
}
Kubvisa system disk
Iyo OS disk ibhurobhu, iyo ine murairo wekuidzima Remove-AzStorageBlob
- asi usati wazviita, iwe unozofanirwa kuseta inodiwa kukosha kwayo paramita. Kuti uite izvi, kunyanya, iwe unofanirwa kuwana zita rekuchengetedza mudziyo une system disk, wobva waipfuudza kune uyu murairo pamwe chete neakaundi yekuchengetedza inoenderana.
$osDiskUri = $vm.StorageProfile.OSDisk.Vhd.Uri
$osDiskContainerName = $osDiskUri.Split('/')[-2]
$osDiskStorageAcct = Get-AzStorageAccount | where { $_.StorageAccountName -eq $osDiskUri.Split('/')[2].Split('.')[0] }
$osDiskStorageAcct | Remove-AzStorageBlob -Container $osDiskContainerName -Blob $osDiskUri.Split('/')[-1]
Kubvisa iyo System Disk Status Blob
Kuti uite izvi, sezvaungave watofungidzira, tinotora mudziyo wekuchengetera iyo dhisiki inochengeterwa, uye, zvichireva kuti blob kumagumo ine. status
, pfuudza ma parameter anoenderana kune yekudzima kuraira Remove-AzStorageBlob
:
$osDiskStorageAcct | Get-AzStorageBlob -Container $osDiskContainerName -Blob "$($vm.Name)*.status" | Remove-AzStorageBlob
Uye pakupedzisira, tinobvisa data disks
VM yedu inogona kuramba iine madhisiki ane data yaive yakanamatira pairi. Kana dzisiri kudiwa, tinodzidzimawo. Ngatitange tazviongorora StorageProfile
yedu VM uye tsvaga chivakwa Uri
. Kana paine akati wandei dhisiki, isu tinoronga kutenderera maererano URI
. Kune yega yega URI, isu tinowana inoenderana yekuchengetedza account tichishandisa Get-AzStorageAccount
. Wobva wadzvanya iyo yekuchengetedza URI kuti uburitse iro raunoda blob zita uye ripfuure kune yekudzima rairo Remove-AzStorageBlob
pamwe chete neakaundi yekuchengetedza. Izvi ndizvo zvazvichaita senge mukodhi:
if ($vm.DataDiskNames.Count -gt 0) {
foreach ($uri in $vm.StorageProfile.DataDisks.Vhd.Uri) {
$dataDiskStorageAcct = Get-AzStorageAccount -Name $uri.Split('/')[2].Split('.')[0]
$dataDiskStorageAcct | Remove-AzStorageBlob -Container $uri.Split('/')[-2] -Blob $uri.Split('/')[-1]
}
}
Uye zvino "tasvika kumagumo anofadza!" Iye zvino tinoda kuunganidza imwe chete kubva kune izvi zvimedu. Munyori ane mutsa Adam Bertram akasangana nevashandisi pakati uye akazviita iye pachake. Heino chinongedzo kune yekupedzisira script inonzi Bvisa-AzrVirtualMachine.ps1:
β
Ndinovimba unowana aya matipi anoshanda anobatsira mukuchengetedza iwe kushanda nesimba, nguva, uye mari paunenge uchishanda neAzure VMs.
Source: www.habr.com