sábado, 22 de dezembro de 2012

Servidor PXE

A utilização de um servidor PXE numa rede permitirá que os clientes da rede possam arrancar através da rede. Isto permitirá por exemplo:

  • fazer instalações por rede;
  • utilizar o Clonezilla Live para fazer o upload/download de imagens de discos;
  • executar ferramentas de teste: memtest;
  • executar LiveCD por rede;
  • etc...

0. Resumo

  • Servidor com ubuntu server 12.04 LTS
  • Instalação do serviço TFTP
  • Configuração do serviço DHCP para suporte ao arranque por PXE

1. Instalação

O serviço TFTP pode ser instalado a partir de vários pacotes, contudo o que melhor suporte dá ao pxelinux é o tftpd-hpa [www].
sudo aptitude install tftpd-hpa
O ficheiro de configuração por defeito pode ser editado para confirmar os diretórios a utilizar pelo servidor TFTP:
sudo nano /etc/default/tftpd-hpa
# /etc/default/tftpd-hpa

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure"

Neste caso o diretório será: /tftpboot

1. Instalação

Como o serviço vai necessitar de vários ficheiros, será criada a seguinte estrutura de ficheiros e diretórios para melhor os organizar:
/tftpboot/
|-- pxelinux.0

|-- pxelinux.cfg/
    |-- default
    |-- local.cfg

    |-- menu.conf
    |-- splash.png

    |-- vesamenu.c32

|-- install/
    |-- install.cfg

    |-- ubuntu_12.04/
        |-- amd64

        |-- i386/ 

|-- live/
    |-- live.cfg
    |-- core/

|-- utils

    |-- utils.cfg

    |-- memtest/
    |-- clonezilla/

        |-- amd64

        |-- i486 


Os ficheiros .cfg serão criados de forma a permitir ter as opções de arranque necessárias.
Cada diretório está destinado a um tipo de utilização que pode conter diversos sistemas. Em cada sistema poderá existir depois uma separação por arquitetura (i386, amd64, etc).

É necessário obter então os ficheiros necessários ao arranque por PXE:
wget http://archive.ubuntu.com/ubuntu/dists/precise/main/installer-i386/current/images/netboot/netboot.tar.gz

tar -zxvf netboot.tar.gz

sudo mv ubuntu-installer/i386/pxelinux.0 /tftpboot
sudo mv ubuntu-installer/i386/boot-screens/syslinux.cfg /tftpboot/pxelinux.cfg/default
sudo mv ubuntu-installer/i386/boot-screens/* /tftpboot/pxelinux.cfg/
rm -r ubuntu-installer/i386/boot-screens

rm -r ubuntu-installer/i386/pxelinux.cfg

sudo mv ubuntu-installer/i386 /tftpboot/install/ubuntu_12.04/

A partir daqui toda a configuração será feita nos ficheiros existentes em /tftpboot/pxelinux.cfg/:
sudo nano pxelinux.cfg/default
include pxelinux.cfg/menu.cfg
default pxelinux.cfg/vesamenu.c32
prompt 0
timeout 0





2. Configurar servidor DHCP

É necessário adicionar:
allow booting;
allow bootp;

next-server 192.168.2.101;
filename "pxelinux.0";


3. Personalização

3.1 INCLUDE
Permite incluir o conteúdo de outro ficheiro de configuração no local em que é invocado.

3.2 LABEL
String que descreve o kernel e as opções, tem que ser único depois de convertido para um nome de ficheiro DOS (8 caracteres mais extensão).
Pode ser seguida de diversos comandos.

KERNEL - indica o ficheiro que vai arrancar.
Em alternativa pode ser utilizado:
LINUX image - para arrancar uma imagem de kernel linux
BOOT image - para arrancar um bootstrap (.bs ou .bin)
FDIMAGE image - para arrancar uma floppy disk image (.img)
CONFIG file - para reiniciar o bootloader com um ficheiro de configuração diferente.

APPEND - permite adicionar opções ao comando do kernel.

INITRD initrd_file - permite definir um initrd ou vários, separados por vírgulas.

LOCALBOOT 0 - permite arrancar o disco local.


3.3 DEFAULT
Indica o comando por defeito introduzido no boot:.

3.4 Módulos para User Interface
Podem ser selecionados diferentes modos de interface: menu.c32 ou vesamenu.c32)

PROMPT flag - caso a flag seja 1, mostra sempre o prompt de boot:; caso a flag seja 0, apenas mostra o prompt de boot: se for pressionada a tecla Shift ou Alt.

NOESCAPE flag - caso a flag seja 1, ignora as teclas para mostrar ao prompt de boot; caso a flag seja 0 e esteja definido PROMPT 0, será arrancado boot definido por default.

NOCOMPLETE flag - caso a flag seja 1, a tecla 'tab' não mostra as labels definidas no prompt de boot:.

ALLOWOPTIONS flag - por defeito a flag é 1, e permite carregar as opções definidas no APPEND; caso a flag seja 0 o utilizador não poderá especificar qualquer opção.

TIMEOUT timeout - Indica quanto tempo pausa no prompt de boot, a unidade é 1/10 segundos. O timeout é cancelado quando se pressiona qualquer tecla. Por defeito é 0 o que indica que não tem qualquer timeout.

SAY mensagem - apresenta a mensagem no ecrã.

DISPLAY filename - Apresenta o ficheiro indicado no arranque antes do prompt de boot:.
F1 filename
F2 filename
...etc...
F9 filename
F10 filename
F11 filename
F12 filename

A imagem splash.png tem que ter a resolução 640x480 e o modo de cor indexado com 256 cores.

Sem comentários:

Enviar um comentário