Guia de tecnologias

Virtualização

6 min read Virtualização Atualizado 18 Oct 2025
Virtualização: redes, kickstart e virt-install
Virtualização: redes, kickstart e virt-install

Sumário rápido

  • Criar redes virtuais “public1” e “private1” com virt-manager
  • Verificar interfaces vnet0 / vnet1 com ifconfig
  • Preparar arquivos kickstart para node01/node02
  • Gerar MACs com o script macgen.py
  • Instalar as VMs com virt-install

1. Redes virtuais

Abra o Virtual Machine Manager como root:

virt-manager

A janela do Virtual Machine Manager aparecerá. Você verá Domain-0 e os recursos que ele está usando.

Importante: feche o Virtual Machine Manager quando não estiver em uso — ele consome memória. Se o host ficar sem memória, reinicie Xen.

1.a Criar a rede virtual “public1”

  1. No menu, clique em Editar e depois em “Host details”.
  2. Na janela Host Details, à esquerda aparecerá apenas “default”. Abaixo, clique em “Add”.
  3. A janela “Create a new virtual network” aparecerá — clique em Forward (Avançar).
  4. Use o nome public1 e clique em Forward.
  5. Defina a rede IPv4 como 192.168.222.0/24 e clique em Forward.
  6. DHCP range: Start: 192.168.222.128 End: 192.168.222.254 — clique em Forward.
  7. Escolha “Isolated virtual network” (rede virtual isolada) e clique em Forward.
  8. Verifique o resumo e clique em Finish.

Resumo esperado para public1:

  • Network Name: public1
  • IPV4 network: 192.168.222.0/24
  • Gateway: 192.168.222.1
  • Netmask: 255.255.255.0
  • DHCP Start: 192.168.222.128
  • DHCP End: 192.168.222.254
  • Connectivity: Isolated virtual network

1.b Criar a rede virtual “private1”

Repita os mesmos passos acima, usando as configurações:

  • Network Name: private1
  • Network: 192.168.100.0/24
  • Gateway: 192.168.100.1
  • Netmask: 255.255.255.0
  • DHCP Start: 192.168.100.128
  • DHCP End: 192.168.100.254
  • Connectivity: Isolated virtual network

Ao terminar, na janela Host Details clique em File > Close e depois em File > Quit.

Depois de criar as redes, verifique as interfaces com:

ifconfig

Exemplo de saída esperada (vnet0 e vnet1):

   vnet0      Link encap:Ethernet  HWaddr 00:00:00:00:00:00
              inet addr:192.168.222.1  Bcast:192.168.222.255  Mask:255.255.255.0
              inet6 addr: fe80::200:ff:fe00:0/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0

              TX packets:28 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0
              RX bytes:0 (0.0 b)  TX bytes:7782 (7.5 KiB)
    
    vnet1      Link encap:Ethernet  HWaddr 00:00:00:00:00:00
              inet addr:192.168.100.1  Bcast:192.168.100.255  Mask:255.255.255.0
              inet6 addr: fe80::200:ff:fe00:0/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:27 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0
              RX bytes:0 (0.0 b)  TX bytes:7712 (7.5 KiB)

Notas:

  • “Isolated virtual network” significa que as VMs conectadas não terão rota automática para fora do host.
  • Se precisar de conectividade externa, configure encaminhamento/bridge em vez de rede isolada.

2. Arquivos kickstart

Os arquivos kickstart automatizam a instalação das VMs. Forneço um exemplo para node01 que pode ser copiado e adaptado para node02 alterando hostname e endereços IP.

2.a Kickstart para node01

Use exatamente o conteúdo do bloco abaixo como node01_ks.cfg no servidor NFS/HTTP de instalação. Observe que o bloco de código é o arquivo kickstart; não traduza seu conteúdo interno (preserve diretivas e caminhos). Faça apenas as alterações necessárias ao IP/hostname quando criar node02.

#START of node01_ks.cfg
install
text
reboot
#uncomment the line you want to use
# for nfs
nfs --server=192.168.222.1 --dir=/var/ftp/pub/centos5u1
##url --url ftp://:@/
# this will be an anonymous ftp access
#url --url ftp://192.168.222.1/pub/centos5u1/i386
#key --skip
lang en_US.UTF-8
keyboard us
skipx
# private
network --device eth1 --bootproto static --ip 192.168.100.10 --netmask 255.255.255.0 
# public - disabled on initial install
network --device eth0 --bootproto static --ip 192.168.222.10 --netmask 255.255.255.0 --gateway 192.168.222.1 --nameserver 192.168.222.1 --hostname node01.example.com
## password is n0de01pass
rootpw --iscrypted $1$Lqk1Y$Y8TIWCMLiiPjVt1GjRS0F1
## password is n0de02pass
#rootpw --iscrypted $1$Rn47b$DDwgrOv3IFGf3HVhsxv9X0
firewall --disabled
authconfig --enableshadow --enablemd5
selinux --disabled
timezone --utc Asia/Singapore
services --disabled ipsec,iptables,bluetooth,hplip,firstboot,cups,sendmail,xfs
bootloader --location=mbr --driveorder=xvda,xvdb --append="rhgb quiet"
clearpart --all --initlabel --drives=xvda
part /boot --fstype ext3 --size=100 --ondisk=xvda
part pv.2 --size=0 --grow --ondisk=xvda
volgroup VolGroup00 --pesize=32768 pv.2
logvol swap --fstype swap --name=LogVol01 --vgname=VolGroup00 --size=1000 --grow --maxsize=1984
logvol / --fstype ext3 --name=LogVol00 --vgname=VolGroup00 --size=1024 --grow
%packages
@development-libs
@system-tools
@gnome-software-development
@text-internet
@x-software-development
@dns-server
@core
@authoring-and-publishing
@base
@ftp-server
@network-server
@legacy-software-development
@java
@legacy-software-support
@smb-server
@base-x
@web-server
@printing
@server-cfg
@sql-server
@admin-tools
@development-tools
emacs
lsscsi
gnutls-utils
hwbrowser
audit
iptraf
mesa-libGLU-devel
kexec-tools
device-mapper-multipath
vnc-server
xorg-x11-utils
xorg-x11-server-Xnest
xorg-x11-server-Xvfb
imake
iscsi-initiator-utils
ypserv
-sysreport

%post
cat <> /etc/hosts
# private  or replace with nodeXY-
192.168.100.10  node01-priv
192.168.100.20  node02-priv
192.168.100.1   node00-priv

#public or replace with nodeXY
192.168.222.10 node01
192.168.222.20 node02
192.168.222.1  node00
EOT

# yum local repo
mv /etc/yum.repos.d/*.repo /tmp
cat > /etc/yum.repos.d/centos5.repo << EOF
[centos5-Server]
name=CEntos5 Server
baseurl=http://node00/centos5u1/i386
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
EOF

#change default runlevel
ed /etc/inittab << EOF

,s/id:5:initdefault:/id:3:initdefault:/g
.
w
EOF

# vncserver stuff
cat << EOT > /opt/vnc_xstartup
#!/bin/sh

# run vncserver and copy to your $HOME/.vnc/xstartup file
# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup

[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
xterm -geometry 130x30+12+12 -ls -bg black -fg green -title "$VNCDESKTOP Desktop" &
mwm &
EOT
# END of nod01_ks.cfg

2.b Kickstart para node02

Copie node01_ks.cfg para node02_ks.cfg e altere os campos de hostname e IP (por exemplo 192.168.222.20 e 192.168.100.20, hostname node02.example.com).

Notas de segurança: mantenha arquivos kickstart e chaves em um local restrito. O exemplo acima contém senhas criptografadas; controle o acesso.

3. Instalando os sistemas convidados (node01 e node02)

A instalação será invocada via CLI com o utilitário virt-install. Antes, gere os endereços MAC das interfaces virtuais.

3.a Geração de endereços MAC

Use este script Python disponibilizado no guia de Virtualização da Red Hat (preserve o script; ele gera MACs válidas para guests):

#!/usr/bin/python
# macgen.py script to generate a MAC address for Red Hat Virtualization guests
import random
#
def randomMAC():
   mac = [ 0x00, 0x16, 0x3e,
     random.randint(0x00, 0x7f),

     random.randint(0x00, 0xff),
     random.randint(0x00, 0xff) ]
   return ':'.join(map(lambda x: "%02x" % x, mac))
#
print randomMAC()
# careful with the indention
# this is from the Virtualization guide from redhat.com
# http://www.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/5.2/html/Virtualization/index.html

Exemplo de uso para node01:

node01 NICs  
# for eth0 . public1  
[root@node00 ~]# ./macgen.py  
00:16:3e:33:32:07  
# for eth1 . private1  
[root@ node00 ~]# ./macgen.py  
00:16:3e:55:6b:83

Gere também para node02.

3.b Comando virt-install para node01

Exemplo de comando para iniciar instalação via virt-install (preserve exatamente este formato ao executar):

virt-install -p -n node01 -r 768 -f /dev/Virtual00VG/lvNODE01 -m 00:16:3e:33:32:07 \  
-w network:public1 -m 00:16:3e:55:6b:83 -w network:private1 \  
-l nfs:192.168.222.1:/var/ftp/pub/centos5u1/i386 \  
-x "ksdevice=eth0 ks=http://192.168.222.1/centos5u1/node01_ks.cfg" --vnc

Parâmetros principais (resumo):

  • -n node01: nome do guest
  • -r 768: memória em MB
  • -f /dev/Virtual00VG/lvNODE01: disco a ser usado (LVM logical volume)
  • -m : endereço MAC para eth0/eth1
  • -w network:public1/private1: redes virtuais associadas
  • -l nfs:…: fonte de instalação NFS
  • -x “ksdevice=eth0 ks=…”: parâmetros kickstart
  • –vnc: abre console VNC para acompanhar a instalação

3.c Comando virt-install para node02

virt-install -p -n node02 -r 768 -f /dev/Virtual00VG/lvNODE02 -m 00:16:3e:1e:05:b6 \  
-w network:public1 -m 00:16:3e:40:3d:b0 -w network:private1 \  
-l nfs:192.168.222.1:/var/ftp/pub/centos5u1/i386 \  
-x "ksdevice=eth0 ks=http://192.168.222.1/centos5u1/node02_ks.cfg" --vnc

Dica operacional: se executar virt-install a partir de uma sessão VNC no host físico, as telas de instalação aparecerão automaticamente. Se executar no console físico, a instalação continuará em background; use virt-manager para abrir as máquinas e visualizar o progresso.

Verificações pós-instalação

  • Confirme que as VMs aparecem em virt-manager.
  • Verifique que as interfaces de rede dentro das VMs têm os IPs configurados conforme o kickstart.
  • Teste conectividade entre node01-priv e node02-priv usando ping no segmento 192.168.100.0/24.
  • Se habilitar serviços (SSH, HTTP), verifique acessibilidade a partir da rede apropriada.

Checklist por função

Administrador do host:

  • Criar redes public1 e private1 no virt-manager
  • Validar vnet0 / vnet1 com ifconfig
  • Disponibilizar repositório NFS/HTTP com arquivos de instalação
  • Gerar e registrar endereços MAC para cada VM

Engenheiro de instalação (provisionamento das VMs):

  • Preparar node01_ks.cfg e node02_ks.cfg (hostname/IP)
  • Criar LVs ou confirmar discos a serem usados
  • Executar virt-install com parâmetros corretos
  • Validar após instalação e aplicar ajustes (repos, runlevel)

Operações (após deploy):

  • Adicionar entradas /etc/hosts conforme %post
  • Verificar backups e monitoramento para as VMs

Mini-metodologia (passos rápidos)

  1. Planejar sub-redes e ranges DHCP.
  2. Criar redes virtuais isoladas em virt-manager.
  3. Preparar kickstart com configurações de rede e pacotes.
  4. Gerar MACs e registrar mapeamento MAC↔VM↔rede.
  5. Criar volumes de disco (LVM) para cada VM.
  6. Iniciar virt-install com parâmetros e ks via HTTP/NFS.
  7. Validar instalação e aplicar pós-configurações.

Glossário em uma linha

  • virt-manager: GUI para gerenciar KVM/libvirt.
  • virt-install: ferramenta CLI para criar VMs automatizadas.
  • kickstart: arquivo de configuração para instalação automática (CentOS/RHEL).
  • MAC: endereço de hardware da interface de rede.

Quando este processo não é adequado

  • Se as VMs precisam de acesso direto à rede física sem NAT ou pontes, prefira bridge em vez de redes isoladas.
  • Em ambientes de produção com alta disponibilidade e migração ao vivo, considere configurar bridges, controladores de rede dedicados e storage compartilhado.

Resumo

Este artigo guiou você pela criação de redes virtuais isoladas (public1 e private1), validação das interfaces vnet, criação de arquivos kickstart para instalação automática e uso do virt-install para provisionar node01 e node02. Siga os checklists e valide conectividade após a instalação.

Importante: proteja arquivos kickstart e os repositórios de instalação; reveja senhas e permissões antes de uso em produção.

Autor
Edição

Materiais semelhantes

Instalar e usar Podman no Debian 11
Containers

Instalar e usar Podman no Debian 11

Apt‑pinning no Debian: guia prático
Administração de sistemas

Apt‑pinning no Debian: guia prático

Injete FSR 4 com OptiScaler em qualquer jogo
Tecnologia

Injete FSR 4 com OptiScaler em qualquer jogo

DansGuardian e Squid com NTLM no Debian Etch
Infraestrutura

DansGuardian e Squid com NTLM no Debian Etch

Corrigir erro de instalação no Android
Android

Corrigir erro de instalação no Android

KNetAttach: Pastas de Rede remota no KDE
KDE

KNetAttach: Pastas de Rede remota no KDE