Pular para o conteúdo
Instalação remota baseada em navegador para Fedora Linux: novidades e como funciona

Instalação remota baseada em navegador para Fedora Linux: novidades e como funciona

Descubra a nova instalação remota via web do Fedora, substituindo VNC/RDP, com autenticação por PIN e suporte a servidores headless.

A partir do Fedora 42 Workstation, a interface web do instalador Anaconda passou a integrar o Cockpit e o PatternFly, permitindo que a instalação seja feita em uma janela de navegador em tela cheia. Agora, desenvolvedores estão ampliando esse recurso para oferecer instalação remota totalmente baseada em navegador, eliminando a necessidade de clientes VNC ou RDP.

O que está sendo desenvolvido?
Um servidor HTTPS embutido no Anaconda que disponibiliza a Web UI para outro computador. O usuário acessa o instalador via navegador, autentica‑se com um PIN definido no boot ou no kickstart e controla todo o processo de instalação a distância.

Quem está por trás?
A iniciativa é liderada por Bruno Ciconelle e a comunidade do Fedora, com colaboração estreita entre os times do Anaconda e do Cockpit.

Quando?
O recurso está em fase de developer preview e já pode ser testado com a branch poc-remote do repositório anaconda-webui.

Por que a mudança?

  • Menor consumo de dados: o streaming de tela via VNC/RDP envia imagens completas, enquanto o navegador recebe apenas instruções de renderização.
  • Latência reduzida: a comunicação baseada em HTML/CSS/JS é mais rápida que a transmissão de pixels.
  • Compatibilidade: qualquer navegador moderno funciona, sem necessidade de instalar clientes específicos.
  • Adoção de Flatpak: ao remover o navegador local da imagem de boot, é possível criar ISOs mais leves, ideais para dispositivos ARM e servidores headless.

Principais casos de uso

  • Servidores sem monitor – Instalações em racks podem ser gerenciadas a partir de um laptop.
  • Placas ARM de baixo consumo – Raspberry Pi e similares executam apenas o backend do instalador; a UI é renderizada remotamente.
  • Monitoramento remoto – É possível iniciar a instalação, tomar um café e acompanhar o progresso de outro computador.

Decisões de design já definidas

  • Autenticação por PIN – Definido via kickstart ou opções de boot; o usuário informa o código na página de login, similar ao fluxo do VNC/RDP.
  • TLS com certificado auto‑assinado – O certificado é gerado na inicialização, gerando o aviso de “certificado não confiável”. Para ambientes que exigem PKI, recomenda‑se usar o Image Builder para inserir certificados personalizados.
  • Conexão única – Apenas um navegador pode se conectar simultaneamente, evitando conflitos de configuração.
  • Comportamento de reconexão – Antes da tela de revisão, a sessão reinicia do início; após iniciar a instalação, o usuário vê a tela de progresso.
  • Isolamento de configuração – Arquivos específicos ficam em /etc/anaconda/cockpit/, evitando vazamento para o sistema instalado.
  • Porta padrão 443 – Permite acesso direto ao IP sem especificar porta, mas a porta é configurável.

Comparação com VNC e RDP

Recurso VNC/RDP Instalação via navegador
Necessidade de cliente Sim (viewer ou cliente) Não, qualquer navegador
Volume de dados Alto (streaming de tela) Baixo (HTML/JS)
Latência Maior Menor
Manutenção Código GTK separado Usa a mesma Web UI do Anaconda
Suporte futuro Continua disponível Prioridade crescente

Estado atual do projeto

Funcionalidades já operacionais

  • Página de login personalizada com autenticação por PIN.
  • Unidade systemd ativada por socket para o serviço de autenticação.
  • Cookies de sessão persistentes entre abas, exigindo novo login ao fechar o navegador.
  • Configurações do Cockpit isoladas em caminho próprio.

Pendências

  • Implementação da restrição de conexão única.
  • Detecção automática do estado da instalação para reconexão adequada.

Como testar a prova de conceito

git clone -b poc-remote https://github.com/bruno-fs/anaconda-webui.git
cd anaconda-webui
make create-updates.img

virt-install \
 --name anaconda-remote-test \
 --ram 4096 \
 --vcpus 2 \
 --disk size=20 \
 --location /caminho/para/Fedora-Everything-netinst-x86_64-Rawhide.iso \
 --extra-arg "inst.updates=http://seu-host:porta/updates.img" \
 --extra-arg "inst.webui.remote"

Atenção: Esta versão de demonstração usa PIN fixo 1234, não possui TLS e ainda não bloqueia conexões simultâneas. Não é recomendada para instalações de produção.

Próximos passos e participação da comunidade

A equipe busca feedback antes de consolidar a funcionalidade. Questões em aberto incluem:

  • ISO mínima sem navegador – Seria útil disponibilizar uma imagem de boot enxuta, projetada exclusivamente para instalação remota?
  • Substituição completa de VNC/RDP – Quais recursos ainda faltam para que a interface web seja a única opção?

Comentários podem ser deixados na página do blog ou no canal Matrix #anaconda:fedoraproject.org. O código-fonte acompanha o desenvolvimento no repositório anaconda-webui.

Por · Última atualização: