Pesquisa de site

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)

Artigos relacionados: