SMA - более пристальный взгляд
Для примера я возьму Runbook изменения IP адреса виртуального адаптера на статический:
workflow New-NetworkAdapter
{
# Импортируем параметры
param([object]$params)
# Соединяемся с VMM, для этого необходимо создать "Connection Asset" с названием "VMM_Connection"
$con = Get-AutomationConnection -Name "Vmm_Connection"
$secpasswd = ConvertTo-SecureString $con.Password -AsPlainText -Force
$SMA-crd = New-Object System.Management.Automation.PSCredential ($con.username, $secpasswd)
# Работаем с VMM
InlineScript {
$con=$USING:Con
$SMA-crd=$USING:SMA-crd
$params=$USING:params
Invoke-Command -ComputerName $con.computername -Credential $SMA-crd -ArgumentList ($params.VMId),$con -ScriptBlock {
param(
$VMID,
$con
)
# Проверка работает ли VM, если да - выключаем
$restart = $false
if ((Get-SCVirtualMachine -VMMServer $con.computername -ID $VMID).VirtualMachineState -ne "PowerOff") {
$restart = $true
Get-SCVirtualMachine -VMMServer $con.computername -ID $VMID | Stop-SCVirtualMachine -Shutdown
}
if ((Get-SCVirtualMachine -VMMServer $con.computername -ID $VMID).VirtualMachineState -ne "PowerOff") {
$restart = $true
Get-SCVirtualMachine -VMMServer $con.computername -ID $VMID | Stop-SCVirtualMachine -force
}
# Изменяем MAC на статический на всех адаптерах
Get-SCVirtualMachine -VMMServer $con.computername -ID $VMID | Get-SCVirtualNetworkAdapter | where {$_.MACAddressType -EQ "Dynamic"} | Set-SCVirtualNetworkAdapter -MACAddressType "Static"
# Включаем VM
if ($restart -eq "$true") {Get-SCVirtualMachine -VMMServer $con.computername -ID $VMID | Start-SCVirtualMachine }
}
}
}
Кроме переменной $Params, Вы можете использовать переменные $ResourceOnject и $PSPrivateMetaData.
Для того чтобы при создании адаптера Runbook запустился необходимо создать Runbook с названием “New-NetworkAdapter” и тегом “SPF”. После этого опубликовать его и привязать к событию создания сетевого адаптера..
Written on July 1, 2014