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.