>_Servidor pxe Centos 6.4 x86_64 com repositório local

Criando um servidor PXE 

PXE. Este é um padrão de boot remoto desenvolvido pela Intel que consiste em um pequeno software gravado na ROM da placa de rede. Através dele é possível  que o PC dê o boot pela rede, carregando todos os softwares necessários a partir de um servidor previamente configurado.

Fonte: www.hardware.com.br/termos/pxe

Mão-na-massa!

Cenário:
Servidor PXE: CentOS 6.4 x86_64
IP: 192.168.1.19
Hostname: centos.dominio.com.br
DNS: centos.dominio.com.br

Passo 1 – Pacotes necessários

# yum install createrepo httpd tftp-server screen syslinux syslinux-extlinux wget
# chkconfig httpd on
# chkconfig xinetd on
# service httpd start
# service xinetd restart

Passo 2 – Baixando a Iso do CentOS 6.4 x86_64

# wget http://mirrors.kernel.org/centos/6.4/isos/x86_64/CentOS-6.4-x86_64-bin-DVD1.iso

Passo 3 – Alterando o arquivo /etc/xinetd.d/tftp
Altere conforme exemplo abaixo:

# vim /etc/xinetd.d/tftp
# default: off
# description: The tftp server serves files using the trivial file transfer \
# protocol. The tftp protocol is often used to boot diskless \
# workstations, download configuration files to network-aware printers, \
# and to start the installation process for some operating systems.
service tftp
{
 socket_type = dgram
 protocol = udp
 wait = yes
 user = root
 server = /usr/sbin/in.tftpd
 server_args = -s /tftpboot
 disable = no
 per_source = 11
 cps = 100 2
 flags = IPv4
}

Passo 4 – Criando a estrutura do diretório /tftpboot

# mkdir /tftpboot
# cd /tftpboot
# cp /usr/share/syslinux/pxelinux.0 /tftpboot/
# cp /boot/extlinux/menu.c32 /tftpboot/
# cp /boot/extlinux/vesamenu.c32 /tftpboot/
# cp /boot/extlinux/memdisk /tftpboot/
# cp /boot/extlinux/reboot.c32 /tftpboot/
# cp /boot/extlinux/mboot.c32 /tftpboot/
# cp /boot/extlinux/chain.c32 /tftpboot/
# mkdir pxelinux.cfg

Passo 5 – Criando o arquivo default

# cd /tftpboot/pxelinux.cfg
# vim default
default vesamenu.c32
MENU BACKGROUND pxelinux.cfg/centos-pxe.jpg
menu color hotsel 30;47 #40000000 #20ffffff 
menu color sel 30;47 #40000000 #20ffffff 
menu color scrollbar 30;47 #40000000 #20ffffff 
menu color help 37;40 #c0ffffff #00000000 std 
LABEL CentOS 6.4 x86_64 
kernel centos_6_x86_64/pxeboot/vmlinuz 
append initrd=centos_6_x86_64/pxeboot/initrd.img ks=http://centos.dominio.com.br/installer/install.cfg 

menu separator 
label REINICIAR O COMPUTADOR 
com32 reboot.c32 
EOF

Passo 6 – Baixando o papel de parede do servidor PXE

# cd /tftpboot/pxelinux.cfg
# wget http://documentacoes.tutoriaisgnulinux.com/Imagens/centos-pxe.jpg

Passo 7 – Criando a estrutura de diretórios para o repositório

# mkdir /mnt/IMAGENS
# mkdir -p /var/www/html/centos/6.4/{os,updates}/x86_64
# ln -s /var/www/html/centos/6.4 /var/www/html/centos/6

Passo 8 – Montando a imagem iso(CentOS 6.4 x86_64) no diretório /mnt/IMAGENS/

# mount -o loop /opt/CentOS-6.4-x86_64-bin-DVD1.iso /mnt/IMAGENS/

Passo 9 – Copiando o conteúdo do diretório /mnt/IMAGENS/ para o diretório do repositório CentOS 6.4 x86-64

# cd /mnt/IMAGENS
# cp -rf * /var/www/html/centos/6.4/os/x86_64/

Passo 10 – Copiando o diretório pxeboot para o diretório /tftpboot/centos_6_x86_64/
OBS: Neste diretório deverá conter os arquivos de inicialização do CentOS 6.4 x86_64:
initrd.img TRANS.TBL vmlinuz

# mkdir /tftpboot/centos_6_x86_64
# cp -rf /var/www/html/centos/6.4/os/x86_64/images/pxeboot/ /tftpboot/centos_6_x86_64/

Passo 11 – Baixando cerca de 11G do repositório oficial do CentOS

# screen -S updates
# /usr/bin/rsync -avrt rsync://mirrors.kernel.org/centos/6.4/updates/x86_64/ --exclude=debug /var/www/html/centos/6.4/updates/x86_64/

Passo 12 – Download das chaves GPG

/usr/bin/rsync -avt --progress rsync://mirrors.kernel.org/centos/RPM-GPG-KEY-CentOS-6 /var/www/html/centos

Passo 13 – Configurando o Httpd

# cd /etc/httpd/conf.d
# vim centos.conf
Alias /centos "/var/www/html/centos/"
<Directory "/var/www/html/centos/">
Allow from all
</Directory>
# vim installer.conf
Alias /installer "/var/www/html/installer/"
<Directory "/var/www/html/installer/">
Allow from all
</Directory>
# /etc/init.d/httpd restart

Passo 14 – Baixando o repositório rpmforge para o diretório /var/www/html/installer/

# cd /var/www/html/installer/
# wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm

Passo 15 – Criando o arquivo Kickstart. Este arquivo irá ser carregado no momento da instalação via PXE

# cd /var/www/html/installer/
# vim install.cfg
# Kickstart file automatically generated by anaconda.
# Modified substantially by chort

install
interactive

# REPOSITORIO DE INSTALACAO
url --url http://centos.dominio.com.br/centos/6.4/os/x86_64/

# TECLADO
keyboard br-abnt2

# NETWORK 
network --device eth0 --bootproto dhcp

# SENHA DO ROOT
rootpw password

# SELINUX E FIREWALL
firewall --disabled
selinux --disabled

# DESABILITANDO SERVICOS
services --disabled bluetooth,cups,iptables,ip6tables,lvm2-monitor

# PACOTES PARA INSTALACAO
%packages
 @core
 @base
 @fonts
 wget
 gcc
 make
 vim-enhanced
 xorg-x11-xauth
 sysfsutils
 screen
%end

# DEFININDO O HOSTNAME DO SERVIDOR
%pre
 #!/bin/bash
 exec < /dev/tty6 > /dev/tty6
 chvt 6
 clear
 echo "#######################################"
 echo "# Definindo o Hostname (FQDN) do SRV! #"
 echo "#######################################"
 echo -n "Entre com o hostname do servidor: "
 read hostn
 hostname $hostn
 echo -e "NETWORKING=yes\nHOSTNAME=$hostn" > /etc/sysconfig/network
 echo "Aperte a tecla Enter"
 read
 ###Retornando ao TTY1###
 exec < /dev/tty1 > /dev/tty1
 chvt 1
%end

# SCRIPTS POS INSTALACAO
%post
 cd /etc/yum.repos.d
 rm -rf *.repo
 wget http://centos.dominio.com.br/installer/CentOS-local.repo
 wget http://centos.dominio.com.br/installer/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
 rpm -i rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
 rm -rf rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
 yum clean all
 yum update -y
 yum install htop ifstat -y
%end

Passo 16 – Criando o arquivo CentOS-local.repo

# cd /var/www/html/installer
# vim CentOS-local.repo
# released base
[base]
name=CentOS-$releasever - Base
baseurl=http://centos.dominio.com.br/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://centos.dominio.com.br/centos/RPM-GPG-KEY-CentOS-6

#released updates
[update]
name=CentOS-$releasever - Updates
baseurl=http://centos.dominio.com.br/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://centos.dominio.com.br/centos/RPM-GPG-KEY-CentOS-6

Passo 17 – Criando o script de atualização do repositório

# cd /var/www/html/installer
# vim atualiza-repositorio.sh
#!/bin/bash

RSYNC="/usr/bin/rsync"
$RSYNC -avrt --progress rsync://mirrors.kernel.org/centos/6/os/x86_64/ --exclude=iso  /var/www/html/centos/6/os/x86_64/
$RSYNC -avrt --progress rsync://mirrors.kernel.org/centos/6/updates/x86_64 --exclude=debug /var/www/html/centos/6/updates/x86_64/
$RSYNC -avrt --progress rsync://mirrors.kernel.org/centos/RPM-GPG-KEY-CentOS-6 /var/www/html/centos
# chmod +x atualiza-updates.sh

OBS: Adicione o script no Crontab

# crontab -e
0 0 * * * /var/www/html/installer/atualiza-repositorio.sh >> /tmp/cron_log_atualiza_repositorio.log

OBS:
Para que o servidor PXE funcione, é preciso configurar o servidor DHCP inserindo as linhas abaixo:

# vim /etc/dhcpd.conf
option root-path "/tftpboot";
next-server 192.168.1.19;
filename "pxelinux.0";

Configurado.

Captura de tela de 2013-05-03 11:05:47

>_Servidor pxe Centos 6.4 x86_64 com repositório local
Tagged on:

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

%d blogueiros gostam disto: