Fog Project – Configurações Avançadas + Deploy de Imagens

Como citado no post anterior, o FOG Project (Free Opensource Ghost) é uma solução de software em rede para a gestão e implantação de sistemas operacionais, ou seja, uma solução para que sistemas operacionais pré-configurados e/ou personalizados (imagens de sistemas operacionais) sejam instalados (clonados) em computadores, rapidamente, através de uma rede local (LAN).

Neste post, considerando o FOG Project já instalado (de acordo com o post anterior), falaremos de suas configurações mais avançadas, como do servidor DHCP, dos parâmetros da BIOS, que devem ser usadas nos clientes e da criação de imagens dos sistemas operacionais Windows e Linux Ubuntu.

Configuração do DHCP

O servidor DHCP é uma peça chave no funcionamento do FOG Project, afinal, ele precisa informar aos clientes a presença de um ambiente de pré-inicialização (PXE – Preboot eXecution Environment), presente na rede.

O próprio FOG pode ser configurado, durante sua instalação, como servidor DHCP. A vantagem em usar esta opção é que você não precisará se preocupar com as configurações avançadas, porém, é muito provável que, em um ambiente corporativo e até em um home-lab (como é o caso por aqui, usado neste ambiente de testes), você já possua um serviço ativo de DHCP Server, como um firewall ou o próprio roteador da sua operadora de Internet. Por isso, trouxe duas opções para configurar o DHCP com os parâmetros necessários para o correto funcionamento do FOG: no pfSense e no Fortigate.

1 – Como configurar o pfSense (Boot PXE) usando o FOG Project

O pfSense é extremamente simples de ser configurado para que o seu servidor DHCP forneça os parâmetros de PXE. Para isso, vá ao pfSense, no menu Services / DHCP Server / Other Options / Network Booting / Show Advanced. De acordo com as informações abaixo e imagem, insira as seguintes configurações:

Enables network booting: check
Next server: Endereço IP do FOG Server
Default BIOS file name: undionly.kpxe
UEFI 32 bit file name: ipxe32.efi
UEFI 64 bit file name: ipxe.efi

Fog Project – pfSense DHCP Server Config

Feito isso, basta salvar a configuração. Como pode-se notar, o pfsense possui em sua interface uma maneira visual de configurar o DHCP. Esta funcionalidade cria uma tratativa para cada tipo de boot (067 – File name), sendo o tradicional Legacy Mode e os modos UEFI (Unified Extensible Firmware Interface), tanto de 32 bits como de 64 bits. Se você acessar o arquivo de configuração do DHCP do pfSense (arquivo: /var/dhcpd/etc/dhcpd.conf), poderá visualizar este detalhe:

subnet 192.168.1.0 netmask 255.255.255.0 {
pool {
option domain-name-servers 192.168.1.1;
range 192.168.1.100 192.168.1.150;
}
option routers 192.168.1.1;
option domain-name-servers 192.168.1.1;
ping-check true;
next-server 192.168.1.251;
if option arch = 00:06 {
filename "ipxe32.efi";
} else if option arch = 00:07 {
filename "ipxe.efi";
} else if option arch = 00:09 {
filename "ipxe.efi";
} else {
filename "undionly.kpxe";
}

2 – Como configurar o Fortigate usando o FOG Project

O Fortigate, da Fortinet, e o seu poderoso Forti OS, é um appliance UTM (Unified Threat Management), um equipamento bem conhecido por ser estável e recheado de recursos de rede e segurança. O grande detalhe do Fortigate é que, diferente do pfSense, ele não oferece uma tratativa para configurar cada tipo de boot (filename) no servidor DHCP. Mesmo através do CLI Console (Command-line interface), não foi possível configurar o servidor DHCP com todos os parâmetros acima. Por esta razão, além da configuração de Next Bootstrap Server, optou-se em usar apenas a opção de tipo de boot (067 – File name) com o UEFI 64 bits, que é compatível com a vasta maioria dos equipamentos atuais (notebooks e computadores), como pode ser observado na imagem abaixo:

Fog Project – Fortigate (v 6.0.13) DHCP Server Config (Menu Interfaces / Advanced / DHCP Server)

Nas versões mais recentes do Forti OS, como a 6.4, a opção de Lease Time está em um campo pré-definido, assim como o Next Bootstrap Server. Em testes, não foi necessário adicionar a entrada 67 – File name / ipxe.efi para que o Fog funcionasse corretamente, como no exemplo abaixo, onde a única configuração necessária foi informar o IP do servidor do Fog (192.168.0.14, neste exemplo) em next bootstrap server:

Fog Project – Fortigate (v 6.4.8) DHCP Server Config (Menu Interfaces / Advanced / DHCP Server)

Configurações de BIOS (clientes)

O último passo das configurações necessárias para o correto funcionamento do FOG Project é o de configurar os clientes (computadores) para efetuarem boot pela rede (assim como um thinclient busca um sistema operacional em rede). Para efetuar esta configuração é preciso acessar a BIOS (Basic Input/Output System) do computador cliente que varia de acordo com cada fabricante e, até mesmo, modelo de computador. Para acessar a BIOS do computador, deve-se teclar Delete, F2, F10 ou F12 (dependendo do fabricante) logo ao ligá-lo.

Boot via UEFI, 32 ou 64 bits (mais comum)

Deve-se desabilitar a função de Secure Boot e habilitar a função de UEFI / Network Boot (with PXE). Veja abaixo as imagens das BIOS da Dell e da HP:

BIOS Config Dell – Secure Boot: Disable
BIOS Config Dell – Network Boot: Integrated NIC / LAN Enable with PXE
BIOS Config HP – Network Boot = Enable (Protocolo: IP + UEFI); Secure Boot = Disabled

Importante destacar que alguns notebooks, principalmente com discos SSD M2, vem com a opção de SATA Operation (ou SATA Mode) em modo RAID. Para usar a instalação do sistema operacional via FOG, é preciso alterar para AHCI (imagem abaixo), caso contrário, o FOG não localizará o disco do computador.

BIOS Config Dell – System Configuration / Sata Operation

Boot em modo Legacy (computadores antigos)

Além de desabilitar o Secure Boot e habilitar o Network Boot (como no exemplo acima) você precisa habilitar o Legacy Mode, desabilitar o UEFI (Boot Options) e desabilitar o PTT Security (Dell). Em algumas BIOS, é preciso forçar o Network Boot Protocol para IPV4 Legacy. Em BIOS da Asus, é preciso desabilitar a opção Secure Boot Menu / Secure Boot Control.

Importante destacar que, em algumas BIOS (mais antigas), ao desabilitar configurações de segurança, você precisa salvar a configuração atual da BIOS, sair dela e entrar novamente (no próximo Boot), para então continuar a configurá-la.

Criando uma nova imagem (captura) 

O primeiro passo para criar uma imagem é preparar um computador ou uma máquina virtual com o sistema que deseja capturar. Este sistema, precisa estar conectado à mesma rede do servidor do FOG, via cabo de rede. Confirme se a BIOS, seja do computador, ou da máquina virtual, estão em modo EFI/UEFI e que a opção de Secure Boot esteja desabilitada. Para a imagem, recomenda-se deixar o sistema operacional completamente atualizado e instalar os softwares desejados, além de outras configurações que atendam à sua necessidade. 

Neste ambiente de testes, criamos duas imagens: um Windows 10 PRO e um Linux Ubuntu 20.04, usando um notebook e uma máquina virtual (ambiente VMware). Ambos foram completamente atualizados e alguns dos softwares mais comuns em ambientes de back-office foram instalados. Aproveito para destacar que, durante os testes e uso do sistema FOG e a manutenção / atualização (captura) da imagem em ambiente virtual (VMware), entendemos que a imagem “default/base” não pode contar com a funcionalidade de snapshots (o snapshot efetua alterações no disco virtual e estas geram erro (disk resizing) no processo de re/captura da imagem no FOG).

Na página de administração do FOG Project, vá em Images e use a opção de criar uma nova imagem, usando os seguintes parâmetros:

  • Nome da imagem:  Window10_Dell_Update-Fev21 ou Ubuntu20_Dell_Update-Fev21 (exemplos)
  • Descrição: insira informações para identificar a imagem
  • Tipo do SO: usar padrão (Windows ou Linux)
  • Image Type: usar padrão
  • Partition: usar padrão
Fog Project – Criando imagens de sistemas operacionais

Feito isso, volte ao computador ou máquina virtual preparada para a imagem. Se for um computador, ligue-o e tecle F12 (tecla padrão para selecionar a placa de rede como opção de boot), para selecionar a placa de rede (NIC) como opção de boot. Se for uma máquina virtual, ative a opção de boot através da placa de rede. Após o carregamento da tela inicial do FOG, selecione a opção Quick Registration and Inventory.

Fog Project – Tela de Boot padrão: Criando imagens de sistemas operacionais – Registrando o Host

Volte a administração do FOG, vá em Hosts e observe que foi registrado um novo Host. Clique em Capture, então em Host Image e selecione a imagem criada nos passos anteriores. Clique em Update. Volte ao Host (List All Hosts), clique novamente em Capture e então clique em Create Capture Tasking, para criar uma tarefa de captura no próximo boot deste host (computador preparado para a imagem). Você pode acessar o Menu Tasks para confirmar.

Fog Project – Criando imagens de sistemas operacionais – Hosts

Agora, volte novamente ao computador ou máquina virtual preparada e, mais uma vez, configure-o para que o boot seja através da placa de rede. A captura deve começar automaticamente em alguns minutos (é possível acompanhar pela interface do FOG, na função tasks).

Importante: ao utilizar um host para gerar uma imagem que já está registrada (Hosts), você deve apenas ir em General / Host image e alterar para a nova imagem criada. Feito isso, crie a task de captura para a nova imagem.

Instalando um sistema a partir de uma imagem pré-definida

No novo computador ou máquina virtual, faça o boot via F12 (pela placa de rede – cabo deve estar conectado). A tela de boot padrão do FOG será exibida. Para fazer o Deploy (instalação) de uma imagem, vá em Deploy Image e tecle Enter. Após selecionado a opção Deploy, será solicitado o usuário senha do sistema FOG (definido durante a sua instalação). Selecione a imagem desejada e tecle Enter.

Fog Project – Tela de boot padrão: Deploy image (instalação de imagem)
Fog Project – Deploy image 1
Fog Project – Deploy image 2

Feito isso, basta aguardar o término da instalação. Em redes Gigabit e uso de discos SSD, este processo não chega a levar 10 minutos.

Finalizando a instalação

Após o término da instalação, as recomendações são de voltar a BIOS ao seu estado de fábrica, ou seja, habilitar o Secure Boot (Habilitar PTT Security) e desabilitar boot via PXE / LAN / NIC / Ethernet, mantendo apenas o disco padrão como unidade de boot.

Além disso, é totalmente recomendado forçar a atualização do sistema operacional, para que ele busque por atualizações de drivers, correspondente ao equipamento utilizado. Vale conferir se existe algum alerta de device (dispositivo e drivers) não instalado ou não identificado. Em geral, todos os alertas podem ser resolvidos com a instalação de drivers adicionais, seja no Windows como no Linux. No Windows, vá ao Windows Update e procure por Exibir atualizações Opcionais / Atualizações de Drivers. Você também pode instalar drivers específicos a partir da página de suporte oficial do fabricante do seu equipamento.

*Com informações de: Wiki Fog Project – Windows DHCP Server, Wiki Fog Project – Fog with an other DHCP Server, vWorld – How to configure PFsense to PXE boot using FOGProject, Wiki Fog Project – Gerenciando ImagensWiki Fog Project – Migrando o Fog de Servidor / Exportando imagensVMware KB – Noções básicas sobre snapshots de máquina virtual no ESX / ESXi.

14 Comments

  1. Daniel, primeiramente gostaria de lhe parabenizar pela qualidade do seu artigo.

    Lhe questiono se você já teve a necessidade/experiência de realizar esta configuração tendo o Windows Server como servidor DHCP. Já li outras postagens a respeito, mas não consegui efetivamente usar o PXE do FOG tendo o Windows Server como provedor do DHCp. Conseguiria me passar alguma orientação.

    1. Olá, Juan! Sim, é possível. Note que durante a instalação do Fog você pode habilitar esta config e torná-lo um servidor de DHCP. Para que ele não cause problemas as configurações padrões da sua rede, atente-se em ajustar os parâmetros de endereçamento, como o range de IPs, máscara de sub-rede, gateway default e servidores DNS. Caso não queira o servidor DHCP em sua rede padrão, use VLANs para segmentá-la. Espero ter ajudado.

  2. Boa noite, Algume poderia me ajudar na configuração de um Mikrotik para iniciar o fog?

  3. Boa tarde Daniel tudo bem ? Primeiramente obrigado por compartilhar esse artigo. Tira-me uma dúvida por favor:

    Segui o artigo passo a passo sem qualquer erro, porém nas máquinas clientes na hora de dá boot via pxe não estou conseguindo acessar a próxima tela para fazer captura/deploy, mesmo alterando todos os parâmetros na bios conforme sugeriu acima. Simplesmente fica tentando da boot, parece não achar o servidor FOG Project e volta pra tela inicial. Todas as máquinas clientes e servidor estão no mesmo segmento de rede.

    Utilizo Servidor DHCP Windows Server 2016 STD com DHCP ativo, alterei as options conforme artigo, tentei tanto a 067/filename como undionly.kpxe ou ipxe.efi.

    Máquinas clientes, tentei boot nesses: 1 Notebook dell vostro 15 3510 / 1 Notebook HP 240 G7 e HP Prodesk 400 G3 Mini.

    Se puder dá uma sugestão, agradeço bastante.

    Abraços,
    Obrigado.

    1. Olá, Rogerio, tudo bem? Dos clientes (notebooks) que você testou, eu também já usei por aqui e funcionaram corretamente, portanto, não acredito que o problema seja com eles. Eu tentaria fazer um teste geral com outro servidor DHCP, numa rede isolada, para garantir que as configurações necessárias para que o PXE (client) encontre o FOG (servidor) estão corretas. Além disso, eu já tive problemas de compatibilidade de “placa de rede do servidor” com equipamentos (clientes) mais modernos, como Intel >10th. Neste caso, alteramos o servidor do FOG para um servidor mais moderno. Espero ter ajudado! Abraços.

  4. Daniel, primeiramente parabéns pela matéria!
    Já utilizo o FOG a bastante tempo e só tenho o que elogiar o Projeto.
    Só gostaria de uma ajuda na seguinte questão!
    Quando vou fazer o Upload de uma “VM” criada no VirtualBox como imagem para o FOG, tenho como confirgurá-lo para que a imagem da minha VM seja criada em modo UEFI ? (PS: em uma máquina física esta configuração fica na BIOS como descrito na matéria).
    Atualmente as VMs que faço Upload para o FOG só ficam em modo Legacy (MBR).
    Desde já muito obrigado!!!

    1. Olá, Jocimar. Obrigado! Acredito que seja possível sim. Na tua VM, do VirtualBox, vá em “Configurações” e então em “Sistema”. Nas opções de Placa mãe, habilite o “EFI”. Clique em ok e refaça seus testes. Me escreva sobre os resultados. Abraços!

  5. Olá, bom dia Daniel.

    Já utilizo o FOG Project há um bom tempo e me deparei atualmente com uma situação bem complicada aqui nas minhas redes Administrativa e Acadêmica, pois possuo 2 Server de Imagem (FOG Project 1.5.10 – Kernel bzImage Version: 6.1.63).

    No Server Acadêmico não consigo Inicializar via rede com PC’s configurados UEFI na Bios, só consigo inicializar no Modo Legacy.

    No Server Administrativo consigo inicializar nos dois Modos UEFI e LEGACY normalmente.

    Uso o PFSense como Firewaal e DHCP Server e não houve nenhuma mudança de regra ou qualquer configuração no DHCP.

    Teria algum procedimento ou solução para essa Situação?

    1. Carlos, tudo bem? Sobre sua dúvida, você conseguiu resolver? Eu já tive problemas como o seu e a conclusão foi de incompatibilidade de “placa de rede do servidor” com equipamentos (clientes) mais modernos, como Intel >10th. Em um caso, foi preciso trocar a placa de rede do servidor. Já em outro, alteramos o servidor do FOG para um servidor mais moderno. O fato é que o LEGACY, como diz o nome, é um modo antigo e que, a cada nova atualização, deve ficar mais incompatível com novas tecnologias e equipamentos. Além disso, não acho que seja problemas com seu firewall ou DHCP e sim que seja algo relacionado a arquitetura das placas de rede / placas mãe dos equipamentos. E, por fim, por que você tem 2 servidores FOG? Por que não manter apenas o administrativo? Se for por questões de segurança, VLAN ou Firewall Policies não resolvem a necessidade? Obrigado e boa sorte aí 😉

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload the CAPTCHA.