Como criar um modelo de sistema operacional Ubuntu e Debian no Proxmox VE
Em qualquer plataforma de virtualização, o modelo de SO é uma imagem de sistema operacional pré-configurada que você pode usar para implantar uma máquina virtual. Os modelos permitem criar uma ou várias instâncias de máquinas virtuais em segundos. É sempre recomendável criar um modelo especial com todas as configurações necessárias, em vez de clonar uma máquina virtual existente com dados do aplicativo, pois isso fornece um estado limpo.
O Proxmox Virtualization Environment vem com modelos baseados em contêiner; além disso, você pode criar e implantar modelos KVM a partir das versões da série V3.x. Neste artigo, abordaremos um processo passo a passo de criação de modelos de sistema operacional Ubuntu ou Debian Linux. Um procedimento semelhante pode ser aplicado para qualquer outra distribuição do Linux.
Para uso CentOS/Rocky/AlmaLinux: Criando modelos de sistema operacional Rocky/AlmaLinux/CentOS no Proxmox VE
Siga as etapas abordadas neste artigo para ter uma instalação funcional do modelo Debian/Ubuntu Linux.
1. Crie VM no Proxmox
Faça login em seu ambiente Proxmox VE e comece a criação da VM clicando com o botão direito no nome do hipervisor > Criar VM.
Dê um nome à VM e, opcionalmente, defina o ID da VM. Escolher um número maior para o ID é melhor evitar misturá-lo com outras instâncias.
Em “SO” selecione “Não usar nenhuma mídia“.
Em “Sistema” marque “Agente Qemu“. Não há necessidade de ajustar outras configurações, o padrão deve funcionar perfeitamente.
Na tela “Discos”, exclua o disco SCSI 0 adicionado automaticamente. Confirme para excluir quando solicitado.
Você deverá receber a mensagem “Sem discos”. Esta é uma saída pretendida.
Defina os núcleos de CPU a serem usados por esta instância de VM.
Defina a memória para a instância. Observe que o valor fornecido está em MiB.
Em “Rede“, selecione Nome da ponte e desmarque firewall.
Finalize as configurações clicando no botão “Concluir” na parte inferior da página.
2. Anexe o disco de inicialização da nuvem
Cloud-init é usado para lidar com a inicialização antecipada da instância da máquina virtual antes de inicializar a partir do disco. Ao usar o cloud-init você pode pré-configurar contas de usuário, rede, chaves ssh, etc.
Precisamos atribuir uma unidade de CD-ROM à instância. Clique com o botão direito em Nome da VM > Hardware > Adicionar > CloudInit Drive
Escolha o armazenamento para usar a imagem.
Confirme se o CloudInit Drive foi adicionado na seção VM Hardware.
Personalize cada variável na seção de configurações do Cloud Init conforme desejar.
Exemplo, você pode fornecer a senha padrão para a conta de usuário padrão especificada.
O DHCP funciona melhor para redes, pois nenhuma alteração manual de endereço IP é necessária na instância. Você pode adotar o serviço DHCP baseado em MAC.
Exemplo de configurações completas
3. Baixe imagens do sistema operacional para KVM
Faremos download, personalizaremos e criaremos um disco a partir da imagem padrão da nuvem de distribuição do sistema operacional.
Imagens do sistema operacional Ubuntu Linux
### Ubuntu 22.04 ###
wget https://cloud-images.ubuntu.com/releases/jammy/release/ubuntu-22.04-server-cloudimg-amd64.img
### Ubuntu 20.04 ###
wget https://cloud-images.ubuntu.com/releases/focal/release/ubuntu-20.04-server-cloudimg-amd64.img
### Ubuntu 18.04 ###
wget https://cloud-images.ubuntu.com/releases/bionic/release/ubuntu-18.04-server-cloudimg-amd64.img
Imagens do sistema operacional Debian Linux
### Debian 12 ###
wget https://cloud.debian.org/images/cloud/bookworm/latest/debian-12-generic-amd64.qcow2
### Debian 11 ###
wget https://cloud.debian.org/images/cloud/bullseye/latest/debian-11-generic-amd64.qcow2
Para Ubuntu, renomeie as imagens da nuvem com extensão .qcow2
.
### Ubuntu 22.04 ###
mv ubuntu-22.04-server-cloudimg-amd64.img ubuntu-22.04-server-cloudimg-amd64.qcow2
### Ubuntu 20.04 ###
mv ubuntu-20.04-server-cloudimg-amd64.img ubuntu-20.04-server-cloudimg-amd64.qcow2
### Ubuntu 18.04 ###
mv ubuntu-18.04-server-cloudimg-amd64.img ubuntu-18.04-server-cloudimg-amd64.qcow2
Redimensione o tamanho do disco da VM para o tamanho padrão adequado.
### Ubuntu 22.04 Example ###
$ qemu-img resize ubuntu-22.04-server-cloudimg-amd64.qcow2 20G
Image resized.
### Debian 12 Example ###
$ qemu-img resize debian-12-generic-amd64.qcow2 20G
Image resized.
Habilite o console para a máquina virtual. Substitua 777 pelo ID de VM correto.
$ qm set 777 --serial0 socket --vga serial0
update VM 777: -serial0 socket -vga serial0
4. Importe o disco criado para o disco de inicialização padrão da VM
A sintaxe de importação de disco para uma máquina virtual é;
qm importdisk <vm_id> <image> <storage_name>
Primeiro, liste as instâncias e os domínios de armazenamento em seu servidor Proxmox:
root@Proxmox-VE ~ # qm list
VMID NAME STATUS MEM(MB) BOOTDISK(GB) PID
777 Ubuntu-22.04-Template stopped 2048 0.00 0
root@Proxmox-VE ~ # pvesm status
Name Type Status Total Used Available %
local dir active 492392868 11379732 481013136 2.31%
Importando disco para nossa VM com ID 777, usaremos:
$ qm importdisk 777 ubuntu-22.04-server-cloudimg-amd64.qcow2 local
...
transferred 17.0 GiB of 20.0 GiB (84.89%)
transferred 17.2 GiB of 20.0 GiB (86.14%)
transferred 17.5 GiB of 20.0 GiB (87.39%)
transferred 17.7 GiB of 20.0 GiB (88.64%)
transferred 18.0 GiB of 20.0 GiB (89.89%)
transferred 18.2 GiB of 20.0 GiB (91.13%)
transferred 18.5 GiB of 20.0 GiB (92.38%)
transferred 18.7 GiB of 20.0 GiB (93.63%)
transferred 19.0 GiB of 20.0 GiB (94.88%)
transferred 19.2 GiB of 20.0 GiB (96.13%)
transferred 19.5 GiB of 20.0 GiB (97.38%)
transferred 19.7 GiB of 20.0 GiB (98.62%)
transferred 20.0 GiB of 20.0 GiB (99.87%)
transferred 20.0 GiB of 20.0 GiB (100.00%)
transferred 20.0 GiB of 20.0 GiB (100.00%)
Successfully imported disk as 'unused0:local:777/vm-777-disk-0.raw'
Mais informações sobre as configurações da VM podem ser verificadas com o comando qm config
:
$ qm config 777
agent: 1
boot: order=ide2;net0
cipassword: **********
ciuser: ubuntu
cores: 1
ide0: local:777/vm-777-cloudinit.qcow2,media=cdrom
ide2: none,media=cdrom
ipconfig0: ip=dhcp
memory: 2048
meta: creation-qemu=7.2.0,ctime=1697459258
name: Ubuntu-22.04-Template
net0: virtio=F2:9D:7D:B1:38:EC,bridge=vmbr1,firewall=1
numa: 0
ostype: l26
scsihw: virtio-scsi-single
serial0: socket
smbios1: uuid=c32a607b-ece6-470c-b301-6f97c9de7d9f
sockets: 1
unused0: local:777/vm-777-disk-0.raw
vga: serial0
vmgenid: bff5d249-26fd-4445-a39c-4088f4fd7b10
Verifique novamente os volumes em seu servidor Proxmox.
$ sudo qm rescan
rescan volumes...
Após importar a imagem, o disco permanecerá não utilizado. Navegue até a seção de hardware da VM e clique duas vezes para anexá-la.
Clique em “Adicionar ” para anexar o disco à VM. Você pode marcar Descartar para ativar o provisionamento dinâmico.
O disco agora deve aparecer como sendo usado.
Atualize a ordem de inicialização da VM em Opções > Ordem de inicialização.
Selecione scsi0 para ativar e arraste-o para a posição 2 após ide2.
A visualização após definir a ordem de inicialização.
5. Prepare a VM para modelagem
Use o console VM para acessar o terminal. Faça login com o nome de usuário e senha fornecidos nos parâmetros/valores do cloud-init.
Atualize e atualize o sistema operacional.
sudo apt update && sudo apt upgrade -y
Em seguida, instale o agente convidado QEMU na instância.
sudo apt install qemu-guest-agent
Habilite qemu-guest-agent para iniciar na inicialização do sistema.
sudo systemctl enable qemu-guest-agent
Redefinir ID da máquina.
sudo su -
cat /dev/null > /etc/machine-id
cat /dev/null > /var/lib/dbus/machine-id
cat /dev/null > /var/lib/dbus/machine-id
Execute o script de limpeza do Cloud Init.
cloud-init clean
Encerre a instância
shutdown -h now
6. Crie uma máquina virtual a partir do modelo
Criamos uma instância de VM clonando o modelo. Existem duas opções padrão para isso.
- Clone vinculado – a VM criada a partir disso requer menos espaço em disco, mas não pode ser executada sem acesso ao modelo de VM base
- Clone completo – Uma VM criada a partir de um clone completo é uma cópia completa e é totalmente independente do modelo de VM original, mas requer o mesmo espaço em disco que o original.
Para clonar clique com o botão direito no modelo e escolha “Clone“.
Selecione o modo de clonagem – Completo ou Vinculado.
Selecione o armazenamento de destino para a instância de VM e dê um nome a ele.
Antes de iniciar a instância, você pode modificar o hardware e definir seus valores para as variáveis padrão do Cloud Init.
Se tudo correr bem, a instância deverá estar instalada e funcionando em alguns segundos.
Conclusão
Com o procedimento fornecido neste artigo você deverá ter uma instância em execução no Proxmox VE criada a partir do modelo criado. Você não deve mais realizar a instalação manual do sistema Ubuntu ou Debian Linux. Isso economiza um tempo significativo com tediosas instalações manuais de sistema operacional.
Mais sobre Proxmox:
- Instalando o pfSense no servidor raiz Proxmox Hetzner
- Como executar o macOS no Proxmox VE
- Exportar máquina virtual Proxmox e executar em KVM (Libvirt)