Você pode simplesmente criar uma aplicação OVF com o VirtualBox e depois importar isso várias vezes:
- Crie a VM com todas as suas preferências - instale o software de que você gosta (por exemplo, htop ) e configure-o de acordo com seus desejos (por Por exemplo, habilite o sudo sem senha , defina
UseDNS No
em /etc/ssh/sshd_conf
para acelerar o login e um tempo limite menor em /boot/grub/grub.cfg
).
- Instale um servidor SSH e carregue sua chave SSH .
- No linux, execute
sudo rm -rf /etc/udev/rules.d/
para remover as associações de nome de rede persistentes (caso contrário, você terá que reconfigurar a rede).
- Desligue a máquina (talvez você queira remover alguns caches antes para reduzir o tamanho da máquina).
- Exporte a VM, através da GUI com Arquivo - > Export Appliance ou com
VBoxManage export VM_NAME -o ./myvm.ova
Agora você pode importar o arquivo óvulo criado quantas vezes quiser (com arquivo - > Import Applicance ou VBoxManage import
. Toda vez que você fizer isso, o VirtualBox gerará um novo nome de VM e permitirá que você altere os parâmetros básicos (CPU, tamanho de RAM, discos anexados, etc.).
No entanto, você terá que editar manualmente a regra de encaminhamento de porta ssh. Você pode facilmente fazer isso com o seguinte script:
OVA=vm.ova # Change this to the name of your ova file
VM_NAME=$(VBoxManage import "$OVA" | sed -n 's#.*VM name "\(.*\)".*##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"
Agora você pode ssh na máquina com ssh vbox-$VM_NAME
. Se você quiser implantar a máquina, você deve alterar manualmente alterar as chaves do servidor SSH .
Em vez de exportar e importar, você também pode apenas clonar uma máquina existente.