Сегодня начал узнавать о Дженкинсе и хочу сделать небольшой проект.
Попытка создать задание, которое будет «спрашивать» имя виртуальной машины и объем оперативной памяти, который пользователь хочет, и развертывать виртуальную машину.
Я использую «Выбор параметра» с номером 4, 8
и скрипт в powershell есть
New-VM -Name $env:Vm_Name -MemoryStartupBytes $env:ram"GB" -BootDevice VHD -NewVHDPath "C:\Users\Itay\Desktop\vm-test\$env:Vm_Name.vhdx" -Path C:\Users\Itay\Desktop\vm-test -NewVHDSizeBytes 30GB -Generation 2
Connect-VMNetworkAdapter -VMName $env:Vm_Name -SwitchName $env:NIC
Я также пытался сделать что-то вроде этого
$number = $env:ram
$integer = [int]$number
New-VM -Name $Vm_Name -MemoryStartupBytes $integer"gb" -BootDevice VHD -NewVHDPath "C:\Users\Itay\Desktop\vm-test\$Vm_Name.vhdx" -Path C:\Users\Itay\Desktop\vm-test -NewVHDSizeBytes 30GB -Generation 2
но все еще получаю ошибку
New-VM : Cannot bind parameter 'MemoryStartupBytes'. Cannot convert value "4gb" to type "System.Int64". Error: "Input
или ошибка:
Cannot convert value "4096mb" to type "System.Int32". Error: "Input string was not in a correct format."
В C:\Users\Administrator\AppData\Local\Temp\jenkins9080442734241450545.ps1:3 char:2
или :
New-VM : Failed to modify device 'Memory'.
Invalid startup memory amount assigned for '007'.
'007' failed to modify device 'Memory'. (Virtual machine ID 5EB708B9-49D9-4BD3-AC5A-4678B771AA35)
Invalid startup memory amount assigned for '007'. The minimum amount of memory you can assign to this virtual machine
is '32' MB. (Virtual machine ID 5EB708B9-49D9-4BD3-AC5A-4678B771AA35)
просто хочу сделать выбор для пользователя, чтобы выбрать, сколько оперативной памяти выделить виртуальной машине
Может кто-нибудь помочь?
В ссылке для параметра -MemoryStartupBytes
указано:
Указывает объем памяти в байтах, выделяемый виртуальной машине. машина.
Тип: Int64
Строки типа «4gb» или «4096mb» не конвертируются в Int64
. Вы должны сделать это самостоятельно, что довольно просто, если предположить, что пользователь может выбирать только значения в ГБ.
1 ГБ = 1024 МБ = 1024 * 1024 КБ = 1024 * 1024 * 1024 байт
$bytes = [Int64] $env:ram * 1024 * 1024 * 1024
New-VM -Name $Vm_Name -MemoryStartupBytes $bytes -BootDevice VHD -NewVHDPath "C:\Users\Itay\Desktop\vm-test\$Vm_Name.vhdx" -Path C:\Users\Itay\Desktop\vm-test -NewVHDSizeBytes 30GB -Generation 2
Мы преобразуем строковую переменную $env:ram
в Int64
, помещая тип в квадратные скобки перед переменной, которая называется оператором приведения . Оператор приведения имеет более высокий приоритет, чем арифметические операторы, поэтому PS сначала преобразует строку, прежде чем продолжить умножение.