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

Mudar som de notificação do Snapchat
Tutoriais

Mudar som de notificação do Snapchat

Ocultar apps na barra do Windows 11
Windows 11

Ocultar apps na barra do Windows 11

Como usar Host no Twitch — Guia prático
Streaming

Como usar Host no Twitch — Guia prático

Desligar Android sem botão de energia
Android

Desligar Android sem botão de energia

Gerenciamento de Usuários no WiKID
Autenticação

Gerenciamento de Usuários no WiKID

Corrigir teclado do Mac que não responde
Suporte Mac

Corrigir teclado do Mac que não responde