Ho sebelisa PowerShell, baenjiniere le batsamaisi ba IT ka katleho ba iketsetsa mesebetsi e fapaneng ha ba sebetsa eseng feela ka meaho, empa hape le ka lisebelisoa tsa maru, haholo-holo ka Azure. Maemong a mang, ho sebetsa ka PowerShell ho bonolo ebile ho potlakile ho feta ho sebetsa ka portal ea Azure. Ka lebaka la sebopeho sa eona sa sethala, PowerShell e ka sebelisoa ho sistimi efe kapa efe ea ts'ebetso.
Hore na o sebelisa Ubuntu, Red Hat, kapa Windows, PowerShell e ka u thusa ho laola lisebelisoa tsa hau tsa maru. Ho sebelisa module
Sehloohong sena, re tla sheba hore na u ka sebelisa PowerShell joang ho fetola boholo ba VM lerung la Azure, hammoho le ho hlakola VM le lintho tse amanang le eona.
Bohlokoa! Se ke oa lebala ho hlakola matsoho a hau ka sanitizer ho itokisetsa mosebetsi:
- O tla hloka mojule Azure PowerShell module - e ka khoasolloa ho PowerShell Gallery ka taelo
Install-Module Az
. - U hloka ho netefatsa ka leru la Azure moo mochini o sebetsang o sebetsang ka ho tsamaisa taelo
Connect-AzAccount
.
Taba ea pele, ha re theheng sengoloa se tla fetola boholo ba VM ea Azure. Ha re bule VS Code mme re boloke mongolo o mocha oa PowerShell o bitsoang Resize-AzVirtualMachine.ps1 - re tla eketsa likotoana tsa khoutu ho eona ha mohlala o ntse o tsoela pele.
Re kopa boholo bo fumanehang ba VM
Pele o fetola boholo ba VM, o hloka ho fumana hore na boholo bo amohelehang ke bofe bakeng sa mechini e fumanehang ka har'a leru la Azure. Ho etsa sena o hloka ho tsamaisa taelo Get-AzVMSize
.
Kahoo bakeng sa mochini o hlakileng devvm01 ho tsoa sehlopheng sa lisebelisoa senatla Re kopa boholo bohle bo amohelehang:
Get-AzVMSize -ResourceGroupName dev -VMName devvm01
(Mathateng a nnete, ehlile, ho fapana le ResourceGroupName=dev и VMName=devvm01 o tla hlakisa boleng ba hau bakeng sa liparamente tsena.)
Taelo e tla khutlisa ntho e kang ena:
Tsena ke likhetho tsa boholo tse ka bang teng tse ka hlophisoang mochini o fanoeng oa nnete.
Ha re fetole boholo ba koloi
Ka mohlala, re tla fetola boholo ho saese e ncha Standard_B1ls - o maemong a pele lethathamong le ka holimo. (Lits'ebetsong tsa nnete, ehlile, u khetha boholo bofe kapa bofe boo u bo hlokang.)
- Qala ka ho sebelisa taelo
Get-AzVM
re fumana tlhahisoleseding mabapi le ntho ea rona (virtual machine) ka ho e boloka ka ho feto-fetoha$virtualMachine
:$virtualMachine = Get-AzVM -ResourceGroupName dev -VMName devvm01
- Ebe re nka thepa nthong ena
.HardwareProfile.VmSize
ebe u beha boleng bo bocha boo u bo batlang:$virtualMachine.HardwareProfile.VmSize = "Standard_B1ls"
- 'Me joale re etsa feela taelo ea ntlafatso ea VM -
Update-AzVm
:Update-AzVM -VM devvm01 -ResourceGroupName dev
- Re etsa bonnete ba hore ntho e 'ngoe le e' ngoe e tsamaile hantle - ho etsa sena, re boetse re kopa tlhahisoleseding mabapi le ntho ea rona le ho sheba thepa
$virtualMachine.HardwareProfile
:$virtualMachine = Get-AzVM -ResourceGroupName dev -VMName devvm01 $virtualMachine.HardwareProfile
Haeba re bona moo Standard_B1ls - ho bolela hore ntho e 'ngoe le e' ngoe e hlophisitsoe, boholo ba koloi bo fetotsoe. U ka ea hole le ho aha katlehong ea hau ka ho fetola boholo ba li-VM tse 'maloa ka nako e le ngoe u sebelisa lethathamo.
Ho thoe'ng ka ho hlakola VM ho Azure?
Ka ho hlakola, ha se ntho e 'ngoe le e' ngoe e bonolo le e otlolohileng joalokaha e ka bonahala. Ntle le moo, hoa hlokahala ho tlosa lisebelisoa tse 'maloa tse amanang le mochini ona, ho kenyelletsa:
- Boot diagnostics polokelo lijana
- Marang-rang a marang-rang
- Liaterese tsa IP tsa sechaba
- Sistimi ea disk le blob moo boemo ba eona bo bolokiloeng teng
- Li-disks tsa data
Ka hona, re tla theha ts'ebetso ebe re e bitsa Remove-AzrVirtualMachine
- mme e ke ke ea hlakola feela Azure VM, empa le tsohle tse ka holimo.
Re tsamaea ka tsela e tloaelehileng 'me pele re fumana ntho ea rona (VM) re sebelisa taelo Get-AzVm
. Ka mohlala, e ke e be koloi WINSRV19 ho tsoa sehlopheng sa lisebelisoa MyTestVMs.
Ha re bolokeng ntho ena hammoho le thepa eohle ea eona hore e be ntho e feto-fetohang $vm
:
$vm = Get-AzVm -Name WINSRV19 -ResourceGroupName MyTestVMs
Ho tlosa setshelo ka lifaele tsa tlhahlobo ea boot
Ha u theha VM ho Azure, mosebelisi o boetse o kopuoa ho etsa setshelo bakeng sa ho boloka tlhahlobo ea boot (setshelo sa tlhahlobo ea boot), e le hore haeba ho na le mathata ka ho qalisa, ho na le seo u ka retelehelang ho sona bakeng sa ho rarolla mathata. Leha ho le joalo, ha VM e hlakotsoe, setshelo sena se tloheloa hore se tsoele pele ho ba teng ha hona joale ho se nang morero. Ha re lokiseng boemo bona.
- Taba ea pele, a re fumane hore na sets'oants'o sena ke sa akhaonteng efe ea polokelo - bakeng sa sena re hloka ho fumana thepa
storageUri
mala a nthoDiagnosticsProfile
VM ea rona. Bakeng sa sena ke sebelisa polelo ena e tloaelehileng:$diagSa = [regex]::match($vm.DiagnosticsProfile.bootDiagnostics.storageUri, '^http[s]?://(.+?)\.').groups[1].value
- Joale o hloka ho fumana lebitso la setshelo, mme bakeng sa sena o hloka ho fumana ID ea VM o sebelisa taelo
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)
- E latelang, re fumana lebitso la sehlopha sa lisebelisoa seo setshelo e leng sa sona:
$diagSaRg = (Get-AzStorageAccount | where { $_.StorageAccountName -eq $diagSa }).ResourceGroupName
- 'Me joale re na le sohle seo re se hlokang ho hlakola setshelo ka taelo
Remove-AzStorageContainer
:$saParams = @{ 'ResourceGroupName' = $diagSaRg 'Name' = $diagSa } Get-AzStorageAccount @saParams | Get-AzStorageContainer | where { $_.Name-eq $diagContainerName } | Remove-AzStorageContainer -Force
Ho tlosa VM
Joale ha re hlakole mochini o sebetsang ka bo oona, kaha re se re thehile phetoho $vm
bakeng sa ntho e tsamaellanang le yona. Hantle, ha re tsamaiseng taelo Remove-AzVm
:
$null = $vm | Remove-AzVM -Force
Ho tlosa marang-rang le aterese ea IP ea sechaba
VM ea rona e ntse e na le sebaka se le seng (kapa tse 'maloa) tsa marang-rang (NICs) - ho li tlosa joalo ka ha ho sa hlokahale, ha re feteleng thepa. NetworkInterfaces
ntho ea rona ea VM ebe u hlakola NIC ka taelo Remove-AzNetworkInterface
. Haeba ho na le marang-rang a fetang bonngoe, re sebelisa loop. Ka nako e ts'oanang, bakeng sa NIC ka 'ngoe re tla hlahloba thepa IpConfiguration
ho fumana hore na sebopeho se na le aterese ea IP ea sechaba. Haeba e fumanoa, re tla e tlosa ka taelo Remove-AzPublicIpAddress
.
Mona ke mohlala oa khoutu e joalo, moo re shebang li-NIC tsohle ka loop, re li tlose, 'me re hlahlobe hore na ho na le IP ea sechaba. Haeba ho na le, joale hlahloba thepa PublicIpAddress
, fumana lebitso la mohlodi o tsamaisanang le ID mme o le tlose:
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
}
}
}
Ho tlosa disk ea tsamaiso
The OS disk ke blob, eo ho eona ho nang le taelo ea ho e hlakola Remove-AzStorageBlob
- empa pele o e phetha, o tla hloka ho beha litekanyetso tse hlokahalang bakeng sa liparamente tsa eona. Ho etsa sena, haholo-holo, o hloka ho fumana lebitso la setshelo sa polokelo se nang le disk ea tsamaiso, ebe o e fetisetsa ho taelo ena hammoho le akhaonto e lumellanang ea polokelo.
$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]
Ho tlosa Blob ea Boemo ba Disk
Ho etsa sena, joalo ka ha u se u ntse u nahanne, re nka setshelo sa polokelo moo disk ena e bolokiloeng teng, 'me, ho bolelang hore blob qetellong e na le. status
, fetisa litekanyo tse lumellanang le taelo ea ho hlakola Remove-AzStorageBlob
:
$osDiskStorageAcct | Get-AzStorageBlob -Container $osDiskContainerName -Blob "$($vm.Name)*.status" | Remove-AzStorageBlob
'Me qetellong, re tlosa li-disk tsa data
VM ea rona e ntse e ka ba le li-disk tse nang le data tse neng li hokeletsoe ho eona. Haeba li sa hlokahale, le rona re tla li hlakola. Ha re e hlalose pele StorageProfile
VM ea rona mme re fumane thepa Uri
. Haeba ho na le li-disk tse 'maloa, re hlophisa potoloho ho ea ka URI
. Bakeng sa URI e 'ngoe le e' ngoe, re tla fumana ak'haonte e lumellanang ea polokelo e sebelisoa Get-AzStorageAccount
. Ebe u hlalosa URI ea polokelo ho ntša lebitso le lakatsehang la blob ebe o le fetisetsa ho taelo ea ho hlakola Remove-AzStorageBlob
hammoho le akhaonto ea polokelo. Sena ke kamoo e neng e tla shebahala kateng ka khoutu:
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]
}
}
'Me joale "re fihlile pheletsong e monate!" Hona joale re hloka ho kopanya karolo e le 'ngoe ho tloha likhechana tsena kaofela. Sengoli se mosa Adam Bertram o ile a kopana le basebelisi halofo mme a iketsetsa eona. Mona ke sehokelo sa mongolo oa ho qetela se bitsoang Tlosa-AzrVirtualMachine.ps1:
→
Ke tšepa hore u tla fumana malebela ana a sebetsang a thusa ho u bolokela boiteko, nako le chelete ha u sebetsa le li-VM tsa Azure.
Source: www.habr.com