Introdução
Esse artigo visa instruir na criação de um boot server, servirá para instalações remotas de Sistemas Operacionais dispensando qualquer mídia, isso se sua BIOS tiver boot pela LAN. ( NetworkBoot )
Atualizado: 16/09/2012
Bom moçada, procurando desafios e tentando aprender cada vez mais tentei colocar em prática uma idéia antiga.
Quem já trabalhou comigo deve se lembrar disso, né André.
Qualquer pessoa que trabalha dando manutenção em PCs, sabe que as vezes é complicado achar a mídia correta e quando achamos ela sempre está arranhada.
Esse é só mais um dos motivos que me incentivou a criar nosso servidor de instalação remota, bom vai ficar bem longo esse artigo então sem mais delongas...
Necessário
- Tempo
- Dedicação
- ISO do servidor, pode ser ubuntu server, debian, etc...
- Memória suficiente para alimentar 2 VMs
- Alguns pacotes sendo eles:
No Servidor :
- dhcp ( Atribui IP para as máquinas e ativa o PXE se for solicitado)
- pxe ( Faz a leitura dos arquivos )
- tftp-hpa ( Disponibiliza os arquivos para boot )
- ltsp-server ( Habilita o servidor a passar os arquivos )
- lftp or wget ( Será para clonar os arquivos netboot para instalação )
Hospedeiro :
- uml_utilities ( Libera criação de placa virtual tap0 )
- bridge-utils ( Cria a placa br0 bridge )
Para vocês conseguirem entender vou trabalhar no seguinte cenário:
- Terei uma máquina com DHCP atribuindo o IP.
- Assim que alguém bootar pela rede e solicitar os arquivos PXE, o servidor irá liberar esses arquivos.
- A máquina será direcionada para a partição dos arquivos e irá bootar, semelhante a um boot por mídias.
Irei utilizar placas virtuais para conseguir a comunicação, porém o método e configuração são as mesmas se você usar servidores físicos.
Receita
1° Vamos criar nossas placas virtuais para a comunicação
Servidor : tap0
Cliente : tap1
Nos comandos acima temos:
- Criamos a placa virtual tap0
- Criamos a placa virtual tap1
- Criamos a placa virtual bridge ( ponte ) br0
- Criamos uma PONTE entre eth0 e br0
- Encaixamos tap0 na ponte br0
- Encaixamos tap1 na ponte br0
Imagine br0 como se fosse um roteador, e tap0, tap1 como os fios de cada computador.
2° Criando as máquinas
Já mostrei como usar KVM para virtualização em um outro artigo, para ver mais sobre clique aqui ou na guia 'Linux'.
Acima temos:
- Criamos o "HD" do servidor com 10G no formato vmdk
- Criamos o "HD" do cliente com 10G no formado vmdk
Usei o vmdk por ser algo compatível com VMware e Virtualbox, caso alguém queira subir em outro virtualizador.
3° O Servidor
Atenção: Não vou entrar em detalhes no passo a passo da instalação do servidor, afinal usei o ubuntu e é só clicar avançar e instalar ele, de forma que ligue e esteja na internet para instalarmos os pacotes do primeiro passo.
Para inicializar minha máquina usei o seguinte comando:
Troque o -cdrom ubuntu-server.iso pela imagem de sua preferencia.
Agora que nosso servidor está de pé, vamos atualizar o o repositório com:
Depois instale o dhcp:
Depois instale o PXE:
Depois instale o ltsftp:
Para versões mais antigas:
Para versões mais novas:
Configurando DHCP
1° Vamos configurar o IP do nosso servidor, ele terá a função de DHCP, vamos configurar um ip alto para ele para ficar diferente dos demais.
Dentro do arquivo /etc/network/interfaces adicione as seguintes linhas:
Depois salve e digite:
2° Agora que temos nosso IP, vamos para a configuração do DHCP, lembre-se que estou usando a versão dhcp3-server, porém a configuração é a mesma para o isc-dhcp-server e outras versões.
Dentro do arquivo adicione :
Reinicie o serviço de dhcp:a
OBS: Seu dhcp já está ativo, eu fiz um teste aqui subindo uma maquina virtual usando o live-cd e depois digitando dhcliente eth0. Como o dhcp está ok ele pego ip sozinho.
Agora que configuramos nosso dhcp e testamos ele, vamos para o arquivo PXE.
Fontes
Links consultados para conclusão deste how to.
- http://manifesto.blog.br/2.0/Linux/kvm-vde
Depois instale o ltsftp:
Para versões mais antigas:
Para versões mais novas:
Configurando DHCP
1° Vamos configurar o IP do nosso servidor, ele terá a função de DHCP, vamos configurar um ip alto para ele para ficar diferente dos demais.
Dentro do arquivo /etc/network/interfaces adicione as seguintes linhas:
Depois salve e digite:
2° Agora que temos nosso IP, vamos para a configuração do DHCP, lembre-se que estou usando a versão dhcp3-server, porém a configuração é a mesma para o isc-dhcp-server e outras versões.
Dentro do arquivo adicione :
Reinicie o serviço de dhcp:a
OBS: Seu dhcp já está ativo, eu fiz um teste aqui subindo uma maquina virtual usando o live-cd e depois digitando dhcliente eth0. Como o dhcp está ok ele pego ip sozinho.
Na imagem acima tenho a maquina virtual,
realizando boot pelo liveCD do backtrack4
realizando boot pelo liveCD do backtrack4
Na esquerda tenho o ubuntu server 10.04 com dhcp3 ativo,
na direita repare que no backtrack usei o comando dhcliente eth0.
na direita repare que no backtrack usei o comando dhcliente eth0.
Agora que configuramos nosso dhcp e testamos ele, vamos para o arquivo PXE.
Configurando o PXE
Bom na verdade o PXE não precisa de configuração e sim dos arquivos da máquina que queremos disponibilizar para boot.
Para conseguirmos esses arquivos vamos usar o comando wget :
1° Crie uma pasta para armazenar os arquivos e use um dos comandos abaixo:
WGET
Lembre-se a ultima pasta deve ser sempre a NETBOOT
LFTP
Caso o wget não funcione use o lftp
Repare que diferente do wget no lftp você encerra o link na pasta anterior ao netboot, nos repositórios do debian a ultima pasta antes do netboot é a images e depois especificamos a ultima pasta que você quer clonar, nesse caso a netboot.
Opções de arquivos PXE para serem baixados.
Ubuntu Lucid PXE: http://mirror.globo.com/ubuntu/archive/dists/lucid/main/installer-i386/current/images/netboot/
Debian Wheezy PXE: http://ftp.de.debian.org/debian/dists/wheezy/main/installer-i386/current/images/netboot/
Não tenho certeza mas acho que do slackware é :
ftp://ftp.slackware-brasil.com.br/slackware-13.37/isolinux/
Depois com os arquivos já baixados, coloque eles dentro da pasta do tftp, no meu ubuntu server 10.04 o caminho é:
No Debian Wheezy com as ultimas versões do kernel 3.2 ficou dentro de:
Reinicie o pxe e o tftp:
Agora que temos os arquivos dentro da pasta correta, inicialize a segunda maquina virtual, para bootar pelo "NetworkBoot".
No próprio KVM na hora de inicializar ele procura pelo DHCP e pelo arquivo PXE, caso o dhcp esteja correto na rede ele irá funcionar.
Bom na verdade o PXE não precisa de configuração e sim dos arquivos da máquina que queremos disponibilizar para boot.
Para conseguirmos esses arquivos vamos usar o comando wget :
1° Crie uma pasta para armazenar os arquivos e use um dos comandos abaixo:
WGET
Lembre-se a ultima pasta deve ser sempre a NETBOOT
LFTP
Caso o wget não funcione use o lftp
Repare que diferente do wget no lftp você encerra o link na pasta anterior ao netboot, nos repositórios do debian a ultima pasta antes do netboot é a images e depois especificamos a ultima pasta que você quer clonar, nesse caso a netboot.
Opções de arquivos PXE para serem baixados.
Ubuntu Lucid PXE: http://mirror.globo.com/ubuntu/archive/dists/lucid/main/installer-i386/current/images/netboot/
Debian Wheezy PXE: http://ftp.de.debian.org/debian/dists/wheezy/main/installer-i386/current/images/netboot/
Não tenho certeza mas acho que do slackware é :
ftp://ftp.slackware-brasil.com.br/slackware-13.37/isolinux/
Depois com os arquivos já baixados, coloque eles dentro da pasta do tftp, no meu ubuntu server 10.04 o caminho é:
No Debian Wheezy com as ultimas versões do kernel 3.2 ficou dentro de:
Reinicie o pxe e o tftp:
Agora que temos os arquivos dentro da pasta correta, inicialize a segunda maquina virtual, para bootar pelo "NetworkBoot".
No próprio KVM na hora de inicializar ele procura pelo DHCP e pelo arquivo PXE, caso o dhcp esteja correto na rede ele irá funcionar.
Pronto, agora basta desfrutar do seu boot server e esqueça de passar raiva com mídia arranhadas que travam no meio da instalação.
Fontes
Links consultados para conclusão deste how to.
- http://manifesto.blog.br/2.0/Linux/kvm-vde
- http://www.howtoforge.com/setting-up-a-pxe-install-server-for-multiple-linux-distributions-on-debian-lenny
- http://www.vivaolinux.com.br/artigo/Ubuntu-Server-1204-LTS-Como-Servidor-Gateway-e-DHCP?pagina=2
- https://wiki.archlinux.org/index.php/User-mode_Linux
- http://www.vivaolinux.com.br/artigo/Ubuntu-Server-1204-LTS-Como-Servidor-Gateway-e-DHCP?pagina=2
- https://wiki.archlinux.org/index.php/User-mode_Linux
Resumindo
Fiz alguns testes com máquinas virtuais e gostei dos resultandos, ainda não procurei como disponibilizar mais de uma imagem OS diferente para instalar, imagino que seja possível escolher o sistema operacional, deixarei isso para um próximo dia caso eu ache.
Espero que tenham gostado e até a próxima.
Att.
Antonio Thomacelli Gomes
e-mail: tonnytg@gmail.com
http://linuxresort.blogspto.com








Ola Antonio, tudo bom?! Cara excelente seu tuto, mas minha curiosidade maior é exatamente o que me levou pelo google até aqui:
ResponderExcluir"Como disponibilizar várias imagens?"
Vc conseguiu descobrir?
Thiago Alencar
thiagoalencar1983@gmail.com
Opa, muito obrigado.
ExcluirNão tive necessidade de mais imagens, mas em um dos links que cito tem esse passo a passo.
http://www.howtoforge.com/setting-up-a-pxe-install-server-for-multiple-linux-distributions-on-debian-lenny-p2
Ola Antonio thomacelll você mim ajudou muito mas tó com vario problema com o "qemu-kvm" você não poderia fazer um tutorial com o virtual-box?
ResponderExcluirAgradeço cara pelo tutorial!!
Lamento não terei como utilizar o virtualbox, meu tempo é bem contado e liberar um artigo toda semana não é fácil =/
ExcluirMas basta manter as mesmas configurações das maquinas no virutalbox, a única diferença é a placa de bridge que você terá que criar com o tuntap e depois ativar na configuração da maquina virtual criada.
Muito bom vou testar
ResponderExcluir