Suia ma tapeina Azure VM e faʻaaoga ai le PowerShell

O le faʻaaogaina o le PowerShell, e faʻatautaia ma le manuia e inisinia ma IT faʻatonu galuega eseese pe a galulue e le gata i luga ole fale, ae faʻapea foʻi ma atinaʻe ao, aemaise ile Azure. I nisi tulaga, o le galue i le PowerShell e sili atu ona faigofie ma vave nai lo le galue ile Azure portal. Fa'afetai i lona uiga fa'alava, PowerShell e mafai ona fa'aoga i so'o se faiga fa'aoga.

Pe o e fa'aogaina le Ubuntu, Red Hat, po'o le Windows, e mafai e le PowerShell ona fesoasoani ia te oe e pulea au punaoa ao. Fa'aaogaina o le module Azure PowerShell, mo se faʻataʻitaʻiga, e mafai ona e setiina soʻo se meatotino o masini masini.

I lenei tusiga, o le a tatou vaʻavaʻai pe faʻafefea ona e faʻaogaina le PowerShell e toe faʻaleleia ai se VM i le ao Azure, faʻapea foʻi ma le tapeina o se VM ma ana mea faʻatatau.

Suia ma tapeina Azure VM e faʻaaoga ai le PowerShell

Taua! Aua nei galo e solo ou lima ile sanitizer e sauni ai mo galuega:

  • E te mana'omia se module Azure PowerShell Module - e mafai ona la'uina mai le PowerShell Gallery ma le fa'atonuga Install-Module Az.
  • E tatau ona e faʻamaonia i le Azure ao o loʻo taʻavale ai le masini masini e ala i le faʻatonuina o le poloaiga Connect-AzAccount.

Muamua, seʻi o tatou fatuina se tusitusiga e toe faʻafouina se Azure VM. Tatou tatala le VS Code ma sefe se tusitusiga fou PowerShell ua ta'ua Toe Fua-AzVirtualMachine.ps1 - o le a matou faʻaopoopoina fasi code i ai aʻo faʻaauau le faʻataʻitaʻiga.

Matou te talosagaina le tele o VM avanoa

Ae e te leʻi suia le tele o le VM, e tatau ona e suʻeina poʻo le a le tele e taliaina mo masini faʻapitoa i le ao Azure. Ina ia faia lenei mea e te manaʻomia e faʻatautaia le poloaiga Get-AzVMSize.

O lea mo le masini komepiuta devvm01 mai le vaega o punaoa dev Matou te talosagaina lapopoa uma e mafai ona talia:

Get-AzVMSize -ResourceGroupName dev -VMName devvm01

(I faafitauli moni, ioe, nai lo ResourceGroupName=dev и VMName=devvm01 e te faʻamaonia au lava tau mo nei faʻamau.)

O le poloaiga o le a toe faafoi mai se mea e pei o lenei:

Suia ma tapeina Azure VM e faʻaaoga ai le PowerShell

O filifiliga lapopoa uma ia e mafai ona fa'atulaga mo se masini masini.

Sei o tatou sui le taavale

Mo se faʻataʻitaʻiga, o le a tatou toe faʻaleleia i se lapoʻa fou Tulaga_B1ls - o ia i le tulaga muamua i le lisi o loʻo i luga. (I mea moni o le olaga, ioe, e te filifilia soʻo se tele e te manaʻomia.)

  1. Muamua faaaoga le poloaiga Get-AzVM matou te maua faʻamatalaga e uiga i la matou mea (masini virtual) e ala i le teuina i se fesuiaiga $virtualMachine:
    $virtualMachine = Get-AzVM -ResourceGroupName dev -VMName devvm01
  2. Ona tatou ave lea o le meatotino mai lenei mea .HardwareProfile.VmSize ma seti le tau fou e manaʻomia:
    $virtualMachine.HardwareProfile.VmSize = "Standard_B1ls"
  3. Ma o lenei ua na ona matou faʻatinoina le VM update command - Update-AzVm:
    Update-AzVM -VM devvm01 -ResourceGroupName dev
  4. Matou te faʻamautinoa o loʻo lelei mea uma - e fai lenei mea, matou te toe talosagaina faʻamatalaga e uiga i la matou mea ma vaʻai i le meatotino $virtualMachine.HardwareProfile:
    $virtualMachine = Get-AzVM -ResourceGroupName dev -VMName devvm01
    $virtualMachine.HardwareProfile

Afai tatou te vaai i ai Tulaga_B1ls - o lona uiga o loʻo lelei mea uma, ua suia le tele o le taʻavale. E mafai ona e alu atili ma fausia i luga o lou manuia e ala i le suia o le tele o VM i le taimi e tasi e faʻaaoga ai se laina.

Ae faapefea le tapeina o se VM i Azure?

Faatasi ai ma le tapeina, e le o mea uma e faigofie ma tuusao e pei ona foliga mai ai. A uma mea uma, e tatau ona aveese le tele o punaoa e fesoʻotaʻi ma lenei masini, e aofia ai:

  • Va'a fa'ata'ita'iga koneteina teuina
  • Fesoʻotaiga i fesoʻotaiga
  • tuatusi IP lautele
  • System disk ma blob lea e teu ai lona tulaga
  • Tisiki fa'amaumauga

O le mea lea, o le a matou faia se galuega ma faʻaigoaina Remove-AzrVirtualMachine - ma o le a tapeina e le gata Azure VM, ae faʻapea foʻi mea uma o loʻo i luga.

Matou te alu i le auala masani ma muamua maua la matou mea (VM) faʻaaoga le poloaiga Get-AzVm. Mo se faataitaiga, ia avea o se taavale WINSRV19 mai le vaega o punaoa MyTestVMs.

Se'i tatou fa'asaoina lenei mea fa'atasi ma ona meatotino uma i se fesuiaiga $vm:

$vm = Get-AzVm -Name WINSRV19 -ResourceGroupName MyTestVMs

Ave'ese le atigipusa o lo'o iai faila fa'ata'ita'i ta'avale

Pe a fatuina se VM i Azure, e talosagaina foi le tagata faʻaoga e fai se atigipusa mo le teuina o faʻataʻitaʻiga taʻavale (boot diagnostics container), ina ia i ai ni faʻafitauli i le taʻavale, o loʻo i ai se mea e liliu i ai mo faʻafitauli. Ae peitaʻi, pe a tape le VM, o loʻo tuʻu le koneteina e faʻaauau ai lona olaga leai se aoga. Tatou faaleleia lea tulaga.

  1. Muamua, se'i o tatou su'esu'e po o le a le teuga tupe e iai lenei atigipusa - ona o lea e mana'omia ai ona tatou su'e le meatotino storageUri i totonu o le manava o le mea DiagnosticsProfile matou VM. Mo lenei mea ou te faʻaaogaina le faʻamatalaga masani:
    $diagSa = [regex]::match($vm.DiagnosticsProfile.bootDiagnostics.storageUri, '^http[s]?://(.+?)\.').groups[1].value
  2. O lenei e tatau ona e suʻeina le igoa o le pusa, ma mo lenei mea e te manaʻomia le mauaina o le VM ID e faʻaaoga ai le poloaiga 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)
    
  3. Ma le isi, matou te maua le igoa o le kulupu punaoa o loʻo iai le pusa:
    $diagSaRg = (Get-AzStorageAccount | where { $_.StorageAccountName -eq $diagSa }).ResourceGroupName
  4. Ma o lea ua tatou maua mea uma tatou te manaʻomia e tape ai le atigipusa ma le poloaiga Remove-AzStorageContainer:
    $saParams = @{
        'ResourceGroupName' = $diagSaRg
        'Name' = $diagSa
    }
     
    Get-AzStorageAccount @saParams | Get-AzStorageContainer | where { $_.Name-eq $diagContainerName } | Remove-AzStorageContainer -Force

Aveese le VM

Sei o tatou tapeina le masini komepiuta lava ia, talu ai ua uma ona tatou faia se fesuiaiga $vm mo le mea e fetaui. Ia, tatou fa'atonu le fa'atonuga Remove-AzVm:

$null = $vm | Remove-AzVM -Force

Ave'esea le feso'ota'iga feso'ota'iga ma tuatusi IP lautele

O loʻo iai pea le matou VM (poʻo le tele) fesoʻotaʻiga fesoʻotaʻiga (NICs) - ia aveese i latou e le manaʻomia, seʻi o tatou faʻaogaina le meatotino NetworkInterfaces la matou mea VM ma tape le NIC ma le poloaiga Remove-AzNetworkInterface. Afai e sili atu ma le tasi le fesoʻotaʻiga fesoʻotaʻiga, matou te faʻaogaina se matasele. I le taimi lava e tasi, mo NIC taʻitasi o le a matou siakiina le meatotino IpConfiguration e iloa ai pe o le atinaʻe o loʻo i ai se tuatusi IP lautele. Afai e maua se tasi, o le a matou aveese ma le poloaiga Remove-AzPublicIpAddress.

O se faʻataʻitaʻiga lea o naʻo sea code, lea tatou te vaʻavaʻai ai i NIC uma i se matasele, tape i latou, ma siaki pe o iai se IP lautele. Afai ei ai, ona va'ai lea o le meatotino PublicIpAddress, su'e le igoa ole punaoa talafeagai ile ID ma tape ai:


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
        }
    }
}

Aveese le disk system

O le OS disk o se pa'u, lea e iai le fa'atonuga e tape ai Remove-AzStorageBlob - ae aʻo leʻi faʻatinoina, e te manaʻomia le setiina o tau manaʻomia mo ona tapulaʻa. Ina ia faia lenei mea, aemaise lava, e te manaʻomia le mauaina o le igoa o le pusa teu oloa o loʻo i ai le disk system, ona pasi atu lea i lenei poloaiga faʻatasi ai ma le faʻamaumauga e teu ai.

$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]

Aveese le System Disk Status Blob

Ina ia faia lenei mea, atonu ua uma ona e mateina, matou te ave le pusa teu oloa o loʻo teuina ai lenei tisiki, ma, o loʻo faʻaalia ai o le paʻu i le pito o loʻo i ai. status, pasi atu fa'atatau i le fa'atonuga tape Remove-AzStorageBlob:

$osDiskStorageAcct | Get-AzStorageBlob -Container $osDiskContainerName -Blob "$($vm.Name)*.status" | Remove-AzStorageBlob

Ma le mea mulimuli, matou te aveese faʻamaumauga faʻamaumauga

O la matou VM e mafai lava ona i ai tisiki ma faʻamaumauga o loʻo faʻapipiʻi i ai. Afai e le manaʻomia, o le a matou tapeina foi. Se'i fa'avasega muamua StorageProfile tatou VM ma su'e le meatotino Uri. Afai e tele tisiki, matou te faʻatulagaina se taamilosaga e tusa ai ma URI. Mo URI taʻitasi, o le a matou mauaina le tala faʻapipiʻi talafeagai e faʻaaoga Get-AzStorageAccount. Ona fa'asolo lea o le URI teuina e aveese mai ai le igoa o lo'o mana'omia ma pasi i le poloaiga tape Remove-AzStorageBlob faatasi ai ma se teugatupe teu oloa. O le mea lea e foliga mai ile code:

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]
    }
}

Ma o lenei "ua tatou oʻo i le iʻuga fiafia!" Ole taimi nei e tatau ona tatou faʻapipiʻi se tasi atoa mai nei vaega uma. O le tusitala agalelei o Adam Bertram na feiloai i tagata faʻaoga afa ma faia e ia lava. O le so'oga lea i le fa'amaumauga mulimuli ua ta'ua Aveese-AzrVirtualMachine.ps1:

GitHub

Ou te faʻamoemoe e te mauaina nei fautuaga aoga e fesoasoani i le sefeina o oe taumafaiga, taimi, ma tupe pe a galue ma Azure VMs.

puna: www.habr.com

Faaopoopo i ai se faamatalaga