From 310e0614833dadfd5b9fb2301e4adc5486c88e83 Mon Sep 17 00:00:00 2001 From: lihongjie0209 Date: Sat, 27 Apr 2024 16:04:50 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0vm=E4=B8=80=E9=94=AE=E5=90=AF?= =?UTF-8?q?=E5=8A=A8=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- script/startVM.ps1 | 58 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 script/startVM.ps1 diff --git a/script/startVM.ps1 b/script/startVM.ps1 new file mode 100644 index 00000000..63c013cb --- /dev/null +++ b/script/startVM.ps1 @@ -0,0 +1,58 @@ +$vmrun = "C:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe" +$vmx = "E:\vm\coal-dev-debian\coal-dev-debian.vmx" +$vmuser = "root" +$vmpass = "abc@123" + +$composeFile = "/root/coal-env/dev/docker-compose.yaml" + +& $vmrun -T ws start $vmx nogui + +$count = 0 +$vmStartTime = Get-Date +while ($true) +{ + + $count++ + + if ($count -gt 10) + { + Write-Host "Timeout" + Throw "等待虚拟机IP超时 $count 次 $vmx" + } + + + $ip = & $vmrun -T ws getGuestIPAddress $vmx + + if ($?) + { + Write-Host "IP: $ip" + break + } + else + { + Write-Host "Waiting for IP..." + Start-Sleep -Seconds 5 + } + +} + +$vmEndTime = Get-Date + +$vmStartSeconds = [math]::Round(($vmEndTime - $vmStartTime).TotalSeconds, 2) + +Write-Host "VM start time: $vmStartSeconds seconds" + +Write-Host "start docker compose in vm...." + + +& $vmrun -gu $vmuser -gp $vmpass -T ws runProgramInGuest $vmx /usr/bin/docker compose -f $composeFile up -d + + +if ($?) +{ + Write-Host "docker compose started" +} +else +{ + Write-Host "docker compose start failed" +} \ No newline at end of file