Como fazer uma instalação totalmente automatizada do Ubuntu 20.04 Server usando o PXE e a imagem do servidor ao vivo ?
Razão
Com a versão 20.04, parece claro que o Ubuntu está pressionando ainda mais a opção do instalador do servidor ao vivo ( subiquity ). A imagem do debian-installer (di) foi renomeada para legado. Assim como o instalador do netboot que eu normalmente prefiro. A versão 20.04 também apresenta uma nova opção de instalação automatizada para o instalador do servidor ativo.
Instalação totalmente automatizada do servidor Ubuntu 20.04 usando PXE
Estas são as etapas para fazer uma instalação totalmente automatizada do Ubuntu 20.04 Server usando o PXE com a imagem do servidor ao vivo . Achei o processo levemente documentado e cheio de problemas. Nestas etapas, estou instalando o 20.04 em um servidor baseado em UEFI .
edit : essas etapas foram adaptadas para um servidor baseado em BIOS no Deploy Ubuntu 20.04 em bare metal ou virtualbox VM por pxelinux, o cloud-init não pega o arquivo de dados do usuário
edit : essas etapas foram criadas especificamente para o
20.04
lançamento do Ubuntu (subiquity 20.04.3
). A versão dassubiquity
alterações a cada lançamento. Por exemplo, o20.04.3
lançamento do Ubuntu temsubiquity 21.08.2
. Por causa do desenvolvimento ativo desubiquity
algumas das informações neste post não são completamente precisas para lançamentos mais recentes.Há muitas variações para essas etapas possíveis. Eles podem ser personalizados e adaptados para atender às necessidades de cada um. O objetivo é fornecer um exemplo de como fazer isso e ajudar outros usuários a superar os problemas encontrados.
links sobre o instalador
referências de configuração
Código fonte
Construir um servidor tftp
Todas as etapas a seguir são executadas como root. Estes foram testados em um servidor Ubuntu 18.04.
Instale o servidor tftp e um servidor web
Configure o apache para servir arquivos do diretório tftp
Baixe a iso do servidor ao vivo
Extraia o kernel e o initramfs do iso do servidor ativo
Baixe a imagem do grub para carregar via PXE
Configurar grub. Esta configuração fornecerá uma opção de inicialização totalmente automatizada, bem como uma opção de inicialização manual
Configure o cloud-init com a configuração de instalação automática. Primeiro executei a instalação manualmente para obter o
/var/log/installer/autoinstall-user-data
arquivo gerado para usar como base. Em seguida, fiz modificações com base em minhas necessidades e erros encontrados.Configurar DHCP
Defina as opções de DHCP 66,67 de acordo com a documentação do seu servidor DHCP.
Inicialize seu servidor
Neste ponto, você deve ser capaz de inicializar seu servidor baseado em UEFI e realizar uma instalação completamente automática.
Erros encontrados
cloud-config-url=/dev/null
argumento do kernel evitarácloud-init
o download desnecessário da iso, o que reduz a memória necessária , reduz o tráfego de rede e acelera o tempo de inicialização./var/log/installer/autoinstall-user-data
foi quebrado das seguintes maneirasversion
propriedade, o que causou uma falha de validação. adicionei a propriedadenetwork
seção exigia outro nível de aninhamento. Este bug é mencionado na referência de configuraçãopreserve
propriedade em cada itemstorage
config
precisava ser definida como false . Caso contrário , o curtin não instalaria em um disco em brancokeyboard
propriedadetoggle
foi definida como nula, o que causou uma falha de validação. Eu simplesmente removi a propriedadereorder_uefi
apt
opção de configuraçãogeoip
parece não funcionar. Sempre havia logs para solicitações de geoipsize: 512M
, ) resultou no armazenamento do tamanho como flutuante, levando a erros ao dimensionar volumes LVM como uma porcentagem. Evitar valores legíveis por humanos parece corrigir issoOutros recursos ausentes
Eu não me aprofundei tanto nisso. Eles são baseados no que meus arquivos preseed fariam. A maioria deles provavelmente poderia ser corrigida com o uso inteligente de
early-commands
,late-commands
e cloud-init . Eu também posso ter perdido alguma coisaapt-cacher-ng
para apt, mas não funciona como proxy geral. O instalador assume que qualquer proxy que você configurar serve para tudointeractive-sections
, mas isso resulta em 3 pausaslate-commands
, mas eu não tentei/run/kernel-meta-package
. Isso é codificadolinux-generic
no initramfs. Eu prefiro usar olinux-virtual
pacote para VMs. Consegui usar a configuração cloud-init para substituir o arquivoEditar 1
O arquivo resultante
/target/var/lib/cloud/seed/nocloud-net/user-data
usado pelo cloud-init durante a primeira inicialização. As respostas indicam que alock-passwd
propriedade tem um erro de digitação e pode afetar alguns usuáriosEu defino o fuso horário na seção 'user-data' do arquivo de dados do usuário e também defino a senha de root lá; assim: