|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Задача c клонированием VM. |
|
PowerShell - Задача c клонированием VM.
|
Пользователь Сообщения: 70 |
Приветствую друзья!
Собственно в создании скриптов я полный ноль, посему без вашей помощи никак. Задача следующая: Есть VM на HyperV назовем ее BOSS_MAIN Так же есть еще две VM BOSS_1 and BOSS_2 Необходимо написать скрипт, при запуске которого будут останавливаться и удаляться BOSS_1 и BOSS_2, далее делать копию с VM BOSS_MAIN и заново создавать с нее BOSS_1 BOSS_2 Вопрос следующий можно ли просто скопировать BOSS_MAIN и создать две VM, либо надо сначала экспортировать BOSS_MAIN потом создать две голые VM и только потом импортировать на них экспорт BOSS_MAIN? Собственно нашел у вас следующий скрипт и немного подредактировал, чтобы сразу создавались VM без запроса параметров и перед созданием остановил, удалил BOSS_1 BOSS_2 и сделал экспорт BOSS_MAIN: Stop-VM -vm BOSS_1 Remove-VM -vm BOSS_1 Stop-VM -vm BOSS_2 Remove-VM -vm BOSS_2 export-vm -vm BOSS_MAIN -path D:\backups\VM -copystate -wait -force # Variables $SRV1 = "BOSS_1" $SRAM = 512MB $SRV1VHD =40GB $VMLOC = C:\HyperV $Network1 = "Network1" # Configure Hyper-V Virtual Network remove-vmswitch $Network1 -force -erroractionsilentlycontinue new-vmprivateswitch $Network1 # Create Virtual Machines MD $VMLoc -erroractionsilentlycontinue new-vm $SRV1 -path $VMLoc new-vhd -vhdpaths $VMLoc\$SRV1 -size $SRV1VHD add-vmdisk -vm $SRV1 -controllerid 0 -lun 0 -path $VMLoc\$SRV1 get-vm $SRV1 | add-vmdrive -controllerid 1 -lun 0 -dvd get-vm $SRV1 | set-vmmemory -memory $SRAM get-vm $SRV1 | add-vmnic -virtualswitch $Network1 $SRV1 = "BOSS_2" $SRAM = 512MB $SRV1VHD =40GB $VMLOC = C:\HyperV2 $Network1 = "Network2" # Configure Hyper-V Virtual Network remove-vmswitch $Network2 -force -erroractionsilentlycontinue new-vmprivateswitch $Network2 # Create Virtual Machines MD $VMLoc -erroractionsilentlycontinue new-vm $SRV2 -path $VMLoc new-vhd -vhdpaths $VMLoc\$SRV2 -size $SRV1VHD add-vmdisk -vm $SRV1 -controllerid 0 -lun 0 -path $VMLoc\$SRV1 get-vm $SRV2 | add-vmdrive -controllerid 1 -lun 0 -dvd get-vm $SRV2 | set-vmmemory -memory $SRAM get-vm $SRV2 | add-vmnic -virtualswitch $Network2 #Дальше, как мне сделать обратный импорт BOSS_MAIN на эти две виртуалки? предположу, что так: Import-VM -vm BOSS_1 -path D:\backups\VM -copystate -wait -force Import-VM -vm BOSS_2 -path D:\backups\VM -copystate -wait -force #Я же правильно понимаю, что при импорте, я так же, как и при экспорте указываю ту же директорию, или же я должен указать директорию новых VM? |
|
Отправлено: 23:50, 05-12-2013 |
Пользователь Сообщения: 70
|
Профиль | Отправить PM | Цитировать BOSS_MAIN это эталон для двух других, то есть после удаления BOSS_1 и BOSS_2 должны создатся опять же они, но в точной копии, как BOSS_MAIN, в каком состоянии она будет все равно, хоть всегда в выключенном.
По ошибке, я уже разобрался ему не нравилось дублирование -vm |
Отправлено: 14:25, 27-12-2013 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 280
|
Профиль | Отправить PM | Цитировать Ну вот попробовал сегодня... и проблем вообще не нашел..
Исходное состояние BOSS_MAIN - Делаем шаблон, делаем экспорт виртуалки в отдельную папку. Удаляем виртуальную машину. далее.. то что ниже. |
Отправлено: 03:03, 28-12-2013 | #12 |
Пользователь Сообщения: 70
|
Профиль | Отправить PM | Цитировать То есть получается, что BOSS_MAIN удаляется? А если мне необходимо, чтобы она всегда была, мне надо будет помимо BOSS_1 и BOSS_2 также еще и импортировать ее же в BOSS_MAIN?
export-vm BOSS_MAIN -path D:\backups\VM -copystate -wait -force Remove-VM -Name BOSS_MAIN -Force $ImportPath="D:\Hyper-V\Export_VM\BOSS_MAIN\BOSS_main\Virtual Machines\E55453FE-1382-4786-9717-25BA9C36248A.XML" $BOSSFolder="D:\Hyper-V\virtualMashine\tmp" Stop-VM -Name BOSS_1 -TurnOff Stop-VM -Name BOSS_2 -TurnOff Remove-VM -Name BOSS_1 -Force Remove-VM -Name BOSS_2 -Force del $BOSSFolder\BOSS_1 -Recurse -Force del $BOSSFolder\BOSS_2 -Recurse -Force Import-VM -Path $ImportPath -copy -VhdDestinationPath $BOSSFolder\BOSS_MAIN\hdd -GenerateNewId -SnapshotFilePath $BOSSFolder\BOSS_MAIN\Snapshots -VirtualMachinePath $BOSSFolder\BOSS_MAIN Import-VM -Path $ImportPath -copy -VhdDestinationPath $BOSSFolder\BOSS_1\hdd -GenerateNewId -SnapshotFilePath $BOSSFolder\BOSS_1\Snapshots -VirtualMachinePath $BOSSFolder\BOSS_1 Rename-VM -Name BOSS_MAIN -NewName BOSS_1 Import-VM -Path $ImportPath -copy -VhdDestinationPath $BOSSFolder\BOSS_2\hdd -GenerateNewId -SnapshotFilePath $BOSSFolder\BOSS_2\Snapshots -VirtualMachinePath $BOSSFolder\BOSS_2 Rename-VM -Name BOSS_MAIN -NewName BOSS_2 |
Отправлено: 09:43, 28-12-2013 | #13 |
Пользователь Сообщения: 70
|
Профиль | Отправить PM | Цитировать Попробовал запустить через повер шел это:
export-vm BOSS_MAIN -path D:\bacupVM -copystate -wait -force Remove-VM BOSS_MAIN -Force $ImportPath="D:\bacupVM\BOSS_MAIN\Virtual Machines\37057F64-D1E1-48FD-80B6-1B28ED948AB2.exp" $BOSSFolder="F:\VM\export\BOSS_MAIN\Virtual Machines" Stop-VM BOSS_1 -TurnOff Stop-VM BOSS_2 -TurnOff Remove-VM BOSS_1 -Force Remove-VM BOSS_2 -Force del $BOSSFolder\BOSS_1 -Recurse -Force del $BOSSFolder\BOSS_2 -Recurse -Force Import-VM -Path $ImportPath -copy -VhdDestinationPath $BOSSFolder\BOSS_MAIN\hdd -GenerateNewId -SnapshotFilePath $BOSSFolder\BOSS_MAIN\Snapshots -VirtualMachinePath $BOSSFolder\BOSS_MAIN Import-VM -Path $ImportPath -copy -VhdDestinationPath $BOSSFolder\BOSS_1\hdd -GenerateNewId -SnapshotFilePath $BOSSFolder\BOSS_1\Snapshots -VirtualMachinePath $BOSSFolder\BOSS_1 Rename-VM BOSS_MAIN -NewName BOSS_1 Import-VM -Path $ImportPath -copy -VhdDestinationPath $BOSSFolder\BOSS_2\hdd -GenerateNewId -SnapshotFilePath $BOSSFolder\BOSS_2\Snapshots -VirtualMachinePath $BOSSFolder\BOSS_2 Rename-VM BOSS_MAIN -NewName BOSS_2 PS D:\> .\ps1 Stop-VM : Не удается найти параметр, соответствующий имени параметра "TurnOff". D:\ps1.ps1:5 знак:24 + Stop-VM BOSS_1 -TurnOff <<<< + CategoryInfo : InvalidArgument: (:) [Stop-VM], ParameterBindingException + FullyQualifiedErrorId : NamedParameterNotFound,Stop-VM Stop-VM : Не удается найти параметр, соответствующий имени параметра "TurnOff". D:\ps1.ps1:6 знак:24 + Stop-VM BOSS_2 -TurnOff <<<< + CategoryInfo : InvalidArgument: (:) [Stop-VM], ParameterBindingException + FullyQualifiedErrorId : NamedParameterNotFound,Stop-VM Import-VM : Не удается найти параметр, соответствующий имени параметра "copy". D:\ps1.ps1:11 знак:35 + Import-VM -Path $ImportPath -copy <<<< -VhdDestinationPath $BOSSFolder\BOSS_MAIN\hdd -Gene rateNewId -SnapshotFilePath $BOSSFolder\BOSS_MAIN\Snapshots -VirtualMachinePath $BOSSFolder\BO SS_MAIN + CategoryInfo : InvalidArgument: (:) [Import-VM], ParameterBindingException + FullyQualifiedErrorId : NamedParameterNotFound,Import-VM Import-VM : Не удается найти параметр, соответствующий имени параметра "copy". D:\ps1.ps1:12 знак:35 + Import-VM -Path $ImportPath -copy <<<< -VhdDestinationPath $BOSSFolder\BOSS_1\hdd -Generat eNewId -SnapshotFilePath $BOSSFolder\BOSS_1\Snapshots -VirtualMachinePath $BOSSFolder\BOSS_1 + CategoryInfo : InvalidArgument: (:) [Import-VM], ParameterBindingException + FullyQualifiedErrorId : NamedParameterNotFound,Import-VM Имя "Rename-VM" не распознано как имя командлета, функции, файла скрипта или выполняемой програ ммы. Проверьте правильность написания имени, а также наличие и правильность пути, после чего по вторите попытку. D:\ps1.ps1:13 знак:10 + Rename-VM <<<< BOSS_MAIN -NewName BOSS_1 + CategoryInfo : ObjectNotFound: (Rename-VM:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException Import-VM : Не удается найти параметр, соответствующий имени параметра "copy". D:\ps1.ps1:14 знак:34 + Import-VM -Path $ImportPath -copy <<<< -VhdDestinationPath $BOSSFolder\BOSS_2\hdd -Generate NewId -SnapshotFilePath $BOSSFolder\BOSS_2\Snapshots -VirtualMachinePath $BOSSFolder\BOSS_2 + CategoryInfo : InvalidArgument: (:) [Import-VM], ParameterBindingException + FullyQualifiedErrorId : NamedParameterNotFound,Import-VM Имя "Rename-VM" не распознано как имя командлета, функции, файла скрипта или выполняемой програ ммы. Проверьте правильность написания имени, а также наличие и правильность пути, после чего по вторите попытку. D:\ps1.ps1:15 знак:10 + Rename-VM <<<< BOSS_MAIN -NewName BOSS_2 + CategoryInfo : ObjectNotFound: (Rename-VM:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException |
Отправлено: 11:19, 28-12-2013 | #14 |
Старожил Сообщения: 280
|
Профиль | Отправить PM | Цитировать Цитата Mishanya3624:
Он ругается так(не понимает команды): » Какая версия Hyper-V и PS. Я пробовал на Windows 8 и Windows Hyper-V Server 2012 R2 Цитата Mishanya3624: То есть получается, что BOSS_MAIN удаляется? А если мне необходимо, чтобы она всегда была, мне надо будет помимо BOSS_1 и BOSS_2 также еще и импортировать ее же в BOSS_MAIN? » А зачем чтобы она была постоянно? Ну можно и постоянно. |
Отправлено: 23:25, 28-12-2013 | #15 |
Пользователь Сообщения: 70
|
Профиль | Отправить PM | Цитировать Все из-под WinServer 2008R2
Постоянно, чтобы каждый раз было с чего копировать, то есть на BOSS_MAIN будет стоят настроенная винда, а BOSS_1 BOSS_2 это будут ПК тестестировщиков и вот, когда они убьют ее, то по нажатию кнопки их машины удалятся и создадутся заново с BOSS_MAIN и снова тестить пока опять не убьют систему. |
Отправлено: 08:51, 30-12-2013 | #16 |
Старожил Сообщения: 280
|
Профиль | Отправить PM | Цитировать Цитата Mishanya3624:
Цитата Mishanya3624:
|
||
Последний раз редактировалось Molchune, 30-12-2013 в 10:29. Отправлено: 10:18, 30-12-2013 | #17 |
Пользователь Сообщения: 70
|
Профиль | Отправить PM | Цитировать Ок, попробую поднять на виртуалке 2012R2 и там попробовать.
|
Отправлено: 10:24, 30-12-2013 | #18 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
C/C++ - Задача | bangybam | Программирование и базы данных | 1 | 09-12-2012 14:47 | |
C/C++ - C++ Задача | SanchezArz | Программирование и базы данных | 5 | 20-11-2010 18:12 | |
C/C++ - Задача | svdanik | Программирование и базы данных | 8 | 04-10-2010 00:41 | |
Задача С++ | papam | Программирование и базы данных | 1 | 28-11-2005 11:34 | |
Проблема с клонированием w2k!!!! | J Fox | Microsoft Windows NT/2000/2003 | 7 | 17-03-2003 15:58 |
|