Ukusebenzisa i-PowerShell, onjiniyela nabaphathi be-IT ngokuphumelelayo bashintsha imisebenzi ehlukahlukene lapho besebenza hhayi kuphela endaweni, kodwa futhi nengqalasizinda yamafu, ikakhulukazi nge-Azure. Kwezinye izimo, ukusebenza nge-PowerShell kulula kakhulu futhi kuyashesha kunokusebenza ngengosi ye-Azure. Ngenxa yemvelo yayo ye-cross-platform, i-PowerShell ingasetshenziswa kunoma iyiphi isistimu yokusebenza.
Kungakhathaliseki ukuthi usebenzisa i-Ubuntu, i-Red Hat, noma i-Windows, i-PowerShell ingakusiza ukulawula izinsiza zakho zamafu. Ukusebenzisa module
Kulesi sihloko, sizobheka ukuthi ungasebenzisa kanjani i-PowerShell ukuze ushintshe usayizi we-VM efwini le-Azure, futhi ususe i-VM nezinto ezihambisana nayo.
Kubalulekile! Ungakhohlwa ukusula izandla zakho ngesanitizer ukuze ulungiselele umsebenzi:
- Uzodinga imojuli I-Azure PowerShell Module - ingalandwa ku-PowerShell Gallery ngomyalo
Install-Module Az
. - Udinga ukufakazela ubuqiniso efwini le-Azure lapho umshini obonakalayo usebenza khona ngokusebenzisa umyalo
Connect-AzAccount
.
Okokuqala, ake sakhe iskripthi esizoshintsha usayizi we-Azure VM. Masivule Ikhodi ye-VS futhi silondoloze umbhalo omusha we-PowerShell obizwa Resize-AzVirtualMachine.ps1 - sizokwengeza izingcezu zekhodi kuyo njengoba isibonelo siqhubeka.
Sicela osayizi abakhona be-VM
Ngaphambi kokuthi ushintshe usayizi we-VM, udinga ukuthola ukuthi bayini osayizi abamukelekayo bemishini ebonakalayo efwini le-Azure. Ukuze wenze lokhu udinga ukusebenzisa umyalo Get-AzVMSize
.
Ngakho ngomshini we-virtual devm01 kusuka eqenjini lezinsiza dev Sicela bonke abangaba osayizi abamukelekayo:
Get-AzVMSize -ResourceGroupName dev -VMName devvm01
(Ezinkingeni zangempela, kunjalo, esikhundleni sokuthi ResourceGroupName=dev ΠΈ VMName=devvm01 uzocacisa amanani akho kulawa mapharamitha.)
Umyalo uzobuyisela into efana nale:
Lezi yizo zonke izinketho zosayizi okungenzeka zisethelwe umshini othile obonakalayo.
Masishintshe usayizi wemoto
Isibonelo, sizoshintsha usayizi sibe usayizi omusha Standard_B1ls - usendaweni yokuqala ohlwini olungenhla. (Ezinhlelweni zangempela zokuphila, kunjalo, ukhetha noma yimuphi usayizi owudingayo.)
- Okokuqala sebenzisa umyalo
Get-AzVM
sithola ulwazi mayelana nento yethu (umshini obonakalayo) ngokuyigcina kokuguquguqukayo$virtualMachine
:$virtualMachine = Get-AzVM -ResourceGroupName dev -VMName devvm01
- Bese sithatha impahla kule nto
.HardwareProfile.VmSize
bese usetha inani elisha olifunayo:$virtualMachine.HardwareProfile.VmSize = "Standard_B1ls"
- Futhi manje simane senza umyalo wokuvuselela i-VM -
Update-AzVm
:Update-AzVM -VM devvm01 -ResourceGroupName dev
- Senza isiqiniseko sokuthi konke kuhambe kahle - ukwenza lokhu, siphinde sicele ulwazi mayelana nento yethu futhi sibheke indawo
$virtualMachine.HardwareProfile
:$virtualMachine = Get-AzVM -ResourceGroupName dev -VMName devvm01 $virtualMachine.HardwareProfile
Uma sibona lapho Standard_B1ls - lokho kusho ukuthi konke kuhamba ngohlelo, usayizi wemoto ushintshiwe. Ungadlulela phambili futhi wakhele empumelelweni yakho ngokushintsha usayizi wama-VM amaningana ngesikhathi esisodwa usebenzisa uhlu.
Kuthiwani ngokususa i-VM e-Azure?
Ngokususa, akuyona yonke into elula futhi eqondile njengoba kungase kubonakale. Ngemuva kwakho konke, kuyadingeka ukususa inani lezinsiza ezihambisana nalo mshini, okuhlanganisa:
- Qalisa iziqukathi zokugcina zokuxilonga
- Izindawo zokuxhumana zenethiwekhi
- Amakheli e-IP omphakathi
- Idiski yesistimu ne-blob lapho isimo sayo sigcinwa khona
- Amadiski edatha
Ngakho-ke, sizodala umsebenzi futhi sikubize Remove-AzrVirtualMachine
- futhi ngeke isuse i-Azure VM kuphela, kodwa futhi nakho konke okungenhla.
Sihamba ngendlela evamile futhi siqale sithole into yethu (VM) sisebenzisa umyalo Get-AzVm
. Isibonelo, makube yimoto WINSRV19 kusuka eqenjini lezinsiza I-MyTestVMs.
Masigcine le nto kanye nazo zonke izici zayo zibe okuguquguqukayo $vm
:
$vm = Get-AzVm -Name WINSRV19 -ResourceGroupName MyTestVMs
Ukukhipha isiqukathi esinamafayela okuxilonga ekuqaliseni
Lapho udala i-VM ku-Azure, umsebenzisi ubuye acelwe ukuthi enze isitsha sokugcina ukuxilongwa kwe-boot (isitsha sokuxilonga i-boot), ukuze kuthi uma kunezinkinga ngokubhutha, kube nokuthile ongaphendukela kukho ukuze kuxazululwe izinkinga. Nokho, lapho i-VM isuswa, lesi siqukathi sishiywa ukuze siqhubeke nokuba khona kwaso okungenanjongo. Asilungise lesi simo.
- Okokuqala, ake sithole ukuthi lesi sitsha singesayiphi i-akhawunti yokugcina - kulokhu sidinga ukuthola indawo
storageUri
emathunjini entoDiagnosticsProfile
yethu VM. Kulokhu ngisebenzisa lesi sisho esijwayelekile:$diagSa = [regex]::match($vm.DiagnosticsProfile.bootDiagnostics.storageUri, '^http[s]?://(.+?)\.').groups[1].value
- Manje udinga ukuthola igama lesiqukathi, futhi kulokhu udinga ukuthola i-VM ID usebenzisa umyalo
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)
- Okulandelayo, sithola igama leqembu lezinsiza lapho isiqukathi esiyingxenye yalo:
$diagSaRg = (Get-AzStorageAccount | where { $_.StorageAccountName -eq $diagSa }).ResourceGroupName
- Futhi manje sinakho konke esikudingayo ukususa isitsha ngomyalo
Remove-AzStorageContainer
:$saParams = @{ 'ResourceGroupName' = $diagSaRg 'Name' = $diagSa } Get-AzStorageAccount @saParams | Get-AzStorageContainer | where { $_.Name-eq $diagContainerName } | Remove-AzStorageContainer -Force
Ukukhipha i-VM
Manje ake sisuse umshini obonakalayo ngokwawo, njengoba sesivele sidale okuguquguqukayo $vm
entweni ehambisanayo. Awu, asigijime umyalo Remove-AzVm
:
$null = $vm | Remove-AzVM -Force
Ukukhipha isixhumi esibonakalayo senethiwekhi nekheli le-IP lomphakathi
I-VM yethu isenokuxhumana kwenethiwekhi okukodwa (noma okuningana) (NICs) - ukukususa njengokungadingeki, asidlule endaweni. NetworkInterfaces
into yethu ye-VM bese ususa i-NIC ngomyalo Remove-AzNetworkInterface
. Esimeni lapho kune-interface yenethiwekhi engaphezu kweyodwa, sisebenzisa iluphu. Ngesikhathi esifanayo, ku-NIC ngayinye sizohlola indawo IpConfiguration
ukunquma ukuthi isixhumi esibonakalayo sinekheli le-IP lomphakathi. Uma kutholakala eyodwa, sizoyisusa ngomyalo Remove-AzPublicIpAddress
.
Nasi isibonelo sekhodi enjalo, lapho sibheka kuwo wonke ama-NIC ku-loop, siwasuse, futhi sihlole ukuthi ikhona yini i-IP yomphakathi. Uma ikhona, hlaziya indawo PublicIpAddress
, thola igama lensiza ehambisanayo nge-ID bese uyisusa:
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
}
}
}
Ukukhipha idiski yesistimu
I-OS disk iyi-blob, okukhona umyalo wokuyisusa Remove-AzStorageBlob
- kodwa ngaphambi kokukwenza, uzodinga ukusetha amanani adingekayo emingcele yawo. Ukuze wenze lokhu, ikakhulukazi, udinga ukuthola igama lesitsha sokugcina esiqukethe idiski yesistimu, bese uyidlulisela kulo myalo kanye ne-akhawunti ehambisanayo yokugcina.
$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]
Ikhipha Ibhulobhu Yesimo Sediski
Ukwenza lokhu, njengoba cishe usuqagele kakade, sithatha isitsha sokugcina lapho kugcinwa khona le diski, futhi, okusho ukuthi i-blob ekugcineni iqukethe. status
, dlulisela imingcele ehambisanayo kumyalo wokususa Remove-AzStorageBlob
:
$osDiskStorageAcct | Get-AzStorageBlob -Container $osDiskContainerName -Blob "$($vm.Name)*.status" | Remove-AzStorageBlob
Futhi ekugcineni, sisusa amadiski edatha
I-VM yethu isengaba namadiski anedatha enamathiselwe kuwo. Uma zingadingeki, sizozisusa nazo. Asiyihlaziye kuqala StorageProfile
VM yethu futhi uthole indawo Uri
. Uma kukhona amadiski amaningana, sihlela umjikelezo ngokusho URI
. Nge-URI ngayinye, sizothola i-akhawunti yesitoreji ehambisanayo kusetshenziswa Get-AzStorageAccount
. Bese uhlaziya i-URI yesitoreji ukuze ukhiphe igama le-blob oyifunayo bese ulidlulisela kumyalo wokususa Remove-AzStorageBlob
kanye ne-akhawunti yokugcina. Nakhu okuzobukeka ngayo ngekhodi:
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]
}
}
Futhi manje βsifinyelele isiphetho esijabulisayo!β Manje sidinga ukuhlanganisa iqoqo elilodwa kuzo zonke lezi zingcezu. Umbhali onomusa u-Adam Bertram wahlangana nabasebenzisi phakathi futhi wakwenza ngokwakhe. Nasi isixhumanisi seskripthi sokugcina esibizwa Susa-AzrVirtualMachine.ps1:
β
Ngithemba ukuthi uthola lawa macebiso asebenzayo ewusizo ekongeni umzamo, isikhathi, kanye nemali lapho usebenza nama-Azure VM.
Source: www.habr.com