domingo, 28 de dezembro de 2025

incus e incus-ui

Pré Instalação do Incus

# 1. Criar o diretório de chaves se não existir
sudo mkdir -p /etc/apt/keyrings/

# 2. Baixar a chave GPG do Zabbly
sudo curl -fsSL https://pkgs.zabbly.com/key.asc -o /etc/apt/keyrings/zabbly.asc

# 3. Adicionar o repositório específico para o Debian Trixie (13)
# Vamos apenas criar o arquivo, ainda não daremos 'apt update'
echo "deb [signed-by=/etc/apt/keyrings/zabbly.asc] https://pkgs.zabbly.com/incus/stable $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/zabbly-incus.list

# 4. Verificar se o arquivo foi criado corretamente e aponta para 'trixie'
cat /etc/apt/sources.list.d/zabbly-incus.list

Instalação

# 1. Atualizar os índices
sudo apt update

# 2. Instalar o Incus e a Interface Web (Canonical UI)
# O pacote 'incus' traz o suporte a containers e VMs (via QEMU)
sudo apt install incus incus-ui-canonical

Pós Instalação

# 1. Adicionar seu usuário ao grupo do incus-admin
sudo usermod -aG incus-admin $(whoami)

# 2. Verificar se o serviço está ativo e rodando
systemctl status incus

# 3. Aplicar a mudança de grupo na sessão atual (evita ter que deslogar)
newgrp incus-admin

# 4. Testar se o comando básico responde (deve retornar vazio ou erro de init, mas não "command not found")
incus list

Configurar

sudo incus admin init

Usar os dados salvos da última configuração

cat init.yaml | incus admin init --preseed

Geração da senha para o cloud-init

python3 -c 'import crypt; print(crypt.crypt("suasenha", crypt.mksalt(crypt.METHOD_SHA512)))'

Configuração do cloud-init

#cloud-config
# Adicione este bloco fora da seção 'users'
ssh_pwauth: true  # Permite senha se a chave falhar (opcional)
package_update: true
packages:
  - openssh-server
users:
  - name: emazolini
    groups: sudo
    shell: /bin/bash
    sudo: ALL=(ALL) NOPASSWD:ALL
    lock_passwd: false
    passwd: "$6$7sEVbA2QElMP.e7c$5w.mboIKzN8BnkD.DuBjtHqbm4m9fQUct1ZSELl3g8DjbKDJetD5Jt6RrgHuuUSavQh.oHdzjxr79z39jLNpF1"
    ssh_authorized_keys:
      - ssh-rsa AAAAB3Nza...usuario@notebook

sexta-feira, 12 de dezembro de 2025

Proxmox Alpine e Cloud-init

Eu já falei sobre o cloud-init mas usei ele no limite da GUI.
O que era extra eu fazia editando a imagem direto como o libguestfs.
Mas com alpine existe um problema em ativar a rede com DNS em quanto usa o libguestfs então não da pra atualizar ou baixar bibliotecas da rede.
Com isso aprendi um outro nivel do uso do cloud-init.

 Já tinha feito algo parecido com fedora core, mas não tinha reparado.

 Criei um arquivo snippets.

alpine-qga.yaml

#cloud-config
package_update: true
packages:
  - qemu-guest-agent

runcmd:
  - rc-update add qemu-guest-agent default
  - rc-service qemu-guest-agent start
 

 

Então configuro ele na maquina, só é possível por linha de comando:
qm set <ID_VM> --cicustom "user=nfs-remoto:snippets/alpine-qga.yaml"

 

Recuperar arquivos .conf no Proxmox

    Eu fui unir 2 proxmox em um cluster e cometi o erro de não fazer backup da pasta pve. Com isso perdi todas as maquinas do segundo servidor. Não os arquivos salvos na LVM, mas os .conf. As maquinas não pararam elas só sumiram da configuração. 

    Eu costumo fazer backup de tudo a cada 2 dias e os arquivos de configuração não são modificados com frequência então não precisava recuperar as maquinas com dados de 2 dias a trás só os arquivos de configuração para elas aparecerem novamente na configuração.

 

Para os VMs:

Eu copiei já descompactando o arquivo para minha maquina local. Lendo do meu nas e gravando já local eu otimizei a operação ganhando bastante tempo, pq fazia leitura continua em quanto em outro disco fazia a escrita continua.

Extrai a configuração para um arquivo e movi eles para a pasta correta. 

unzstd -o ~/vzdump-qemu-202.vma /mnt/pve/nfs-remoto/dump/vzdump-qemu-202-2025_11_28-00_49_09.vma.zst

vma config ~/vzdump-qemu-202.vma > 202.conf

rm ~/vzdump-qemu-202.vma

mv *.conf /etc/pve/nodes/servidor02/qemu-server/


Já os containers LXC a operação é um pouco diferente.

Confere se existe:
tar --use-compress-program=unzstd -tf /mnt/pve/nfs-remoto/dump/vzdump-lxc-120-2025_12_11-01_47_39.tar.zst | grep './etc/vzdump/pct.conf'

Extrai:
tar --use-compress-program=unzstd -xf /mnt/pve/nfs-remoto/dump/vzdump-lxc-120-2025_12_11-01_47_39.tar.zst ./etc/vzdump/pct.conf

Move:
mv ./etc/vzdump/pct.conf /etc/pve/nodes/servidor02/lxc/120.conf

Apaga a pasta:
Cuidado para não fazer esse comando da raiz e remover o /etc do seu servidor.
rm -Rf etc