Вы можете просто создать приложение OVF с VirtualBox, а затем импортировать это несколько раз:
- Создайте виртуальную машину со всеми вашими предпочтениями - установите программное обеспечение, которое вам нравится (например, htop), и настройте его по своему усмотрению (например, включите sudo без пароля, установите
UseDNS No
в /etc/ssh/sshd_conf
чтобы ускорить вход в систему, и поменьше). время ожидания в /boot/grub/grub.cfg
).
- Установите SSH-сервер и загрузите ваш SSH-ключ.
- В linux запустите
sudo rm -rf /etc/udev/rules.d/
чтобы удалить постоянные ассоциации сетевых имен (в противном случае вам придется перенастроить сеть).
- Выключите машину (возможно, вы захотите удалить некоторые кеши, чтобы уменьшить размер машины).
- Экспортируйте виртуальную машину либо через графический интерфейс с помощью File -> Export Appliance, либо с
VBoxManage export VM_NAME -o ./myvm.ova
Теперь вы можете импортировать созданный ova-файл так часто, как хотите (С помощью File -> Import Applicance или VBoxManage import
. Каждый раз, когда вы делаете это, VirtualBox генерирует новое имя виртуальной машины и позволяет вам изменять основные параметры (ЦП, размер ОЗУ, подключенные диски и т.д.).
Однако вам придется вручную отредактировать правило переадресации ssh-портов. Вы можете легко сделать это с помощью следующего скрипта:
OVA=vm.ova # Change this to the name of your ova file
VM_NAME=$(VBoxManage import "$OVA" | sed -n 's#.*VM name "\(.*\)".*#\1#p')
sshport=$(python -c 'import random;print(random.randint(1025,65535))')
VBoxManage modifyvm $VM_NAME --natpf1 ssh,tcp,127.0.0.1,$sshport,,22
/bin/echo -e "\nHost vbox-$VM_NAME\n\tHostName localhost\n\tPort $sshport\n" \
>>~/.ssh/config
echo "Start the VM with VBoxManage startvm $VM_NAME"
echo "Then, type ssh vbox-$VM_NAME to log in to your VM"
Теперь вы можете подключиться к компьютеру с помощью ssh vbox-$VM_NAME
. Если вы хотите развернуть машину, вы должны изменить вручную изменить ключи сервера SSH .
Вместо экспорта и импорта вы также можете просто клонировать существующую машину.