Четверг, 25.05.2017, 15:45
# FreeBSD ГлавнаяРегистрацияВход
Приветствую Вас Гость | RSS
Меню сайта
Категории раздела
Мои статьи [167]
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа
 Каталог статей 
Главная » Статьи » Мои статьи

VmWare-Server управление машинами из консоли с помощью vmrun
VmWare-Server (текущая версия 2.0.2) можно бесплатно скачать (после регистрации) и поставить под  Linux с официального сайта. Работает в виде набора демонов, имеет WEB консоль, позволяющую выполнять любые действия с виртуальными машинами. Есть так же бесплатная утилита vmware-converter, которая позволяет на горячую сконвертировать физическую машину в виртуальную (например, на случай, если физическая умирает или по другим причинам). Отвлекся от темы, просто чтобы показать возможности. Возникает вопрос, как бекапить виртуальные машины. Чтобы выполнить 100% рабочий бекап, надо остановить машину, скопировать и запустить. Остановить-Запустить, можно из WEB интерфейса, но этот способ не подходит для автоматизированного бекапа. Тема эта не очень хорошо освещена, но есть очень простой способ управления вирт машинами прямо из консоли с помощью утилиты vmrun. Стандартный мануал к vmware к сожалению не содержит информации, о данной возможности, для ее получения набираем vmrun --info:

# vmrun --info
Invalid argument: --info
vmrun version 2.0.2 build-203138

Usage: vmrun [AUTHENTICATION-FLAGS] COMMAND [PARAMETERS]



AUTHENTICATION-FLAGS
--------------------
These must appear before the command and any command parameters.

-h (not needed for Workstation)
-P (not needed for Workstation)
-T (ws|server|server1)
for example, use '-T server' for Server 2.0
use '-T server1' for Server 1.0
-u (not needed for Workstation)
-p (not needed for Workstation)
-gu
-gp



POWER COMMANDS PARAMETERS DESCRIPTION
-------------- ---------- -----------
start Path to vmx file Start a VM
[gui|nogui]

stop Path to vmx file Stop a VM
[hard|soft]

reset Path to vmx file Reset a VM
[hard|soft]

suspend Path to vmx file Suspend a VM
[hard|soft]

pause Path to vmx file Pause a VM

unpause Path to vmx file Unpause a VM



SNAPSHOT COMMANDS PARAMETERS DESCRIPTION
----------------- ---------- -----------
snapshot Path to vmx file Create a snapshot of a VM
Snapshot name

deleteSnapshot Path to vmx file Remove a snapshot from a VM
Snapshot name

revertToSnapshot Path to vmx file Set VM state to a snapshot
Snapshot name



RECORD/REPLAY COMMANDS PARAMETERS DESCRIPTION
---------------------- ---------- -----------
beginRecording Path to vmx file Begin recording a VM
Snapshot name

endRecording Path to vmx file End recording a VM

beginReplay Path to vmx file Begin replaying a VM
Snapshot name

endReplay Path to vmx file End replaying a VM



GUEST OS COMMANDS PARAMETERS DESCRIPTION
----------------- ---------- -----------
runProgramInGuest Path to vmx file Run a program in Guest OS
[-noWait]
[-activeWindow]
[-interactive]
Complete-Path-To-Program
[Program arguments]

fileExistsInGuest Path to vmx file Check if a file exists in Guest OS
Path to file in guest

setSharedFolderState Path to vmx file Modify a Host-Guest shared folder
Share name
Host path
writable | readonly

addSharedFolder Path to vmx file Add a Host-Guest shared folder
Share name
New host path

removeSharedFolder Path to vmx file Remove a Host-Guest shared folder
Share name

listProcessesInGuest Path to vmx file List running processes in Guest OS

killProcessInGuest Path to vmx file Kill a process in Guest OS
process id

runScriptInGuest Path to vmx file Run a script in Guest OS
Interpreter path
script_text

deleteFileInGuest Path to vmx file Delete a file in Guest OS
Path in guest

createDirectoryInGuest Path to vmx file Create a directory in Guest OS
Directory path in guest

deleteDirectoryInGuest Path to vmx file Delete a directory in Guest OS
Directory path in guest

listDirectoryInGuest Path to vmx file List a directory in Guest OS
Directory path in guest

copyFileFromHostToGuest Path to vmx file Copy a file from host OS to guest OS
Path on host
Path in guest

copyFileFromGuestToHost Path to vmx file Copy a file from guest OS to host OS
Path in guest
Path on host

renameFileInGuest Path to vmx file Rename a file in Guest OS
Original name
New name

captureScreen Path to vmx file Capture the screen of the VM to a local file
Path on host

writeVariable Path to vmx file Write a variable in the VM state
[runtimeConfig|guestEnv]
variable name
variable value

readVariable Path to vmx file Read a variable in the VM state
[runtimeConfig|guestEnv]
variable name



VPROBE COMMANDS PARAMETERS DESCRIPTION
--------------- ---------- -----------
vprobeVersion Path to vmx file List VP version

vprobeLoad Path to vmx file Load VP script
'VP script text'

vprobeReset Path to vmx file Disable all vprobes

vprobeListProbes Path to vmx file List probes

vprobeListGlobals Path to vmx file List global variables



GENERAL COMMANDS PARAMETERS DESCRIPTION
---------------- ---------- -----------
list List all running VMs

upgradevm Path to vmx file Upgrade VM file format, virtual hw

installtools Path to vmx file Install Tools in Guest

register Path to vmx file Register a VM

unregister Path to vmx file Unregister a VM

listRegisteredVM List registered VMs

clone Path to vmx file Create a copy of the VM
Path to destination vmx file
full|linked
[Snapshot name]


Examples:

Starting a virtual machine with Workstation on a Windows host
vmrun -T ws start "c:\my VMs\myVM.vmx"

Stopping a virtual machine with Server on a linux host
vmrun -T server -h https://myHost.com/sdk -u hostUser -p hostPassword stop "[storage1] vm/myVM.vmx"

Running a program in a virtual machine with Workstation on a Windows host with Windows guest
vmrun -T ws -gu guestUser -gp guestPassword runProgramInGuest "c:\my VMs\myVM.vmx" "c:\Program Files\myProgram.exe"

Running a program in a virtual machine with Server on a linux host with linux guest
vmrun -T server -h https://myHost.com/sdk -u hostUser -p hostPassword -gu guestUser -gp guestPassword runProgramInGuest "[storage1] vm/myVM.vmx" /usr/bin/X11/xclock -display :0

Creating a snapshot of a virtual machine with Workstation on a Windows host
vmrun -T ws snapshot "c:\my VMs\myVM.vmx" mySnapshot

Reverting to a snapshot with Workstation on a Windows host
vmrun -T ws revertToSnapshot "c:\my VMs\myVM.vmx" mySnapshot

Deleting a snapshot with Workstation on a Windows host
vmrun -T ws deleteSnapshot "c:\my VMs\myVM.vmx" mySnapshot

Как видно, тут и под Linux и под Windows, для большего понимания объясню подробнее.

Для начала, какие наиболее полезные действия можно выполнять с вирт машинами: 

start  - запуск
   
stop  - выключение

reset - перезагрузка 
   
suspend  - "заблокировать, заморозить"


Команды, которые нам понадобятся:

# vmrun -T server -h https://localhost:8333/sdk -u пользователь -p пароль list

Команду вводим именно в таком виде на самом сервере вирт машин, если хотим выполнить на другом сервере, то вместо localhost указываем IP адрес сервера вирт машин. Пользователь и Пароль - указываем те-же, с которыми входим через WEB консоль.

/ Еще одно небольшое отступление, при сборке VmWare-Server, можно указать пользователя отличного от root, который будет администратором вирт машин, советую в системе Linux завести нового пользователя и указать его в качестве админа VmWare-Server, так как (забегая вперед) в скрипте бекапа данные о пароле и логине будут в открытом виде и если это будут данные пользователя root, то ни о какой секюрности речи быть не может. Ну и не забываем на скрипт выставить права "700".

После выполнения данной команды мы получим список всех запущенных на текущий момент вирт машин, примерно такой:

Total running VMs: 2
[standard] Mashin/Windows XP Professional.vmx
[standard] Mashin/Linux.vmx

Из этой команды очень важно понимать, что [standard] -это стандартное хранилище с вирт машинами, т.е. /var/lib/vmware/Virtual Machines/, но оно может быть и другим (сам пользователь имеет возможность добавлять хранилища). В любом случае в команде, где надо выполнить какое то действие с вирт машиной, нодо указывать полностью строку:

# vmrun -T server -h https://localhost:8333/sdk -u Пользователь -p Пароль suspend "[standard] Mashin/Windows XP Professional.vmx"

Так мы заморозим вирт машину, но можно и остановить указав вместо "suspend" - "stop", запустить соответственно "start". Еще одна полезная команда - это просмотр на сервере вирт машин - всех машин (а не только запущенных):

#vmrun -T server -h https://localhost:8333/sdk -u Пользователь -p Пароль listRegisteredVM

 Еще одна очень полезная возможность, это вход на виртуальную машину и исполнение на ней скрипта. Делается это следующим образом:

vmrun -T server -h https://localhost:8333/sdk -u пользователь -p пароль -gu пользовательОСвиртМашины -gp парольОСвиртМашины runProgramInGuest "[standard] Test/Test.vmx" "C:\stop\stop.cmd"

В данном примере скрипт stop.cmd, который находится по указанному пути на ОС Windows (виртуальная машина) имеет следующее содержание:

c:\windows\system32\shutdown /s /t 10 /f /d p:1:1 /c "backup"

Этот скрипт позволяет корректно выключить W2k3 сервер через 10 секунд, при этом послать уведомления на все консоли и сделать запись в системный журнал с пометкой "backup". Это команда будет использоваться в следующей статье, где я приведу рабочий скрипт бэкапа виртуальных машин.
Категория: Мои статьи | Добавил: Admin (06.04.2011)
Просмотров: 1035 | Комментарии: 1 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
Поиск
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Copyright MyCorp © 2017Сделать бесплатный сайт с uCoz