sábado, 1 de fevereiro de 2014

Servidor PXE com Clonezilla








Fala galera, estou aqui depois de bastante tempo para mostrar uma solução que apliquei tem pouco tempo no trabalho. É uma verdadeira mão na roda para quem tem que gerenciar muitos computadores com o hardware igual.

Imagine que trabalha gerenciando uns 100 ou 200 computadores iguais. Imagina ter que instalar sistema operacional em todos esses computadores. Agora imagina instalar sistema, leitor de pdf, pacote office, descompactador, navegadores, etc. Não sei você, mas eu não tenho tanto tempo disponível para fazer isso em todos os computadores.

Ainda bem que criaram uma solução em que podemos clonar a instalação em um desses computadores e colocar nos demais. Para facilitar mais ainda resolvi juntar essa solução com um servidor PXE, para que quando a estação de trabalho executar o boot pela placa de rede carregue o clonezilla, como se ele estivesse na unidade de cd, e melhor ainda, salvar e recuperar a imagem direto no mesmo servidor. Mão na massa.





Primeiro, vamos fazer a instalação dos pacotes necessários:



#apt-get install tftpd-hpa dhcp3-server syslinux unzip


Vamos acessar dentro de "vi /etc/dhcp/dhcpd.conf"e, no final do arquivo fazer algumas configurações.





        subnet: ip da rede.
        netmask: máscara de sub-rede.
        range: intervalo de ips.
        next-server: ip do servidor pxe.
        option subnet-mask: máscara de sub-rede.
        option broadcast-address: endereço de broadcast.
        option routers: gateway padrão.



Agora vá no site do projeto clonezilla e baixe o arquivo .zip.

Para os testes, baixei o arquivo "clonezilla-live-2.2.0-31-amd64.zip".

Copie o pxelinux.0 para o local:

#cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot


Agora descompactar o arquivo baixado:

#unzip clonezilla-live-2.2.0-31-amd64.zip

Vamos, com esses 3 comandos copiar as pastas para seus devidos lugares:

#cp live/vmlinuz /var/lib/tftpboot/
#cp live/initrd.img /var/lib/tftpboot/
#cp live/filesystem.squashfs /var/lib/tftpboot/


Vamos acessar a pasta para continuar configurando:

cd /var/lib/tftpboot

Dentro dessa pasta vamos criar um arquivo para apresentar um menu depois do boot:


#touch boot.txt

Fica a seu critério, mas eu utilizei uma ascii arte que encontrei no site "http://www.network-science.de/ascii/". Assim as opções de boot ficar mais apresentáveis:


========================================================================
      ___                                        ___    ___
     /\_ \                                   __ /\_ \  /\_ \
  ___\//\ \     ___     ___      __   ____  /\_\\//\ \ \//\ \      __
 /'___\\ \ \   / __`\ /' _ `\  /'__`\/\_ ,`\\/\ \ \ \ \  \ \ \   /'__`\
/\ \__/ \_\ \_/\ \L\ \/\ \/\ \/\  __/\/_/  /_\ \ \ \_\ \_ \_\ \_/\ \L\.\_
\ \____\/\____\ \____/\ \_\ \_\ \____\ /\____\\ \_\/\____\/\____\ \__/.\_\
 \/____/\/____/\/___/  \/_/\/_/\/____/ \/____/ \/_/\/____/\/____/\/__/\/_/


======== Opcoes de boot: ==============================================

>> clonezilla ......... Inicializacao normal
>> clonezilla_safe .... Inicializacao em modo seguro

=======================================================================

Agora vamos criar uma pasta e dentro dessa pasta um arquivo de configurações:

#mkdir pxelinux.cfg
#touch pxelinux.cfg/default


Agora copie o seguinte texto para o arquivo "pxelinux.cfg/default":



DISPLAY boot.txt
LABEL clonezilla
kernel vmlinuz
append initrd=initrd.img boot=live config union=aufs noswap noprompt vga=788 fetch=tftp://192.168.1.10/filesystem.squashfs
LABEL clonezilla_safe
kernel vmlinuz
append initrd=initrd.img boot=live config union=aufs noswap noprompt vga=normal nomodeset nosplash fetch=tftp://192.168.1.10/filesystem.squashfs
PROMPT 1
TIMEOUT 0

Lembrando que deve alterar o número ip do seu servidor PXE.



Pronto, no menu interativo que criamos no arquivo boot.txt digite a opção desejada e pressione "enter".





Fonte: http://techno-geeks.org/2010/07/linux-disk-imaging-with-clonezilla-and-pxe/