A’ cleachdadh PowerShell, bidh innleadairean agus luchd-rianachd IT gu soirbheachail a’ dèanamh fèin-ghluasad air diofar ghnìomhan nuair a bhios iad ag obair chan ann a-mhàin san togalach, ach cuideachd le bun-structaran sgòthan, gu sònraichte le Azure. Ann an cuid de chùisean, tha e tòrr nas goireasaiche agus nas luaithe a bhith ag obair tro PowerShell na bhith ag obair tro portal Azure. Taing don nàdar tar-àrd-ùrlar aige, faodar PowerShell a chleachdadh air siostam obrachaidh sam bith.
Co-dhiù a tha thu a’ ruith Ubuntu, Red Hat, no Windows, faodaidh PowerShell do chuideachadh le smachd a chumail air na goireasan sgòthan agad. A 'cleachdadh a' mhodail
San artaigil seo, seallaidh sinn ri mar as urrainn dhut PowerShell a chleachdadh gus VM ath-mheudachadh ann an sgòth Azure, a bharrachd air cuir às do VM agus na nithean co-cheangailte ris.
Cudromach! Na dì-chuimhnich do làmhan a ghlanadh le inneal-glanaidh gus ullachadh airson obair:
- Bidh feum agad air modal Modal Azure PowerShell - faodar a luchdachadh sìos bho PowerShell Gallery leis an àithne
Install-Module Az
. - Feumaidh tu dearbhadh anns an sgòth Azure far a bheil an inneal brìgheil a ’ruith le bhith a’ ruith an àithne
Connect-AzAccount
.
An toiseach, cruthaichidh sinn sgriobt a nì ath-mheudachadh Azure VM. Nach fosgail sinn Còd VS agus sàbhail sinn sgriobt PowerShell ùr ris an canar Ath-mheudachadh-AzVirtualMachine.ps1 - cuiridh sinn pìosan còd ris mar a thèid an eisimpleir air adhart.
Bidh sinn ag iarraidh na meudan VM a tha rim faighinn
Mus atharraich thu meud VM, feumaidh tu faighinn a-mach dè na meudan iomchaidh airson innealan brìgheil ann an sgòth Azure. Gus seo a dhèanamh feumaidh tu an àithne a ruith Get-AzVMSize
.
Mar sin airson an inneal brìgheil devm01 bhon bhuidheann ghoireasan dev Bidh sinn ag iarraidh gach meud iomchaidh:
Get-AzVMSize -ResourceGroupName dev -VMName devvm01
(Ann an fìor dhuilgheadasan, gu dearbh, an àite ResourceGroupName=dev и VMName=devvm01 sònraichidh tu na luachan agad fhèin airson na paramadairean sin.)
Tillidh an àithne rudeigin mar seo:
Tha iad sin uile nan roghainnean meud comasach a dh’ fhaodar a shuidheachadh airson inneal brìgheil sònraichte.
Leig leinn an càr ath-mheudachadh
Mar eisimpleir, bidh sinn ag atharrachadh meud gu meud ùr Coitcheann_B1ls - tha e sa chiad àite air an liosta gu h-àrd. (Ann an tagraidhean fìor, gu dearbh, bidh thu a’ taghadh ge bith dè am meud a tha a dhìth ort.)
- An toiseach a 'cleachdadh an àithne
Get-AzVM
gheibh sinn fiosrachadh mun nì againn (inneal mas-fhìor) le bhith ga stòradh ann an caochladair$virtualMachine
:$virtualMachine = Get-AzVM -ResourceGroupName dev -VMName devvm01
- An uairsin bheir sinn an t-seilbh bhon nì seo
.HardwareProfile.VmSize
agus suidhich an luach ùr a tha thu ag iarraidh:$virtualMachine.HardwareProfile.VmSize = "Standard_B1ls"
- Agus a-nis bidh sinn dìreach a’ cur an gnìomh an àithne ùrachadh VM -
Update-AzVm
:Update-AzVM -VM devvm01 -ResourceGroupName dev
- Bidh sinn a’ dèanamh cinnteach gun deach a h-uile càil gu math - gus seo a dhèanamh, bidh sinn a-rithist ag iarraidh fiosrachadh mun nì againn agus a’ coimhead air an togalach
$virtualMachine.HardwareProfile
:$virtualMachine = Get-AzVM -ResourceGroupName dev -VMName devvm01 $virtualMachine.HardwareProfile
Ma chì sinn ann Coitcheann_B1ls - tha sin a 'ciallachadh gu bheil a h-uile dad ann an òrdugh, tha meud a' chàir air atharrachadh. Faodaidh tu a dhol nas fhaide agus togail air do shoirbheachas le bhith ag ath-mheudachadh grunn VM aig an aon àm a’ cleachdadh raon.
Dè mu dheidhinn cuir às do VM ann an Azure?
Le sguabadh às, chan eil a h-uile dad cho sìmplidh agus cho sìmplidh ‘s a dh’ fhaodadh e a bhith. Às deidh na h-uile, feumar grunn ghoireasan co-cheangailte ris an inneal seo a thoirt air falbh, nam measg:
- Innealan stòraidh boot diagnosachd
- Eadar-aghaidh lìonra
- Seòlaidhean IP poblach
- Diosg siostam agus blob far a bheil an inbhe aice air a stòradh
- Diosg dàta
Mar sin, cruthaichidh sinn gnìomh agus canaidh sinn e Remove-AzrVirtualMachine
- agus sguabaidh e às chan ann a-mhàin Azure VM, ach cuideachd a h-uile rud gu h-àrd.
Bidh sinn a’ dol an dòigh àbhaisteach agus an-toiseach a’ faighinn ar nì (VM) a’ cleachdadh an àithne Get-AzVm
. Mar eisimpleir, leig leis gur e càr a th’ ann WINSRV19 bhon bhuidheann ghoireasan MyTestVMs.
Sàbhailidh sinn an nì seo còmhla ris na feartan aige gu caochladair $vm
:
$vm = Get-AzVm -Name WINSRV19 -ResourceGroupName MyTestVMs
Thoir air falbh an soitheach le faidhlichean boot diagnostic
Nuair a chruthaicheas iad VM ann an Azure, thathar ag iarraidh air an neach-cleachdaidh cuideachd inneal a chruthachadh airson diagnosachd bròg a stòradh (soitheach diagnosachd boot), gus am bi duilgheadasan ann le bròg, gu bheil rudeigin ri tionndadh airson fuasgladh cheistean. Ach, nuair a thèid an VM a dhubhadh às, tha an soitheach seo air fhàgail gus a bhith beò gun adhbhar a-nis. Leig leinn an suidheachadh seo a cheartachadh.
- An toiseach, leig dhuinn faighinn a-mach dè an cunntas stòraidh a bhuineas don inneal seo - airson seo feumaidh sinn an togalach a lorg
storageUri
ann an innibh an nìDiagnosticsProfile
ar VM. Airson seo bidh mi a’ cleachdadh an abairt àbhaisteach seo:$diagSa = [regex]::match($vm.DiagnosticsProfile.bootDiagnostics.storageUri, '^http[s]?://(.+?)\.').groups[1].value
- A-nis feumaidh tu faighinn a-mach ainm an t-soithich, agus airson seo feumaidh tu an ID VM fhaighinn a ’cleachdadh an àithne
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)
- An ath rud, gheibh sinn ainm a’ bhuidheann ghoireasan dham buin an soitheach:
$diagSaRg = (Get-AzStorageAccount | where { $_.StorageAccountName -eq $diagSa }).ResourceGroupName
- Agus a-nis tha a h-uile dad a dh ’fheumas sinn gus an soitheach a dhubhadh às leis an àithne
Remove-AzStorageContainer
:$saParams = @{ 'ResourceGroupName' = $diagSaRg 'Name' = $diagSa } Get-AzStorageAccount @saParams | Get-AzStorageContainer | where { $_.Name-eq $diagContainerName } | Remove-AzStorageContainer -Force
A 'toirt air falbh an VM
A-nis sguabaidh sinn às an inneal brìgheil fhèin, leis gu bheil sinn air caochladair a chruthachadh mu thràth $vm
airson an nì co-fhreagarrach. Uill, leig leinn an àithne a ruith Remove-AzVm
:
$null = $vm | Remove-AzVM -Force
A’ toirt air falbh an eadar-aghaidh lìonraidh agus seòladh IP poblach
Tha aon (no eadhon grunn) eadar-aghaidh lìonra (NICn) aig an VM againn - gus an toirt air falbh mar rud nach eil riatanach, rachamaid tron togalach NetworkInterfaces
an nì VM againn agus cuir às don NIC leis an àithne Remove-AzNetworkInterface
. Ma tha barrachd air aon eadar-aghaidh lìonraidh ann, cleachdaidh sinn lùb. Aig an aon àm, airson gach NIC nì sinn sgrùdadh air an togalach IpConfiguration
gus faighinn a-mach a bheil seòladh IP poblach aig an eadar-aghaidh. Ma lorgar fear, bheir sinn air falbh e leis an àithne Remove-AzPublicIpAddress
.
Seo eisimpleir de chòd dìreach mar sin, far am bi sinn a’ coimhead tro na NIC gu lèir ann an lùb, gan cuir às, agus a’ dèanamh cinnteach a bheil IP poblach ann. Ma tha, dèan sgrùdadh air an togalach PublicIpAddress
, lorg ainm a’ ghoireas fhreagarrach le ID agus cuir às dha:
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
}
}
}
A 'toirt air falbh an diosg siostam
Is e blob a th’ anns an diosc OS, agus tha àithne ann airson a sguabadh às Remove-AzStorageBlob
- ach mus cuir thu an gnìomh e, feumaidh tu na luachan riatanach a shuidheachadh airson na crìochan aige. Gus seo a dhèanamh, gu sònraichte, feumaidh tu ainm an t-soithich stòraidh anns a bheil diosc an t-siostaim fhaighinn, agus an uairsin a chuir chun àithne seo còmhla ris a’ chunntas stòraidh co-fhreagarrach.
$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]
A' toirt air falbh an t-Siostam Inbhe Inbhe Blob
Gus seo a dhèanamh, mar a shaoileadh tu mu thràth, bidh sinn a’ toirt a’ ghobhar-stòraidh anns a bheil an diosc seo air a stòradh, agus, a’ ciallachadh gu bheil am blob aig an deireadh status
, cuir seachad na paramadairean co-fhreagarrach chun an àithne sguabaidh às Remove-AzStorageBlob
:
$osDiskStorageAcct | Get-AzStorageBlob -Container $osDiskContainerName -Blob "$($vm.Name)*.status" | Remove-AzStorageBlob
Agus mu dheireadh, bheir sinn air falbh na diosgan dàta
Dh’ fhaodadh diosgan a bhith aig an VM againn fhathast le dàta a bha ceangailte ris. Mura h-eil feum orra, sguabaidh sinn às iad cuideachd. Dèanamaid sgrùdadh air an toiseach StorageProfile
ar VM agus lorg an togalach Uri
. Ma tha grunn dhioscaichean ann, bidh sinn a’ cur cearcall air dòigh a rèir URI
. Airson gach URI, lorgaidh sinn an cunntas stòraidh co-fhreagarrach a’ cleachdadh Get-AzStorageAccount
. An uairsin rannsaich an URI stòraidh gus an t-ainm blob a tha thu ag iarraidh a thoirt a-mach agus cuir chun àithne sguab às Remove-AzStorageBlob
còmhla ri cunntas stòraidh. Seo mar a bhiodh e coltach sa chòd:
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]
}
}
Agus a-nis “tha sinn air an deireadh sona a ruighinn!” A-nis feumaidh sinn aon slàn a chruinneachadh bho na pìosan sin uile. Choinnich an t-ùghdar coibhneil Adam Bertram ris an luchd-cleachdaidh letheach slighe agus rinn e e fhèin. Seo ceangal ris an sgriobt mu dheireadh ris an canar Thoir air falbh-AzrVirtualMachine.ps1:
→
Tha mi an dòchas gum bi na molaidhean practaigeach seo feumail dhut gus oidhirp, ùine agus airgead a shàbhaladh dhut nuair a bhios tu ag obair le Azure VMs.
Source: www.habr.com