ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ PowerShell, ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΈΡΠ΅ ΠΈ ΠΠ’ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΈΡΠ΅ ΡΡΠΏΠ΅ΡΠ½ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ°Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π·Π°Π΄Π°ΡΠΈ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ°Π±ΠΎΡΡΡ Π½Π΅ ΡΠ°ΠΌΠΎ Ρ Π»ΠΎΠΊΠ°Π»Π½ΠΈ, Π½ΠΎ ΠΈ Ρ ΠΎΠ±Π»Π°ΡΠ½ΠΈ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠΈ, ΠΏΠΎ-ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΎ Ρ Azure. Π Π½ΡΠΊΠΎΠΈ ΡΠ»ΡΡΠ°ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΠ° ΠΏΡΠ΅Π· PowerShell Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-ΡΠ΄ΠΎΠ±Π½Π° ΠΈ ΠΏΠΎ-Π±ΡΡΠ·Π° ΠΎΡ ΡΠ°Π±ΠΎΡΠ°ΡΠ° ΠΏΡΠ΅Π· ΠΏΠΎΡΡΠ°Π»Π° Azure. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠ²ΠΎΡΡΠ° ΠΌΠ΅ΠΆΠ΄ΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π° ΠΏΡΠΈΡΠΎΠ΄Π°, PowerShell ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π½Π° Π²ΡΡΠΊΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°.
ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ Π΄Π°Π»ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Ubuntu, Red Hat ΠΈΠ»ΠΈ Windows, PowerShell ΠΌΠΎΠΆΠ΅ Π΄Π° Π²ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π΅ Π΄Π° ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠ°ΡΠ΅ ΠΎΠ±Π»Π°ΡΠ½ΠΈΡΠ΅ ΡΠ΅ΡΡΡΡΠΈ. ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΌΠΎΠ΄ΡΠ»Π°
Π ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ ΡΠ΅ ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ PowerShell Π·Π° ΠΏΡΠ΅ΠΎΡΠ°Π·ΠΌΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° Π²ΠΈΡΡΡΠ°Π»Π½Π° ΠΌΠ°ΡΠΈΠ½Π° Π² ΠΎΠ±Π»Π°ΠΊΠ° Π½Π° Azure, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π΄Π° ΠΈΠ·ΡΡΠΈΠ΅ΡΠ΅ Π²ΠΈΡΡΡΠ°Π»Π½Π° ΠΌΠ°ΡΠΈΠ½Π° ΠΈ ΡΠ²ΡΡΠ·Π°Π½ΠΈΡΠ΅ Ρ Π½Π΅Ρ ΠΎΠ±Π΅ΠΊΡΠΈ.
ΠΠ°ΠΆΠ½ΠΎ! ΠΠ΅ Π·Π°Π±ΡΠ°Π²ΡΠΉΡΠ΅ Π΄Π° ΠΈΠ·Π±ΡΡΡΠ΅ΡΠ΅ ΡΡΡΠ΅ΡΠ΅ ΡΠΈ Ρ Π΄Π΅Π·ΠΈΠ½ΡΠ΅ΠΊΡΠ°Π½Ρ, Π·Π° Π΄Π° ΡΠ΅ ΠΏΠΎΠ΄Π³ΠΎΡΠ²ΠΈΡΠ΅ Π·Π° ΡΠ°Π±ΠΎΡΠ°:
- Π©Π΅ Π²ΠΈ ΡΡΡΠ±Π²Π° ΠΌΠΎΠ΄ΡΠ» ΠΠΎΠ΄ΡΠ» Azure PowerShell - ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΡΠ΅Π³Π»ΠΈ ΠΎΡ PowerShell Gallery Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ°
Install-Module Az
. - Π’ΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΠΈΡΠ΅ Π² ΠΎΠ±Π»Π°ΠΊΠ° Π½Π° Azure, ΠΊΡΠ΄Π΅ΡΠΎ ΡΠ°Π±ΠΎΡΠΈ Π²ΠΈΡΡΡΠ°Π»Π½Π°ΡΠ° ΠΌΠ°ΡΠΈΠ½Π°, ΠΊΠ°ΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ°
Connect-AzAccount
.
ΠΡΡΠ²ΠΎ, Π½Π΅ΠΊΠ° ΡΡΠ·Π΄Π°Π΄Π΅ΠΌ ΡΠΊΡΠΈΠΏΡ, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΏΡΠ΅ΠΎΡΠ°Π·ΠΌΠ΅ΡΡΠ²Π° Azure VM. ΠΠ΅ΠΊΠ° ΠΎΡΠ²ΠΎΡΠΈΠΌ VS Code ΠΈ Π·Π°ΠΏΠ°Π·ΠΈΠΌ Π½ΠΎΠ² ΡΠΊΡΠΈΠΏΡ Π½Π° PowerShell, Π½Π°ΡΠ΅ΡΠ΅Π½ ΠΡΠ΅ΠΎΡΠ°Π·ΠΌΠ΅ΡΡΠ²Π°Π½Π΅-AzVirtualMachine.ps1 β ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΡΠΌΠ΅ ΡΠ°ΡΡΠΈ ΠΎΡ ΠΊΠΎΠ΄ ΠΊΡΠΌ Π½Π΅Π³ΠΎ, Π΄ΠΎΠΊΠ°ΡΠΎ ΠΏΡΠΈΠΌΠ΅ΡΡΡ Π½Π°ΠΏΡΠ΅Π΄Π²Π°.
ΠΡΠΊΠ°ΠΌΠ΅ Π½Π°Π»ΠΈΡΠ½ΠΈΡΠ΅ VM ΡΠ°Π·ΠΌΠ΅ΡΠΈ
ΠΡΠ΅Π΄ΠΈ Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π½Π° VM, ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ ΠΊΠ°ΠΊΠ²ΠΈ ΡΠ° ΠΏΡΠΈΠ΅ΠΌΠ»ΠΈΠ²ΠΈΡΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠΈ Π·Π° Π²ΠΈΡΡΡΠ°Π»Π½ΠΈ ΠΌΠ°ΡΠΈΠ½ΠΈ Π² ΠΎΠ±Π»Π°ΠΊΠ° Π½Π° Azure. ΠΠ° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΡΠΎΠ²Π°, ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° Get-AzVMSize
.
Π ΡΠ°ΠΊΠ° Π·Π° Π²ΠΈΡΡΡΠ°Π»Π½Π°ΡΠ° ΠΌΠ°ΡΠΈΠ½Π° devvm01 ΠΎΡ ΡΠ΅ΡΡΡΡΠ½Π° Π³ΡΡΠΏΠ° ΠΠ΅Π² ΠΠ·ΠΈΡΠΊΠ²Π°ΠΌΠ΅ Π²ΡΠΈΡΠΊΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΈ ΠΏΡΠΈΠ΅ΠΌΠ»ΠΈΠ²ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠΈ:
Get-AzVMSize -ResourceGroupName dev -VMName devvm01
(ΠΡΠΈ ΡΠ΅Π°Π»Π½ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ, ΡΠ°Π·Π±ΠΈΡΠ° ΡΠ΅, Π²ΠΌΠ΅ΡΡΠΎ ResourceGroupName=dev ΠΈ VMName=devvm01 Π²ΠΈΠ΅ ΡΠ΅ ΠΏΠΎΡΠΎΡΠΈΡΠ΅ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ Π·Π° ΡΠ΅Π·ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ.)
ΠΠΎΠΌΠ°Π½Π΄Π°ΡΠ° ΡΠ΅ Π²ΡΡΠ½Π΅ Π½Π΅ΡΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ:
Π’ΠΎΠ²Π° ΡΠ° Π²ΡΠΈΡΠΊΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΈ ΠΎΠΏΡΠΈΠΈ Π·Π° ΡΠ°Π·ΠΌΠ΅Ρ, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ Π·Π°Π΄Π°Π΄Π΅Π½ΠΈ Π·Π° Π΄Π°Π΄Π΅Π½Π° Π²ΠΈΡΡΡΠ°Π»Π½Π° ΠΌΠ°ΡΠΈΠ½Π°.
ΠΠ΅ΠΊΠ° ΠΏΡΠ΅ΠΎΡΠ°Π·ΠΌΠ΅ΡΠΈΠΌ ΠΊΠΎΠ»Π°ΡΠ°
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π΄ΠΎ Π½ΠΎΠ² ΡΠ°Π·ΠΌΠ΅Ρ Π‘ΡΠ°Π½Π΄Π°ΡΡ_B1ls - ΡΠΎΠΉ Π΅ Π½Π° ΠΏΡΡΠ²ΠΎ ΠΌΡΡΡΠΎ Π² ΡΠΏΠΈΡΡΠΊΠ° ΠΏΠΎ-Π³ΠΎΡΠ΅. (Π ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ° Π² ΡΠ΅Π°Π»Π½ΠΈΡ ΠΆΠΈΠ²ΠΎΡ, ΡΠ°Π·Π±ΠΈΡΠ° ΡΠ΅, Π²ΠΈΠ΅ ΠΈΠ·Π±ΠΈΡΠ°ΡΠ΅ ΠΊΠ°ΠΊΡΠ²ΡΠΎ ΡΠ°Π·ΠΌΠ΅Ρ Π²ΠΈ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ.)
- ΠΡΡΠ²ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ°
Get-AzVM
ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° Π½Π°ΡΠΈΡ ΠΎΠ±Π΅ΠΊΡ (Π²ΠΈΡΡΡΠ°Π»Π½Π° ΠΌΠ°ΡΠΈΠ½Π°), ΠΊΠ°ΡΠΎ Ρ ΡΡΡ ΡΠ°Π½ΡΠ²Π°ΠΌΠ΅ Π² ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°$virtualMachine
:$virtualMachine = Get-AzVM -ResourceGroupName dev -VMName devvm01
- Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° Π²Π·Π΅ΠΌΠ°ΠΌΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΎΡΡΡΠ° ΠΎΡ ΡΠΎΠ·ΠΈ ΠΎΠ±Π΅ΠΊΡ
.HardwareProfile.VmSize
ΠΈ Π·Π°Π΄Π°ΠΉΡΠ΅ ΠΆΠ΅Π»Π°Π½Π°ΡΠ° Π½ΠΎΠ²Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ:$virtualMachine.HardwareProfile.VmSize = "Standard_B1ls"
- Π ΡΠ΅Π³Π° ΠΏΡΠΎΡΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°ΠΌΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° VM update -
Update-AzVm
:Update-AzVM -VM devvm01 -ResourceGroupName dev
- Π£Π²Π΅ΡΡΠ²Π°ΠΌΠ΅ ΡΠ΅, ΡΠ΅ Π²ΡΠΈΡΠΊΠΎ Π΅ ΠΌΠΈΠ½Π°Π»ΠΎ Π΄ΠΎΠ±ΡΠ΅ - Π·Π° ΡΠ΅Π»ΡΠ° ΠΎΡΠ½ΠΎΠ²ΠΎ ΠΈΠ·ΠΈΡΠΊΠ²Π°ΠΌΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° Π½Π°ΡΠΈΡ ΠΎΠ±Π΅ΠΊΡ ΠΈ ΠΎΠ³Π»Π΅ΠΆΠ΄Π°ΠΌΠ΅ ΠΈΠΌΠΎΡΠ°
$virtualMachine.HardwareProfile
:$virtualMachine = Get-AzVM -ResourceGroupName dev -VMName devvm01 $virtualMachine.HardwareProfile
ΠΠΊΠΎ Π²ΠΈΠ΄ΠΈΠΌ ΡΠ°ΠΌ Π‘ΡΠ°Π½Π΄Π°ΡΡ_B1ls - ΡΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ Π²ΡΠΈΡΠΊΠΎ Π΅ Π½Π°ΡΠ΅Π΄, ΡΠ°Π·ΠΌΠ΅ΡΡΡ Π½Π° ΠΊΠΎΠ»Π°ΡΠ° Π΅ ΠΏΡΠΎΠΌΠ΅Π½Π΅Π½. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΎΡΠΈΠ΄Π΅ΡΠ΅ ΠΏΠΎ-Π΄Π°Π»Π΅Ρ ΠΈ Π΄Π° Π½Π°Π΄Π³ΡΠ°Π΄ΠΈΡΠ΅ ΡΡΠΏΠ΅Ρ Π° ΡΠΈ, ΠΊΠ°ΡΠΎ ΠΏΡΠ΅ΠΎΡΠ°Π·ΠΌΠ΅ΡΠΈΡΠ΅ Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π²ΠΈΡΡΡΠ°Π»Π½ΠΈ ΠΌΠ°ΡΠΈΠ½ΠΈ Π½Π°Π²Π΅Π΄Π½ΡΠΆ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΌΠ°ΡΠΈΠ².
ΠΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΠΊΠ°ΠΆΠ΅ΡΠ΅ Π·Π° ΠΈΠ·ΡΡΠΈΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π²ΠΈΡΡΡΠ°Π»Π½Π° ΠΌΠ°ΡΠΈΠ½Π° Π² Azure?
Π‘ ΠΈΠ·ΡΡΠΈΠ²Π°Π½Π΅ΡΠΎ Π½Π΅ Π²ΡΠΈΡΠΊΠΎ Π΅ ΡΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΡΠΎΡΡΠΎ ΠΈ ΡΡΠ½ΠΎ, ΠΊΠΎΠ»ΠΊΠΎΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°. Π ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ° Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΠΏΡΠ΅ΠΌΠ°Ρ Π½Π΅ΡΠ΅ ΡΠ΅Π΄ΠΈΡΠ° ΡΠ΅ΡΡΡΡΠΈ, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ ΡΠ°Π·ΠΈ ΠΌΠ°ΡΠΈΠ½Π°, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ:
- ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠ° Π½Π° Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅
- ΠΡΠ΅ΠΆΠΎΠ²ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈ
- ΠΡΠ±Π»ΠΈΡΠ½ΠΈ IP Π°Π΄ΡΠ΅ΡΠΈ
- Π‘ΠΈΡΡΠ΅ΠΌΠ΅Π½ Π΄ΠΈΡΠΊ ΠΈ ΠΏΠ΅ΡΠ½ΠΎ, ΠΊΡΠ΄Π΅ΡΠΎ ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ ΠΌΡ
- ΠΠΈΡΠΊΠΎΠ²Π΅ Ρ Π΄Π°Π½Π½ΠΈ
ΠΠ°ΡΠΎΠ²Π° ΡΠ΅ ΡΡΠ·Π΄Π°Π΄Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ ΠΈ ΡΠ΅ Ρ ΠΈΠ·Π²ΠΈΠΊΠ°ΠΌΠ΅ Remove-AzrVirtualMachine
- ΠΈ ΡΠ΅ ΠΈΠ·ΡΡΠΈΠ΅ Π½Π΅ ΡΠ°ΠΌΠΎ Azure VM, Π½ΠΎ ΠΈ Π²ΡΠΈΡΠΊΠΎ ΠΏΠΎ-Π³ΠΎΡΠ΅.
ΠΡΡΠ²ΠΈΠΌ ΠΏΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈΡ Π½Π°ΡΠΈΠ½ ΠΈ ΠΏΡΡΠ²ΠΎ ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ Π½Π°ΡΠΈΡ ΠΎΠ±Π΅ΠΊΡ (VM) Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° Get-AzVm
. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π΅ΠΊΠ° Π΄Π° Π΅ ΠΊΠΎΠ»Π° WINSRV19 ΠΎΡ ΡΠ΅ΡΡΡΡΠ½Π° Π³ΡΡΠΏΠ° MyTestVMs.
ΠΠ΅ΠΊΠ° Π·Π°ΠΏΠ°Π·ΠΈΠΌ ΡΠΎΠ·ΠΈ ΠΎΠ±Π΅ΠΊΡ Π·Π°Π΅Π΄Π½ΠΎ Ρ Π²ΡΠΈΡΠΊΠΈΡΠ΅ ΠΌΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π² ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° $vm
:
$vm = Get-AzVm -Name WINSRV19 -ResourceGroupName MyTestVMs
ΠΡΠ΅ΠΌΠ°Ρ Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Ρ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΡΠ½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π·Π° Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅
ΠΠΎΠ³Π°ΡΠΎ ΡΡΠ·Π΄Π°Π²Π° VM Π² Azure, ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΡ ΡΡΡΠΎ Π΅ ΠΏΠΎΠΌΠΎΠ»Π΅Π½ Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π·Π° ΡΡΡ ΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠ° Π·Π° Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ (ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π·Π° Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠ° Π½Π° Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅), ΡΠ°ΠΊΠ° ΡΠ΅ Π°ΠΊΠΎ ΠΈΠΌΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΡΡΡ Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ΡΠΎ, Π΄Π° ΠΈΠΌΠ° Π½Π΅ΡΠΎ, ΠΊΡΠΌ ΠΊΠΎΠ΅ΡΠΎ Π΄Π° ΡΠ΅ ΠΎΠ±ΡΡΠ½Π΅ΡΠ΅ Π·Π° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π½Π΅ΠΈΠ·ΠΏΡΠ°Π²Π½ΠΎΡΡΠΈ. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π°, ΠΊΠΎΠ³Π°ΡΠΎ Π²ΠΈΡΡΡΠ°Π»Π½Π°ΡΠ° ΠΌΠ°ΡΠΈΠ½Π° Π±ΡΠ΄Π΅ ΠΈΠ·ΡΡΠΈΡΠ°, ΡΠΎΠ·ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΠΎΡΡΠ°Π²Π° Π΄Π° ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠΈ Π±Π΅Π·ΡΠ΅Π»Π½ΠΎΡΠΎ ΡΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°Π½Π΅. ΠΠ΅ΠΊΠ° ΠΎΠΏΡΠ°Π²ΠΈΠΌ ΡΠ°Π·ΠΈ ΡΠΈΡΡΠ°ΡΠΈΡ.
- ΠΡΡΠ²ΠΎ, Π½Π΅ΠΊΠ° ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΠΊΡΠΌ ΠΊΠΎΠΉ Π°ΠΊΠ°ΡΠ½Ρ Π·Π° ΡΡΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈ ΡΠΎΠ·ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ - Π·Π° ΡΠΎΠ²Π° ΡΡΡΠ±Π²Π° Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈΠΌ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎΡΠΎ
storageUri
Π² Π½Π΅Π΄ΡΠ°ΡΠ° Π½Π° ΠΎΠ±Π΅ΠΊΡΠ°DiagnosticsProfile
Π½Π°ΡΠ°ΡΠ° Π²ΠΈΡΡΡΠ°Π»Π½Π° ΠΌΠ°ΡΠΈΠ½Π°. ΠΠ° ΡΠΎΠ²Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌ ΡΠΎΠ·ΠΈ ΡΠ΅Π³ΡΠ»ΡΡΠ΅Π½ ΠΈΠ·ΡΠ°Π·:$diagSa = [regex]::match($vm.DiagnosticsProfile.bootDiagnostics.storageUri, '^http[s]?://(.+?)\.').groups[1].value
- Π‘Π΅Π³Π° ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΠΈ Π·Π° ΡΠΎΠ²Π° ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ VM ID Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ°
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)
- Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ ΠΈΠΌΠ΅ΡΠΎ Π½Π° Π³ΡΡΠΏΠ°ΡΠ° ΡΠ΅ΡΡΡΡΠΈ, ΠΊΡΠΌ ΠΊΠΎΡΡΠΎ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡΡ:
$diagSaRg = (Get-AzStorageAccount | where { $_.StorageAccountName -eq $diagSa }).ResourceGroupName
- Π ΡΠ΅Π³Π° ΠΈΠΌΠ°ΠΌΠ΅ Π²ΡΠΈΡΠΊΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ, Π·Π° Π΄Π° ΠΈΠ·ΡΡΠΈΠ΅ΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ°
Remove-AzStorageContainer
:$saParams = @{ 'ResourceGroupName' = $diagSaRg 'Name' = $diagSa } Get-AzStorageAccount @saParams | Get-AzStorageContainer | where { $_.Name-eq $diagContainerName } | Remove-AzStorageContainer -Force
ΠΡΠ΅ΠΌΠ°Ρ Π²Π°Π½Π΅ Π½Π° VM
Π‘Π΅Π³Π° Π½Π΅ΠΊΠ° ΠΈΠ·ΡΡΠΈΠ΅ΠΌ ΡΠ°ΠΌΠ°ΡΠ° Π²ΠΈΡΡΡΠ°Π»Π½Π° ΠΌΠ°ΡΠΈΠ½Π°, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π²Π΅ΡΠ΅ ΡΠΌΠ΅ ΡΡΠ·Π΄Π°Π»ΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° $vm
Π·Π° ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΈΡ ΠΎΠ±Π΅ΠΊΡ. Π, Π½Π΅ΠΊΠ° ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° Remove-AzVm
:
$null = $vm | Remove-AzVM -Force
ΠΡΠ΅ΠΌΠ°Ρ Π²Π°Π½Π΅ Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΈΡ IP Π°Π΄ΡΠ΅Ρ
ΠΠ°ΡΠ°ΡΠ° Π²ΠΈΡΡΡΠ°Π»Π½Π° ΠΌΠ°ΡΠΈΠ½Π° Π²ΡΠ΅ ΠΎΡΠ΅ ΠΈΠΌΠ° Π΅Π΄ΠΈΠ½ (ΠΈΠ»ΠΈ Π΄ΠΎΡΠΈ Π½ΡΠΊΠΎΠ»ΠΊΠΎ) ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° (NIC) - Π·Π° Π΄Π° Π³ΠΈ ΠΏΡΠ΅ΠΌΠ°Ρ
Π½Π΅ΡΠ΅ ΠΊΠ°ΡΠΎ Π½Π΅Π½ΡΠΆΠ½ΠΈ, Π½Π΅ΠΊΠ° ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ΠΌ ΠΏΡΠ΅Π· ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΎΡΡΡΠ° NetworkInterfaces
Π½Π°ΡΠΈΡ VM ΠΎΠ±Π΅ΠΊΡ ΠΈ ΠΈΠ·ΡΡΠΈΠΉΡΠ΅ NIC Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° Remove-AzNetworkInterface
. Π ΡΠ»ΡΡΠ°ΠΉ, ΡΠ΅ ΠΈΠΌΠ° ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ Π΅Π΄ΠΈΠ½ ΠΌΡΠ΅ΠΆΠΎΠ² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΡΠΈΠΊΡΠ». Π ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Π·Π° Π²ΡΠ΅ΠΊΠΈ NIC ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΎΡΡΡΠ° IpConfiguration
Π·Π° Π΄Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈ Π΄Π°Π»ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡΡ ΠΈΠΌΠ° ΠΏΡΠ±Π»ΠΈΡΠ΅Π½ IP Π°Π΄ΡΠ΅Ρ. ΠΠΊΠΎ Π±ΡΠ΄Π΅ Π½Π°ΠΌΠ΅ΡΠ΅Π½ ΡΠ°ΠΊΡΠ², ΡΠ΅ Π³ΠΎ ΠΏΡΠ΅ΠΌΠ°Ρ
Π½Π΅ΠΌ Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° Remove-AzPublicIpAddress
.
ΠΡΠΎ ΠΏΡΠΈΠΌΠ΅Ρ Π·Π° ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊΡΠ² ΠΊΠΎΠ΄, ΠΊΡΠ΄Π΅ΡΠΎ ΠΏΡΠ΅Π³Π»Π΅ΠΆΠ΄Π°ΠΌΠ΅ Π²ΡΠΈΡΠΊΠΈ NIC Π² ΡΠΈΠΊΡΠ», ΠΈΠ·ΡΡΠΈΠ²Π°ΠΌΠ΅ Π³ΠΈ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π°ΠΌΠ΅ Π΄Π°Π»ΠΈ ΠΈΠΌΠ° ΠΏΡΠ±Π»ΠΈΡΠ΅Π½ IP. ΠΠΊΠΎ ΠΈΠΌΠ°, Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°ΠΉΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎΡΠΎ PublicIpAddress
, Π½Π°ΠΌΠ΅ΡΠ΅ΡΠ΅ ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΈΡ ΡΠ΅ΡΡΡΡ ΠΏΠΎ ID ΠΈ Π³ΠΎ ΠΈΠ·ΡΡΠΈΠΉΡΠ΅:
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
}
}
}
ΠΡΠ΅ΠΌΠ°Ρ Π²Π°Π½Π΅ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈΡ Π΄ΠΈΡΠΊ
OS Π΄ΠΈΡΠΊΡΡ Π΅ ΠΏΠ΅ΡΠ½ΠΎ, Π·Π° ΠΊΠΎΠ΅ΡΠΎ ΠΈΠΌΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π·Π° ΠΈΠ·ΡΡΠΈΠ²Π°Π½Π΅ΡΠΎ ΠΌΡ Remove-AzStorageBlob
- Π½ΠΎ ΠΏΡΠ΅Π΄ΠΈ Π΄Π° Π³ΠΎ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΡΠ΅, ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° Π·Π°Π΄Π°Π΄Π΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΈΡΠ΅ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ Π·Π° Π½Π΅Π³ΠΎΠ²ΠΈΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ. ΠΠ° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΡΠΎΠ²Π°, ΠΏΠΎ-ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΎ, ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Π·Π° ΡΡΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅, ΡΡΠ΄ΡΡΠΆΠ°Ρ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈΡ Π΄ΠΈΡΠΊ, ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Π΄Π° Π³ΠΎ ΠΏΡΠ΅Π΄Π°Π΄Π΅ΡΠ΅ Π½Π° ΡΠ°Π·ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π·Π°Π΅Π΄Π½ΠΎ ΡΡΡ ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΈΡ Π°ΠΊΠ°ΡΠ½Ρ Π·Π° ΡΡΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅.
$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]
ΠΡΠ΅ΠΌΠ°Ρ Π²Π°Π½Π΅ Π½Π° ΠΏΠ΅ΡΠ½ΠΎΡΠΎ Π·Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈΡ Π΄ΠΈΡΠΊ
ΠΠ° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ ΡΠΎΠ²Π°, ΠΊΠ°ΠΊΡΠΎ Π²Π΅ΡΠΎΡΡΠ½ΠΎ Π²Π΅ΡΠ΅ ΡΠ΅ Π΄ΠΎΡΠ΅ΡΠ°ΡΠ΅, Π½ΠΈΠ΅ Π²Π·Π΅ΠΌΠ°ΠΌΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Π·Π° ΡΡΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅, Π² ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΡΡΡ
ΡΠ°Π½ΡΠ²Π° ΡΠΎΠ·ΠΈ Π΄ΠΈΡΠΊ, ΠΈ, ΠΊΠΎΠ΅ΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΠΏΠ΅ΡΠ½ΠΎΡΠΎ Π² ΠΊΡΠ°Ρ ΡΡΠ΄ΡΡΠΆΠ° status
, ΠΏΡΠ΅Π΄Π°ΠΉΡΠ΅ ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΈΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° Π·Π° ΠΈΠ·ΡΡΠΈΠ²Π°Π½Π΅ Remove-AzStorageBlob
:
$osDiskStorageAcct | Get-AzStorageBlob -Container $osDiskContainerName -Blob "$($vm.Name)*.status" | Remove-AzStorageBlob
Π Π½Π°ΠΊΡΠ°Ρ ΠΏΡΠ΅ΠΌΠ°Ρ Π²Π°ΠΌΠ΅ Π΄ΠΈΡΠΊΠΎΠ²Π΅ΡΠ΅ Ρ Π΄Π°Π½Π½ΠΈ
ΠΠ°ΡΠ°ΡΠ° Π²ΠΈΡΡΡΠ°Π»Π½Π° ΠΌΠ°ΡΠΈΠ½Π° Π²ΡΠ΅ ΠΎΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° Π΄ΠΈΡΠΊΠΎΠ²Π΅ Ρ Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ° ΠΏΡΠΈΠΊΠ°ΡΠ΅Π½ΠΈ ΠΊΡΠΌ Π½Π΅Ρ. ΠΠΊΠΎ Π½Π΅ ΡΠ° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΈ, ΡΠ΅ ΠΈΠ·ΡΡΠΈΠ΅ΠΌ ΠΈ ΡΡΡ
. ΠΠ΅ΠΊΠ° ΠΏΡΡΠ²ΠΎ Π³ΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°ΠΌΠ΅ StorageProfile
Π½Π°ΡΠ°ΡΠ° Π²ΠΈΡΡΡΠ°Π»Π½Π° ΠΌΠ°ΡΠΈΠ½Π° ΠΈ Π½Π°ΠΌΠ΅ΡΠ΅ΡΠ΅ ΠΈΠΌΠΎΡΠ° Uri
. ΠΠΊΠΎ ΠΈΠΌΠ° Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π΄ΠΈΡΠΊΠ°, ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°ΠΌΠ΅ ΡΠΈΠΊΡΠ» ΡΠΏΠΎΡΠ΅Π΄ URI
. ΠΠ° Π²ΡΠ΅ΠΊΠΈ URI ΡΠ΅ Π½Π°ΠΌΠ΅ΡΠΈΠΌ ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΈΡ Π°ΠΊΠ°ΡΠ½Ρ Π·Π° ΡΡΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ Get-AzStorageAccount
. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°ΠΉΡΠ΅ URI Π·Π° ΡΡΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅, Π·Π° Π΄Π° ΠΈΠ·Π²Π»Π΅ΡΠ΅ΡΠ΅ ΠΆΠ΅Π»Π°Π½ΠΎΡΠΎ ΠΈΠΌΠ΅ Π½Π° blob ΠΈ Π΄Π° Π³ΠΎ ΠΏΡΠ΅Π΄Π°Π΄Π΅ΡΠ΅ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° Π·Π° ΠΈΠ·ΡΡΠΈΠ²Π°Π½Π΅ Remove-AzStorageBlob
Π·Π°Π΅Π΄Π½ΠΎ Ρ Π°ΠΊΠ°ΡΠ½Ρ Π·Π° ΡΡΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅. ΠΡΠΎ ΠΊΠ°ΠΊ ΡΠ΅ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Π² ΠΊΠΎΠ΄Π°:
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]
}
}
Π ΡΠ΅Π³Π° βΡΡΠΈΠ³Π½Π°Ρ ΠΌΠ΅ ΡΠ°ΡΡΠ»ΠΈΠ²ΠΈΡ ΠΊΡΠ°ΠΉ!β Π‘Π΅Π³Π° ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ³Π»ΠΎΠ±ΠΈΠΌ Π΅Π΄Π½ΠΎ ΡΡΠ»ΠΎ ΠΎΡ Π²ΡΠΈΡΠΊΠΈ ΡΠ΅Π·ΠΈ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΈ. ΠΡΠ±Π΅Π·Π½ΠΈΡΡ Π°Π²ΡΠΎΡ ΠΠ΄Π°ΠΌ ΠΠ΅ΡΡΡΠ°ΠΌ ΡΠ΅ ΡΡΠ΅ΡΠ½Π° Ρ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ Π½Π°ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° ΠΈ Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈ ΡΠ°ΠΌ. ΠΡΠΎ Π²ΡΡΠ·ΠΊΠ° ΠΊΡΠΌ ΠΊΡΠ°ΠΉΠ½ΠΈΡ ΡΠΊΡΠΈΠΏΡ, Π½Π°ΡΠ΅ΡΠ΅Π½ ΠΡΠ΅ΠΌΠ°Ρ Π²Π°Π½Π΅-AzrVirtualMachine.ps1:
β
ΠΠ°Π΄ΡΠ²Π°ΠΌ ΡΠ΅, ΡΠ΅ Π½Π°ΠΌΠΈΡΠ°ΡΠ΅ ΡΠ΅Π·ΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠ²Π΅ΡΠΈ Π·Π° ΠΏΠΎΠ»Π΅Π·Π½ΠΈ, Π·Π° Π΄Π° Π²ΠΈ ΡΠΏΠ΅ΡΡΡΡ ΡΡΠΈΠ»ΠΈΡ, Π²ΡΠ΅ΠΌΠ΅ ΠΈ ΠΏΠ°ΡΠΈ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ°Π±ΠΎΡΠΈΡΠ΅ Ρ Azure VM.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com