PowerShell este un instrument de scripting excelent. Nu numai ca va ajuta sa economisiti timp, dar ofera si o mai mare flexibilitate pentru a executa sarcini repetate. Aproape toate rolurile si functiile Windows inglobeaza cmdleturi PowerShell.
Aveti posibilitatea sa utilizati cmdleturi de sistem de operare Windows Server pentru a efectua sarcini operationale, cum ar fi verificarea starii unui anumit serviciu Windows pe mai multe computere, generarea unei liste de programe instalate pe computerele cu sistem de operare Windows, verificarea si colectarea rolurilor si functiilor instalate in sistemele de operare Windows Server si multe altele.
Deoarece majoritatea organizatiilor si-au mutat volumul de lucru in cloud-uri, precum Microsoft Azure, acestea trebuie adesea sa lucreze cu variante ale masinilor virtuale stocate in cloud-ul public. In timp ce administratorii Azure pot utiliza Portalul Azure pentru a gestiona resursele, Azure PowerShell poate fi foarte util atunci cand este nevoie sa executati o serie de sarcini de rutina in fiecare zi.
De exemplu, este posibil sa fie necesar sa efectuati operatii de pornire si oprire impotriva VM-urilor Azure in fiecare zi sau saptamanal. Retineti ca VM-urile Azure sunt taxate pe baza utilizarii, deci daca aveti mai multe VM-uri Azure implementate pentru a rula cateva ore in fiecare zi, trebuie sa va asigurati ca aceste masini virtuale sunt oprite pentru a economisi costurile.
Daca aveti mai multe masini virtuale cu care sa lucrati, ati putea proiecta un mic script PowerShell care va poate ajuta sa inchideti VM-urile si un al doilea script PowerShell pentru a porni VM-urile in functie de orare specifice.
Odata ce au fost proiectate scripturile PowerShell, le puteti programa utilizand Windows Task Scheduler. Pentru a construi ambele scripturi PowerShell, puteti utiliza modulul Azure PowerShell. Modulul Azure PowerShell ofera cmdleturi Start-AzureRMVM si Stop-AzureRMVM PowerShell care pot fi utilizate pentru a porni si opri masinile virtuale Azure.
Inainte de a incepe sa utilizati scripturile PowerShell furnizate mai jos, retineti urmatoarele puncte:
-Atat scripturile PowerShell de pornire cat si de oprire utilizeaza un singur fisier text ce se afla in C: \ Temp si care contine lista de nume de Azure VM.
-Operatiile de pornire si oprire vor fi efectuate numai pe lista VM-urilor specificate in fisierul C: \ Temp \ AzureVMs.TXT.
-De asemenea, este important sa retineti ca ambele scripturi PowerShell vizeaza un anumit grup de resurse in Azure. Vi se va cere sa modificati numele grupului de resurse in ambele scripturi PowerShell inainte de executare.
-Va trebui sa instalati modulele Azure PowerShell pe un calculator Windows acceptat pentru a rula scripturile. Modulele Azure PowerShell pot fi instalate din Microsoft Web Platform Installer sau PowerShell Gallery.
Script pentru a opri masinile virtuale Azure
Scriptul PowerShell de mai jos efectueaza o operatie de oprire pentru VM-urile specificate in fisierul C: \ Temp \ AzureVMs.TXT si genereaza, de asemenea, un raport in C: \ Temp \ VMStopReport.CSV. Daca scriptul genereaza o eroare, eroarea va fi inregistrata in fisierul C: \ Temp \ VMStopReport.CSV.
### START – Stopping Azure VMs ####
$VMFile = “C:\Temp\AzureVMs.txt”
$ReportFile = “C:\Temp\VMStopReport.CSV”
Foreach ($ThisVMNow in Get-Content “$VMFile”)
{
$Error.Clear()
Stop-AzureRmVM -ResourceGroupName “AzureResourceGroup” -Name “$ThisVMNow”
IF ($Error.Count -ne 0)
{
$STR = “Azure Virtual Machine was stopped : ” + $ThisVMNow
Add-Content $ReportFile $STR
}
else
{
$STR = “ERROR: Failed to stop Azure Virtual Machine : ” + $ThisVMNow+”,”+$Error[0]
Add-Content $ReportFile $STR
}
}
### END – Stopping Azure VMs ####
Script pentru a porni masinile virtuale Azure
Scriptul PowerShell de mai jos efectueaza o operatie de pornire pentru VM-urile specificate in fisierul C: \ Temp \ AzureVMs.TXT si genereaza de asemenea un raport in C: \ Temp \ VMStartReport.CSV. Similar cu scriptul pentru a opri VM-urile Azure, daca aceasta comanda de script genereaza o eroare, eroarea va fi inregistrata in fisierul C: \ Temp \ VMStartReport.CSV.
### START – Starting Azure VMs ####
$VMFile = “C:\Temp\AzureVMs.txt”
$ReportFile = “C:\Temp\VMStartReport.CSV”
Foreach ($ThisVMNow in Get-Content “$VMFile”)
{
$Error.Clear()
Start-AzureRmVM -ResourceGroupName “AzureResourceGroup” -Name “$ThisVMNow”
IF ($Error.Count -ne 0)
{
$STR = “Azure Vitual Machine was Started : ” + $ThisVMNow
Add-Content $ReportFile $STR
}
else
{
$STR = “ERROR: Failed to start Azure Virtual Machine : ” + $ThisVMNow+”,”+$Error[0]
Add-Content $ReportFile $STR
}
}
### END – Starting Azure VMs ####
Concluzie
Asa cum am explicat in acest articol, este usor sa folositi PowerShell pentru a gestiona resursele Azure VM. Am furnizat doua scripturi PowerShell pe care le puteti utiliza pentru a opri si a porni masinile virtuale Azure.
Puteti utiliza aceste scripturi PowerShell pe un computer Windows unde sunt instalate modulele Azure PowerShell si apoi sa programati scripturile pe baza cerintelor dvs. utilizand Windows Task Scheduler.