Выполняем команды внутри гостевых ОС через PowerCLI
Порой нужно запустить скрипт на множестве VM, или выполнить одну и туже команду.
Под катом я расскажу как выполнять команды внутри гостевых ОС через PowerCLI
Поможет нам скрипт:
function Load-PowerCLI
{
Add-PSSnapin VMware.VimAutomation.Core
Add-PSSnapin VMware.VimAutomation.Vds
}
Load-PowerCLI
# Connect to Vcenter
$vcenter=""
Connect-VIServer -Server $vcenter #-User -Password
$csv='C:\VM-invokeScript.csv'
Import-Csv $csv -Delimiter ";"| % {
$vcenteruser = $_.vcenteruser;
$vcenterpass = $_.vcenterpass;
$vm = $_.vm;
$guestuser = $_.guestuser;
$guestpass = $_.guestpass;
$vcenter = $_.vcenter;
Connect-VIServer -Server $vcenter -User $vcenteruser -Password $vcenterpass
$script1 = 'Your batch file patch or command'
$script2 = '\\test.local\fileshare\bat\run.bat'
Invoke-VMScript -ScriptText $script1 -VM $vm -Server $vcenter -GuestUser $guestuser -GuestPassword $guestpass -ScriptType Bat
Invoke-VMScript -ScriptText $script2 -VM $vm -Server $vcenter -GuestUser $guestuser -GuestPassword $guestpass -ScriptType Bat
disconnect-viserver -Server $vcenter -confirm:$false
}
# Disconnect Vcenter
Disconnect-VIServer $vcenter -Confirm:$false
function Unload-PowerCLI
{
Remove-PSSnapin VMware.VimAutomation.Core -ErrorAction SilentlyContinue
Remove-PSSnapin VMware.VimAutomation.Vds -ErrorAction SilentlyContinue
}
Unload-PowerCLI
Заполняем переменные:
$vcenter — ваш vcenter сервер
$csv — путь к файлу с параметрами
Создайте CSV файл с параметрами, следующего вида:
vcenteruser;vcenterpass;guestuser;guestpass;vm;vcenter
user;your_pass;localOSuser;PASS;vm01;vcenter.test.local
user;your_pass;localOSuser;PASS;vm02;vcenter.test.local
user;your_pass;localOSuser;PASS;vm03;vcenter.test.local
user;your_pass;localOSuser;PASS;vm04;vcenter.test.local
Заполняется файл так:
Логин и пароль к Vcenter; Пользователь гостевой ОС пароль к пользователю гостевой ОС; имя vcenter сервера
user;your_pass;localOSuser;PASS;vm01;vcenter.test.local
Далее в скрипте указываются команды:
$script1 = ‘Your batch file patch or command’
$script2 = ‘\\test.local\fileshare\bat\run.bat’
Замените содержимое этих переменных на ваши команды.
Далее просто запустите скрипт.
Если команды не запускаются проверьте запущены ли vmware tools, включена ли VM, корректные ли логин и пароль к гостевой ОС.
Добавить комментарий