Pesquisa de site

Como instalar o Ubuntu via servidor PXE usando fontes locais de DVD


PXE ou Preboot eXecution Environment é um mecanismo servidor-cliente que instrui uma máquina cliente a inicializar na rede.

Neste guia mostraremos como instalar o Ubuntu Server através de um servidor PXE com fontes HTTP locais espelhadas da imagem ISO do servidor Ubuntu via Apache web servidor. O servidor PXE usado neste tutorial é o Servidor DNSmasq.

Requisitos:

  1. Instalação do Ubuntu Server 16.04 ou 17.04
  2. Uma interface de rede configurada com endereço IP estático
  3. Imagem ISO do Ubuntu Server 16.04 ou 17.04

Etapa 1: instalar e configurar o servidor DNSMASQ

1. Para configurar o servidor PXE, na primeira etapa faça login com a conta root ou uma conta com privilégios de root e instale o pacote Dnsmasq no Ubuntu emitindo o seguinte comando.

apt install dnsmasq

2. Em seguida, faça backup do arquivo de configuração principal dnsmasq e comece a editar o arquivo com as seguintes configurações.

mv /etc/dnsmasq.conf /etc/dnsmasq.conf.backup
nano /etc/dnsmasq.conf

Adicione a seguinte configuração ao arquivo dnsmasq.conf.

interface=ens33,lo
bind-interfaces
domain=mypxe.local

dhcp-range=ens33,192.168.1.230,192.168.1.253,255.255.255.0,1h
dhcp-option=3,192.168.1.1
dhcp-option=6,192.168.1.1
dhcp-option=6,8.8.8.8
server=8.8.4.4
dhcp-option=28,10.0.0.255
dhcp-option=42,0.0.0.0

dhcp-boot=pxelinux.0,pxeserver,192.168.1.14

pxe-prompt="Press F8 for menu.", 2
pxe-service=x86PC, "Install Ubuntu 16.04 from network server 192.168.1.14", pxelinux
enable-tftp
tftp-root=/srv/tftp

No arquivo de configuração acima, substitua as seguintes linhas de acordo.

  • interface Substitua pela interface de rede da sua própria máquina.
  • domínio – Substitua pelo seu nome de domínio.
  • dhcp-range – Defina seu próprio intervalo de rede para DHCP alocar IPs para este segmento de rede e por quanto tempo um endereço IP para um cliente deve ser concedido.
  • dhcp-option=3 – Seu IP de gateway.
  • dhcp-option=6 IPs de servidores DNS – vários IPs DNS podem ser definidos.
  • servidor – Endereço IP do encaminhador DNS.
  • dhcp-option=28 – Seu endereço de transmissão de rede.
  • dhcp-option=42 – Servidor NTP – use 0.0.0.0 O endereço é para auto-referência.
  • dhcp-boot – o arquivo de inicialização pxe e o endereço IP do servidor PXE (aqui pxelinux.0 e endereço IP da mesma máquina).
  • pxe-prompt – Os usuários podem pressionar a tecla F8 para entrar no menu PXE ou esperar 2 segundos antes de mudar automaticamente para o menu PXE.
  • pxe=service – Use x86PC para arquiteturas de 32/64 bits e insira um prompt de descrição do menu entre aspas. Outros tipos de valores podem ser: PC98, IA64_EFI, Alpha, Arc_x86, Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI e X86-64_EFI.
  • enable-tftp – Ativa o servidor TFTP integrado.
  • tftp-root – o caminho do sistema para arquivos de inicialização da rede.

3. Além disso, após terminar de editar o arquivo de configuração dnsmasq, crie o diretório para os arquivos PXE netboot emitindo o comando abaixo e reinicie o daemon dnsmasq para aplicar as alterações. Verifique o status do serviço dnsmasq para ver se ele foi iniciado.

mkdir /srv/tftp
systemctl restart dnsmasq.service
systemctl status dnsmasq.service

Etapa 2: instalar arquivos de inicialização de rede TFTP

4. Na próxima etapa, pegue a versão mais recente da imagem ISO do servidor Ubuntu para arquitetura de 64 bits emitindo o seguinte comando.

wget http://releases.ubuntu.com/16.04/ubuntu-16.04.3-server-amd64.iso

5. Após o download do ISO do servidor Ubuntu, monte a imagem no diretório /mnt e liste o conteúdo do diretório montado executando os comandos abaixo.

mount -o loop ubuntu-16.04.3-desktop-amd64.iso /mnt/
ls /mnt/

6. Em seguida, copie os arquivos netboot da árvore montada do Ubuntu para o caminho do sistema tftp emitindo o comando abaixo. Além disso, liste o caminho do sistema tftp para ver os arquivos copiados.

cp -rf /mnt/install/netboot/* /srv/tftp/
ls /srv/tftp/

Etapa 3: preparar arquivos de origem de instalação local

7. As fontes de instalação em rede local para o servidor Ubuntu serão fornecidas via protocolo HTTP. Primeiro, instale, inicie e habilite o servidor web Apache emitindo os seguintes comandos.

apt install apache2
systemctl start apache2
systemctl status apache2
systemctl enable apache2

8. Em seguida, copie o conteúdo do DVD do Ubuntu montado para o caminho raiz da web do servidor web Apache executando os comandos abaixo. Liste o conteúdo do caminho raiz da web do Apache para verificar se a árvore montada ISO do Ubuntu foi completamente copiada.

cp -rf /mnt/* /var/www/html/
ls /var/www/html/

9. Em seguida, abra a porta HTTP no firewall e navegue até o endereço IP da sua máquina através de um navegador (http://192.168.1.14/ubuntu) para testar se você pode alcançar fontes via protocolo HTTP.

ufw allow http

Etapa 4: configurar o arquivo de configuração do servidor PXE

10. Para poder dinamizar os rootfs via PXE e fontes locais, o Ubuntu precisa ser instruído por meio de um arquivo preseed. Crie o seguinte arquivo local-sources.seed no caminho raiz do documento do servidor web com o seguinte conteúdo.

nano /var/www/html/ubuntu/preseed/local-sources.seed

Adicione a seguinte linha ao arquivo local-sources.seed.

d-i live-installer/net-image string http://192.168.1.14/ubuntu/install/filesystem.squashfs

Aqui, certifique-se de substituir o endereço IP de acordo. Deve ser o endereço IP onde os recursos da web estão localizados. Neste guia, as fontes da web, o servidor PXE e o servidor TFTP estão hospedados no mesmo sistema. Em uma rede lotada, você pode querer executar serviços PXE, TFTP e Web em máquinas separadas para melhorar a velocidade da rede PXE.

11. Um servidor PXE lê e executa arquivos de configuração localizados no diretório raiz TFTP pxelinux.cfg nesta ordem: arquivos GUID, arquivos MAC e arquivo padrão.

O diretório pxelinux.cfg já foi criado e preenchido com os arquivos de configuração PXE necessários porque copiamos anteriormente os arquivos netboot da imagem ISO montada no Ubuntu.

Para adicionar o arquivo de instrução preseed acima ao rótulo de instalação do Ubuntu no arquivo de configuração PXE, abra o seguinte arquivo para edição emitindo o comando abaixo.

nano /srv/tftp/ubuntu-installer/amd64/boot-screens/txt.cfg

No arquivo de configuração Ubuntu PXE txt.cfg substitua a linha a seguir conforme ilustrado no trecho abaixo.

append auto=true url=http://192.168.1.14/ubuntu/preseed/local-sources.seed vga=788 initrd=ubuntu-installer/amd64/initrd.gz --- quiet

O arquivo /srv/tftp/ubuntu-installer/amd64/boot-screens/txt.cfg deve ter o seguinte conteúdo global:

default install
label install
	menu label ^Install Ubuntu 16.04 with Local Sources
	menu default
	kernel ubuntu-installer/amd64/linux
	append auto=true url=http://192.168.1.14/ubuntu/preseed/local-sources.seed vga=788 initrd=ubuntu-installer/amd64/initrd.gz --- quiet 
label cli
	menu label ^Command-line install
	kernel ubuntu-installer/amd64/linux
	append tasks=standard pkgsel/language-pack-patterns= pkgsel/install-language-support=false vga=788 initrd=ubuntu-installer/amd64/initrd.gz --- quiet

12. Caso você queira adicionar a instrução preseed url ao menu Ubuntu Rescue, abra o arquivo abaixo e certifique-se de atualizar o conteúdo conforme ilustrado no exemplo abaixo.

nano /srv/tftp/ubuntu-installer/amd64/boot-screens/rqtxt.cfg

Adicione a seguinte configuração ao arquivo rqtxt.cfg.

label rescue
	menu label ^Rescue mode
	kernel ubuntu-installer/amd64/linux
	append auto=true url=http://192.168.1.14/ubuntu/preseed/local-sources.seed vga=788 initrd=ubuntu-installer/amd64/initrd.gz rescue/enable=true --- quiet

A linha importante que você deve atualizar é url=http://192.168.1.14/ubuntu/preseed/local-sources.seed que especifica o endereço URL onde o arquivo compactado está localizado em sua rede.

13. Por fim, abra o arquivo pxe menu.cfg do Ubuntu e comente as três primeiras linhas para expandir a tela de inicialização do PXE conforme ilustrado na imagem abaixo.

nano /srv/tftp/ubuntu-installer/amd64/boot-screens/menu.cfg

Comente estas três linhas a seguir.

#menu hshift 13
#menu width 49
#menu margin 8

Etapa 5: abra portas de firewall no Ubuntu

14. Execute o comando netstat com privilégios de root para identificar dnsmasq, tftp e portas abertas da web em estado de escuta em seu servidor, conforme ilustrado no trecho abaixo.

netstat -tulpn

15. Depois de identificar todas as portas necessárias, emita os comandos abaixo para abrir as portas no firewall ufw.

ufw allow 53/tcp
ufw allow 53/udp
ufw allow 67/udp
ufw allow 69/udp
ufw allow 4011/udp

Etapa 6: Instale o Ubuntu com fontes locais via PXE

16. Para instalar o servidor Ubuntu via PXE e usar as fontes de instalação da rede local, reinicie o cliente da sua máquina, instrua o BIOS para inicializar a partir da rede e na primeira tela do menu PXE escolha a primeira opção conforme ilustrado na imagens abaixo.

17. O procedimento de instalação deve ser executado normalmente. Quando o instalador chegar à configuração do país do espelho do arquivo Ubuntu, use a seta para cima do teclado para ir para a primeira opção, que diz: inserir informações manualmente.

18. Pressione a tecla [enter] para atualizar esta opção, exclua a string do espelho e adicione o endereço IP das fontes de espelho do servidor web e pressione enter para continuar conforme ilustrado na imagem abaixo.

http://192.168.1.14

19. Na próxima tela, adicione seu diretório de arquivo espelho conforme mostrado abaixo e pressione a tecla Enter para continuar com o processo de instalação e normalmente.

/ubuntu

20. Caso você queira ver informações sobre quais pacotes são baixados do espelho local da sua rede, pressione as teclas [CTRL+ALT+F2] para alterar o console virtual da máquina. e emita o seguinte comando.

tail –f /var/log/syslog

21. Após a conclusão da instalação do servidor Ubuntu, faça login no sistema recém-instalado e execute o seguinte comando com privilégios de root para atualizar os pacotes de repositórios de fontes de rede locais para espelhos oficiais do Ubuntu.

Os espelhos precisam ser alterados para atualizar o sistema utilizando os repositórios da internet.

sudo sed –i.bak ‘s/192.168.1.14/archive.ubuntu.com/g’ /etc/apt/sources.list

Certifique-se de substituir o endereço IP de acordo com o endereço IP de suas próprias fontes locais da web.

Isso é tudo! Agora você pode atualizar seu sistema de servidor Ubuntu e instalar todo o software necessário. Instalar o Ubuntu via PXE e um espelho de origem de rede local pode melhorar a velocidade de instalação e economizar largura de banda e custos de internet no caso de implantação de um grande número de servidores em um curto período de tempo em suas instalações.