Aston-HyperV-Code/Host/Create-ALL.ps1

240 lines
10 KiB
PowerShell
Raw Normal View History

2021-04-20 11:39:24 +02:00
## Tool to automate VM creation
echo "Shamefully made by Alexandre Simao. Pardon-me dear M. Stallman"
echo "GPLv3"
### Considered as finished. Need improvement VM side.
### Adding SRV-01
2021-06-29 15:56:38 +02:00
$vm_name = "SRV-01"
$switch_name = "Arc-SRV"
$gen = 2
$mem = 1024MB
$min_mem = 512MB
2021-06-29 16:32:33 +02:00
$max_mem = 2048MB
2021-06-29 15:56:38 +02:00
$cpus = 2
2021-06-29 16:32:33 +02:00
echo "Adding and configuring $vm_name"
cp "$env:BASE_VHD_PATH$env:BASE_SRV_NAME" "$env:VHD_PATH$vm_name.vhdx"
2021-06-29 16:32:33 +02:00
$Lettre = Mount-VHD -Path $env:VHD_PATH$vm_name.VHDx -PassThru | Get-Disk | Get-Partition | Get-Volume | Sort-Object -Property Size -Descending | Select-Object -First 1
2021-06-01 12:48:25 +02:00
$DriveLetter = $Lettre.DriveLetter
$drive = $DriveLetter + ":"
2021-06-28 16:11:41 +02:00
New-Item -Path "${Driveletter}:\conf\" -Name "Base" -ItemType "directory"
2021-06-29 15:56:38 +02:00
Copy-Item "${env:SCRIPTS_PATH}Unattend\FullUnattend-srv.xml" -Destination "$Drive\Windows\Panther\Unattend.xml"
2021-06-30 10:31:43 +02:00
Copy-Item "${env:SCRIPTS_PATH}deploy.cmd" -Destination "${Drive}\conf\deploy.cmd"
2021-06-01 12:48:25 +02:00
mkdir "${Driveletter}:\Tools\Scripts"
2021-06-30 10:31:43 +02:00
Copy-item "${env:SCRIPTS_PATH}Guests\$vm_name.ps1" "${Drive}\Tools\scripts\boot.ps1"
2021-06-29 16:32:33 +02:00
Dismount-VHD "$env:VHD_PATH$vm_name.vhdx"
2021-06-29 16:32:33 +02:00
New-VM -Name "$vm_name" -generation "$gen" -memorystartupbytes $mem
Set-VMHardDiskDrive -VMName "$vm_name" -Path "$env:VHD_PATH$vm_name.vhdx" -ControllerType SCSI
Set-VMMemory "$vm_name" -DynamicMemoryEnabled $true -MinimumBytes $min_mem -StartupBytes $mem -MaximumBytes $max_mem
Set-VM -Name "$vm_name" -ProcessorCount "$cpus"
echo "Configuring adapters"
2021-06-30 10:31:43 +02:00
Rename-VMNetworkAdapter -VMName "$vm_name" -NewName "$switch_name"
Set-VMNetworkAdapter -VMName "$vm_name" -Name "$switch_name" -DeviceNaming on
2021-04-22 15:58:53 +02:00
2021-05-31 14:34:24 +02:00
### Adding SRV-03
2021-06-30 16:44:45 +02:00
$vm_name = "SRV-03"
2021-06-29 15:56:38 +02:00
$switch_name = "Arc-SRV"
$gen = 2
$mem = 1024MB
$min_mem = 512MB
2021-06-29 16:32:33 +02:00
$max_mem = 2048MB
2021-06-29 15:56:38 +02:00
$cpus = 2
2021-06-29 16:32:33 +02:00
echo "Adding and configuring $vm_name"
cp "$env:BASE_VHD_PATH$env:BASE_SRV_NAME" "$env:VHD_PATH$vm_name.vhdx"
2021-05-31 14:34:24 +02:00
2021-06-29 16:32:33 +02:00
$Lettre = Mount-VHD -Path $env:VHD_PATH$vm_name.VHDx -PassThru | Get-Disk | Get-Partition | Get-Volume | Sort-Object -Property Size -Descending | Select-Object -First 1
2021-06-01 12:48:25 +02:00
$DriveLetter = $Lettre.DriveLetter
$drive = $DriveLetter + ":"
2021-06-28 16:11:41 +02:00
New-Item -Path "${Driveletter}:\conf\" -Name "Base" -ItemType "directory"
2021-06-29 15:56:38 +02:00
Copy-Item "${env:SCRIPTS_PATH}Unattend\FullUnattend-srv.xml" -Destination "$Drive\Windows\Panther\Unattend.xml"
2021-06-30 10:31:43 +02:00
Copy-Item "${env:SCRIPTS_PATH}deploy.cmd" -Destination "${Drive}\conf\deploy.cmd"
2021-06-01 12:48:25 +02:00
mkdir "${Driveletter}:\Tools\Scripts"
2021-06-30 10:31:43 +02:00
Copy-item "${env:SCRIPTS_PATH}Guests\$vm_name.ps1" "${Drive}\Tools\scripts\boot.ps1"
2021-06-01 12:48:25 +02:00
2021-06-29 16:32:33 +02:00
Dismount-VHD "$env:VHD_PATH$vm_name.vhdx"
2021-05-31 14:34:24 +02:00
2021-06-29 16:32:33 +02:00
New-VM -Name "$vm_name" -generation "$gen" -memorystartupbytes $mem
Set-VMHardDiskDrive -VMName "$vm_name" -Path "$env:VHD_PATH$vm_name.vhdx" -ControllerType SCSI
Set-VMMemory "$vm_name" -DynamicMemoryEnabled $true -MinimumBytes $min_mem -StartupBytes $mem -MaximumBytes $max_mem
Set-VM -Name "$vm_name" -ProcessorCount "$cpus"
2021-05-31 14:34:24 +02:00
echo "Configuring adapters"
2021-06-30 10:31:43 +02:00
Rename-VMNetworkAdapter -VMName "$vm_name" -NewName "$switch_name"
Set-VMNetworkAdapter -VMName "$vm_name" -Name "$switch_name" -DeviceNaming on
2021-04-20 11:39:24 +02:00
### Adding and configuring RTR-01
2021-04-20 15:25:09 +02:00
2021-06-29 15:56:38 +02:00
$vm_name = "RTR-01"
$switch_name = "Arc-CLI"
2021-06-30 10:31:43 +02:00
$switch_name2 = "Arc-SRV"
$switch_name3 = "WAN"
2021-06-29 15:56:38 +02:00
$gen = 2
$mem = 1024MB
$min_mem = 512MB
2021-06-29 16:32:33 +02:00
$max_mem = 2048MB
2021-06-29 15:56:38 +02:00
$cpus = 2
2021-06-29 16:32:33 +02:00
echo "Adding and configuring $vm_name"
cp "$env:BASE_VHD_PATH$env:BASE_SRV_NAME" "$env:VHD_PATH$vm_name.vhdx"
2021-06-29 16:32:33 +02:00
$Lettre = Mount-VHD -Path $env:VHD_PATH$vm_name.VHDx -PassThru | Get-Disk | Get-Partition | Get-Volume | Sort-Object -Property Size -Descending | Select-Object -First 1
2021-06-01 12:48:25 +02:00
$DriveLetter = $Lettre.DriveLetter
2021-06-30 10:31:43 +02:00
$drive = "$DriveLetter" + ":"
2021-06-28 16:11:41 +02:00
New-Item -Path "${Driveletter}:\conf\" -Name "Base" -ItemType "directory"
2021-06-29 15:56:38 +02:00
Copy-Item "${env:SCRIPTS_PATH}Unattend\FullUnattend-srv.xml" -Destination "$Drive\Windows\Panther\Unattend.xml"
2021-06-30 10:31:43 +02:00
Copy-Item "${env:SCRIPTS_PATH}deploy.cmd" -Destination "${Drive}\conf\deploy.cmd"
2021-06-01 12:48:25 +02:00
mkdir "${Driveletter}:\Tools\Scripts"
2021-06-30 10:31:43 +02:00
Copy-item "${env:SCRIPTS_PATH}Guests\$vm_name.ps1" "${Drive}\Tools\scripts\boot.ps1"
2021-04-20 11:39:24 +02:00
2021-06-29 16:32:33 +02:00
Dismount-VHD "$env:VHD_PATH$vm_name.vhdx"
2021-06-29 16:32:33 +02:00
New-VM -Name "$vm_name" -generation "$gen" -memorystartupbytes $mem
Set-VMHardDiskDrive -VMName "$vm_name" -Path "$env:VHD_PATH$vm_name.vhdx" -ControllerType SCSI
Set-VMMemory "$vm_name" -DynamicMemoryEnabled $true -MinimumBytes $min_mem -StartupBytes $mem -MaximumBytes $max_mem
Set-VM -Name "$vm_name" -ProcessorCount "$cpus"
2021-04-22 15:58:53 +02:00
echo "Configuring adapters"
2021-06-30 10:31:43 +02:00
Rename-VMNetworkAdapter -VMName "$vm_name" -NewName "$switch_name"
2021-06-29 16:32:33 +02:00
Set-VMNetworkAdapter -VMName "$vm_name" -Name "$switch_name" -DeviceNaming on
2021-06-30 10:31:43 +02:00
2021-06-29 15:56:38 +02:00
echo "Configuring adapters"
2021-06-30 10:31:43 +02:00
Rename-VMNetworkAdapter -VMName "$vm_name" -NewName "$switch_name"
2021-06-29 16:32:33 +02:00
Set-VMNetworkAdapter -VMName "$vm_name" -Name "$switch_name" -DeviceNaming on
Add-VMNetworkAdapter -VMName "$vm_name" -SwitchName "$switch_name2" -Name "Arc-SRV" -DeviceNaming on
2021-06-30 10:31:43 +02:00
Add-VMNetworkAdapter -VMName "$vm_name" -SwitchName "$switch_name3" -Name "WAN" -DeviceNaming on
2021-04-20 15:25:09 +02:00
# RTR-02
2021-04-20 11:39:24 +02:00
2021-06-29 15:56:38 +02:00
$vm_name = "RTR-02"
$switch_name = "Bou-LAN"
$switch_name2 = "WAN"
$gen = 2
$mem = 1024MB
$min_mem = 512MB
$max_mem = 2048MB
$cpus = 2
2021-06-29 16:32:33 +02:00
echo "Adding and configuring $vm_name"
2021-06-30 10:31:43 +02:00
cp "$env:BASE_VHD_PATH$env:BASE_SRV_NAME" "$env:VHD_PATH$vm_name.vhdx"
2021-06-29 15:56:38 +02:00
2021-06-29 16:32:33 +02:00
$Lettre = Mount-VHD -Path $env:VHD_PATH$vm_name.VHDx -PassThru | Get-Disk | Get-Partition | Get-Volume | Sort-Object -Property Size -Descending | Select-Object -First 1
2021-06-01 12:48:25 +02:00
$DriveLetter = $Lettre.DriveLetter
$drive = $DriveLetter + ":"
2021-06-28 16:11:41 +02:00
New-Item -Path "${Driveletter}:\conf\" -Name "Base" -ItemType "directory"
2021-06-29 15:56:38 +02:00
Copy-Item "${env:SCRIPTS_PATH}Unattend\FullUnattend-srv.xml" -Destination "$Drive\Windows\Panther\Unattend.xml"
2021-06-30 10:31:43 +02:00
Copy-Item "${env:SCRIPTS_PATH}deploy.cmd" -Destination "${Drive}\conf\deploy.cmd"
2021-06-01 12:48:25 +02:00
mkdir "${Driveletter}:\Tools\Scripts"
2021-06-30 10:31:43 +02:00
Copy-item "${env:SCRIPTS_PATH}Guests\$vm_name.ps1" "${Drive}\Tools\scripts\boot.ps1"
2021-04-20 11:39:24 +02:00
2021-06-29 16:32:33 +02:00
Dismount-VHD "$env:VHD_PATH$vm_name.vhdx"
2021-06-29 16:32:33 +02:00
New-VM -Name "$vm_name" -generation "$gen" -memorystartupbytes $mem
Set-VMHardDiskDrive -VMName "$vm_name" -Path "$env:VHD_PATH$vm_name.vhdx" -ControllerType SCSI
Set-VMMemory "$vm_name" -DynamicMemoryEnabled $true -MinimumBytes $min_mem -StartupBytes $mem -MaximumBytes $max_mem
Set-VM -Name "$vm_name" -ProcessorCount "$cpus"
2021-04-21 15:00:09 +02:00
echo "Configuring adapters"
2021-06-30 10:31:43 +02:00
Rename-VMNetworkAdapter -VMName "$vm_name" -NewName "$switch_name"
2021-06-29 16:32:33 +02:00
Set-VMNetworkAdapter -VMName "$vm_name" -Name "$switch_name" -DeviceNaming on
Add-VMNetworkAdapter -VMName "$vm_name" -SwitchName "$switch_name2" -Name "$switch_name2" -DeviceNaming on
2021-04-22 17:26:29 +02:00
2021-04-20 15:25:09 +02:00
# RTR-03
2021-04-20 11:39:24 +02:00
2021-06-29 15:56:38 +02:00
$vm_name = "RTR-03"
$switch_name = "Aston"
$switch_name3 = "WAN"
$gen = 2
$mem = 1024MB
$min_mem = 512MB
$max_mem = 2048MB
$cpus = 2
2021-06-29 16:32:33 +02:00
echo "Adding and configuring $vm_name"
2021-06-30 10:31:43 +02:00
cp "$env:BASE_VHD_PATH$env:BASE_SRV_NAME" "$env:VHD_PATH$vm_name.vhdx"
2021-06-29 15:56:38 +02:00
2021-06-29 16:32:33 +02:00
$Lettre = Mount-VHD -Path $env:VHD_PATH$vm_name.VHDx -PassThru | Get-Disk | Get-Partition | Get-Volume | Sort-Object -Property Size -Descending | Select-Object -First 1
2021-06-01 12:48:25 +02:00
$DriveLetter = $Lettre.DriveLetter
$drive = $DriveLetter + ":"
2021-06-29 16:32:33 +02:00
New-Item -Path "${Driveletter}:\conf\" -Name "Base" -ItemType "directory"
Copy-Item "${env:SCRIPTS_PATH}Unattend\FullUnattend-srv.xml" -Destination "$Drive\Windows\Panther\Unattend.xml"
2021-06-30 10:31:43 +02:00
Copy-Item "${env:SCRIPTS_PATH}deploy.cmd" -Destination "${Drive}\conf\deploy.cmd"
2021-06-29 16:32:33 +02:00
mkdir "${Driveletter}:\Tools\Scripts"
2021-06-30 10:31:43 +02:00
Copy-item "${env:SCRIPTS_PATH}Guests\$vm_name.ps1" "${Drive}\Tools\scripts\boot.ps1"
2021-06-29 16:32:33 +02:00
Dismount-VHD $env:VHD_PATH$vm_name.vhdx
2021-04-20 17:28:39 +02:00
2021-06-29 16:32:33 +02:00
New-VM -Name "$vm_name" -generation "$gen" -memorystartupbytes $mem
Set-VMHardDiskDrive -VMName "$vm_name" -Path "$env:VHD_PATH$vm_name.vhdx" -ControllerType SCSI
Set-VMMemory "$vm_name" -DynamicMemoryEnabled $true -MinimumBytes $min_mem -StartupBytes $mem -MaximumBytes $max_mem
Set-VM -Name "$vm_name" -ProcessorCount "$cpus"
2021-04-21 15:00:09 +02:00
echo "Configuring adapters"
2021-06-30 10:31:43 +02:00
Rename-VMNetworkAdapter -VMName "$vm_name" -NewName "$switch_name"
2021-06-29 16:32:33 +02:00
Set-VMNetworkAdapter -VMName "$vm_name" -Name "$switch_name" -DeviceNaming on
Add-VMNetworkAdapter -VMName "$vm_name" -SwitchName "$switch_name2" -Name "$switch_name2" -DeviceNaming on
2021-04-22 17:26:29 +02:00
#### Adding and configuring CLI-01
#
#$vm_name = "CLI-01"
#$switch_name = "Arc-CLI"
#$gen = 1
#$mem = 512MB
#$min_mem = 512MB
#$max_mem = 1024MB
#$cpus = 2
#
#echo "Adding and configuring $vm_name"
#cp "$env:BASE_VHD_PATH$env:BASE_CLI_NAME" "$env:VHD_PATH$vm_name.vhdx"
#
#$Lettre = Mount-VHD -Path $env:VHD_PATH$vm_name.VHDx -PassThru | Get-Disk | Get-Partition | Get-Volume | Sort-Object -Property Size -Descending | Select-Object -First 1
#$DriveLetter = $Lettre.DriveLetter
#$drive = "$DriveLetter" + ":"
#New-Item -Path "${Driveletter}:\conf\" -Name "Base" -ItemType "directory"
#Copy-Item "${env:SCRIPTS_PATH}Unattend\FullUnattend-srv.xml" -Destination "$Drive\Windows\Panther\Unattend.xml"
#Copy-Item "${env:SCRIPTS_PATH}Unattend\FullUnattend-srv.xml" -Destination "$Drive\Windows\Panther\Unattend.xml"
#Copy-Item "${env:SCRIPTS_PATH}Unattend\FullUnattend-srv.xml" -Destination "$Drive\Windows\Panther\Unattend.xml"
#Copy-Item "${env:SCRIPTS_PATH}Unattend\FullUnattend-srv.xml" -Destination "$Drive\Windows\Panther\Unattend.xml"
#Copy-Item "${env:SCRIPTS_PATH}deploy.cmd" -Destination "${Drive}\conf\deploy.cmd"
#mkdir "${Driveletter}:\Tools\Scripts"
#Copy-item "${env:SCRIPTS_PATH}Guests\$vm_name.ps1" "${Drive}\Tools\scripts\boot.ps1"
#
#Dismount-VHD "$env:VHD_PATH$vm_name.vhdx"
#
#New-VM -Name "$vm_name" -generation "$gen" -memorystartupbytes $mem
#Set-VMHardDiskDrive -VMName "$vm_name" -Path "$env:VHD_PATH$vm_name.vhdx" -ControllerType SCSI
#Set-VMMemory "$vm_name" -DynamicMemoryEnabled $true -MinimumBytes $min_mem -StartupBytes $mem -MaximumBytes $max_mem
#Set-VM -Name "$vm_name" -ProcessorCount "$cpus"
#
#echo "Configuring adapters"
#Rename-VMNetworkAdapter -VMName "$vm_name" -NewName "$switch_name"
#Set-VMNetworkAdapter -VMName "$vm_name" -Name "$switch_name" -DeviceNaming on
#
#echo "Configuring adapters"
#Rename-VMNetworkAdapter -VMName "$vm_name" -NewName "$switch_name"
#Set-VMNetworkAdapter -VMName "$vm_name" -Name "$switch_name" -DeviceNaming on
#Add-VMNetworkAdapter -VMName "$vm_name" -SwitchName "$switch_name2" -Name "Arc-SRV" -DeviceNaming on
#Add-VMNetworkAdapter -VMName "$vm_name" -SwitchName "$switch_name3" -Name "WAN" -DeviceNaming on
2021-06-30 11:17:54 +02:00
### Starting VMS
2021-06-29 15:56:38 +02:00
echo "Starting VMs"
2021-04-20 15:25:09 +02:00
Start-VM -Name RTR*
2021-05-10 17:23:11 +02:00
2021-06-01 12:48:25 +02:00
### Sleeping 15s
2021-06-01 12:48:25 +02:00
echo "Sleeping 15s"
2021-06-01 11:40:58 +02:00
2021-06-01 12:48:25 +02:00
Sleep 15
2021-06-01 11:40:58 +02:00
2021-05-10 17:23:11 +02:00
2021-04-20 15:25:09 +02:00
Start-VM -Name SRV*