Remote Boot and PXE Configuration
Para instalação remota, que pode ser via NFS, FTP, HTTP, CDROM, é necessário um boot inicial no
node que pode ser um disquete, um cd, um pendrive ou através do pxe. O kickstart facilita a instalação pois automatiza o processo sem a necessidade de intervenção do
administrador. Utilizando o kernel padrão da distribuição podemos configurar o boot do mesmo com a opção:
linux ks=floppy
o instalador anaconda procura o arquivo no disquete ou
linux ks=file:\ks.cfg
o instalador procura no mesmo diretorio de instalação ou
linux ks=nfs:192.168.1.200:/export/ks.cfg
onde o instalador procura pela rede e utiliza o sistema de arquivos nfs.
Vamos ao passo a passo para configurar uma instalação com PXE e NFS:
- Primeiramente, é necessário instalar um DHCP server. O arquivo de configuração
/etc/dhcpd.conf
, baseado na versão 3.x, deve ser parecido com:
# sample configuration file for DHCP ISC 3.0
ddns-update-style none;
option space PXE;
option PXE.mtftp-ip code 1 = ip-address;
option PXE.mtftp-cport code 2 = unsigned integer 16;
option PXE.mtftp-sport code 3 = unsigned integer 16;
option PXE.mtftp-tmout code 4 = unsigned integer 8;
option PXE.mtftp-delay code 5 = unsigned integer 8;
option PXE.discovery-control code 6 = unsigned integer 8;
option PXE.discovery-mcast-addr code 7 = ip-address;
# PXE specific options
class "pxeclients" {
=match if substring (option vendor-class-identifier, 0, 9) = =
"PXEClient";
option vendor-class-identifier "PXEClient";
vendor-option-space PXE;
=# At least one of the vendor-specific options must be set in order =
# for the boot ROM on the client to recognize us as a PXE
# compliant server. We set the MCAST IP address to 0.0.0.0 to tell
# the boot ROM we can't provide multicast TFTP, so it will have to
# use just plain ol' TFTP instead (address 0.0.0.0 is considered
# as "no address").
option PXE.mtftp-ip 0.0.0.0;
}
subnet 200.136.80.0 netmask 255.255.255.0
{
}
subnet 192.168.1.0 netmask 255.255.255.0 {
deny unknown-clients;
min-lease-time 300;
default-lease-time 1800;
max-lease-time 1800;
use-host-decl-names on;
option subnet-mask 255.255.255.0;
option routers 192.168.1.200;
host node01
{
hardware ethernet 00:30:48:71:24:23;
fixed-address node01;
filename "/tftpboot/pxelinux.0";
}
host node02
{
hardware ethernet 00:30:48:71:23:A3;
fixed-address node02;
filename "/tftpboot/pxelinux.0";
}}
- Lembrar de configurar todas as interfaces de rede, mesmo que ela não ofereça o serviço, deixando a em branco.
- A seguir, basta instalar o tftp server, normalmente é utilizado o tftp-hpa.
- Carregar o serviço com o daemon xinetd.
- Verifique se o serviço está ok em
/etc/xinetd.d/tftp
- Com os serviços configurados, agora precisamos configurar o diretório
/tftpboot
onde o pxe e o sistema carregarão as configurações e o boot para a instalação.
Note que em
dhcpd.conf
(
filename "/tftpboot/pxelinux.0";
)
é definido o arquivo binário de boot. Esse arquivo pode ser copiado do próprio cd de instalação ou
http://syslinux.zytor.com/pxe.php
No Redhat esse arquivo pode ser encontrado em
/usr/lib/syslinux/pxelinux.0
- A seguir criamos um arquivo de configuração baseado no lilo.conf em
/tftpboot/pxelinux.cfg/default
e como exemplo:
# Mensagem a ser apresentada
DISPLAY pxelinux.cfg/message.txt
# timeout de espera
TIMEOUT 100
# Sempre mostrar o prompt
PROMPT 1
# Default e' realizar o boot normal
DEFAULT boot
LABEL boot
LOCALBOOT 0
LABEL linux
kernel vmlinuz
append ks=nfs:192.168.1.200:/export/kickstart/linux.ks initrd=initrd.img devfs=nomount
#console=ttyS1,19200
- Note que configuramos o boot, parecido com
lilo.conf
, porém ele será utilizado pelo node remotamente através do pxe.
- Também podemos configurar a mensagem que aparece no boot remoto. Em
/tftpboot/pxelinux.cfg/message.txt
conforme o arquivo anterior:
DISPLAY pxelinux.cfg/message.txt
"boot"
para boot via hd
“linux”
para instalar o node
- Lembre-se que os termos em “” depende da definição do arquivo anterior:
LABEL linux
.
- Explicando sobre o kickstart:
# Kickstart file automatically generated by anaconda.
- Essa primeira parte define o teclado e o suporte de linguas
lang en_US.UTF-8
langsupport --default en_US.UTF-8 en_US.UTF-8 pt_BR.UTF-8
keyboard us-acentos
- Define se será configurado um mouse no sistema
mouse genericwheelps/2 --device psaux
reboot
- Metodo de instalacao pode ser upgrade ou install
install
- Modo de instalaçao se será grafico ou texto
text
- De onde posso pegar os arquivos para instalação, nesse caso, são os arquivos contidos no cd ou ftp da distribuição
- NFS ou CD ou FTP ou HTTP
nfs --server 192.168.1.100 --dir /raid1/SL_308_i386
#Configurando o X
- A primeira linha eh especifica para o node novo, a segunda eh generica, onde é detectada a placa de video
#xconfig --card "ATI Radeon (generic)" --videoram 16384 --hsync 30-70 --vsync 50-160 --resolution 1024x768 --depth 24 --defaultdesktop gnome
xconfig --resolution 1024x768 --depth 24 --defaultdesktop gnome
- Definindo a placa de rede. Você pode definir como sera a placa de rede e quais interfaces
#network --device eth0 --bootproto dhcp
network --device eth1 --bootproto dhcp
- Senha criptografada: itautec
rootpw --iscrypted $1$96lpAZKJ$RpfvtqR8nP9AHrScGgjQM.
- Habilita ou desabilita o firewall
firewall –disabled
- Define autenticacao e timezone
authconfig --enableshadow --enablemd5
timezone America/Sao_Paulo
#System bootloader, utiliza o grub como padrão e instala na mbr
bootloader --location=mbr
#Partition, particionamento automático
zerombr yes
clearpart --all
part /boot --fstype ext3 --size 100 --asprimary
part / --fstype ext3 --size 12288 --asprimary
part swap --size 4096 --asprimary
part /var --fstype ext3 --size 4096
part /tmp --fstype ext3 --size 2048
part /scratch --fstype ext3 --size 1 --grow
- Definicao dos pacotes a serem instalados. @ quer dizer que são grupos, os pacotes listados a seguir são opcionais aos grupos e os pacotes que possuem – no inicio, são para não serem instaladas mesmo sendo dos grupos.
%packages
@ engineering-and-scientific
@ brazilian-support
@ admin-tools
@ portuguese-support
@ editors
@ system-tools
@ base-x
@ graphics
@ development-tools
@ misc-sl
@ gnome-desktop
@ dialup
@ apt-rpm
@ yum
@ openafs-client
@ server-cfg
pine
-octave
net-snmp-utils
SL_enable_serialconsole
anacron
firefox
-pvm
-units
kernel
grub
pcp
-samba-client
-blas
kernel-module-openafs-2.4.21-47.0.1.ELsmp
-lam
kernel-smp-unsupported
-lapack
kernel-smp
- Aqui voce pode personalizar a instalacao, rodando scripts bash padrao após a instalacao basica. Um detalhe, eh que na instalacao o source (onde estao os arquivos) esta montado em /mnt/source e o seu hd (o sistema que foi instalado) em
/mnt/sysimage
%post --nochroot
- Aqui por exemplo, configura os serviços que serão ou não utilizados
echo "Configurando chkconfig"
for f in sshd
{chroot /
mnt/sysimage chkconfig ${f} on
}
for f in cups hpoj pcmcia rhnsd sendmail yum
{chroot /
mnt/sysimage chkconfig --level 23456 ${f} off
}