AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / user-1576197

Zero0ne's questions

Martin Hope
Zero0ne
Asked: 2024-09-05 23:14:54 +0800 CST

Instalação automática do Ubuntu 24.04.1 LTS com espelho apt local

  • 6

Peço desculpas pelo bloco de texto recebido, mas espero encontrar uma solução para um problema estranho que "pode" ser um bug. Estou no processo de criar uma instalação automatizada offline ( air-gapped ) do Ubuntu 24.04.1 LTS usando uma combinação de inicialização PXE do ISO e apontando-o para um arquivo de dados do usuário que contém minha instalação automática e configuração de dados do usuário para uma instalação bare-metal totalmente automatizada.

Qualquer pessoa familiarizada com esse processo sabe que é um processo de instalação multifásico, com a fase 1 sendo a instalação base processando qualquer coisa no "autoinstall:" , formatando discos e copiando arquivos do ISO para o disco, etc... e a fase 2 basicamente processando qualquer coisa definida na seção "user-data:" do seu arquivo user-data. Além disso, é possível configurar pacotes para serem instalados durante a fase 1 de instalação (por exemplo, openssh-server). Dito isso, conforme observado na página de referência do AutoInstall ( https://canonical-subiquity.readthedocs-hosted.com/en/latest/reference/autoinstall-reference.html#ssh ):

Observe que as ISOs de instalação do Desktop não incluem o openssh-server, portanto, as instalações do Desktop exigem acesso ao arquivo do Ubuntu para que o install-server seja bem-sucedido.

Então, se entendi corretamente, tudo isso significa que para instalar o openssh-server, ou qualquer pacote não contido no ISO, o instalador precisa conseguir acessar um arquivo Noble do Ubuntu para poder baixar e instalar o pacote.

Agora, como mencionado, estou tentando executar a instalação automatizada em uma rede air-gapped. Eu espelhei os repositórios nobres do Ubuntu da internet e os disponibilizei na rede air-gapped. Eu também validei que funciona executando uma instalação manual do Ubuntu 24.04.1 LTS e atualizando o arquivo /etc/apt/sources.list.d/ubuntu.sources para apontar para o espelho air-gapped e executando com sucesso um apt update/upgrade e instalando o openssh-server (e o ansible).

Então, o problema que preciso superar é configurar de alguma forma a parte da Fase 1 (instalação automática:) para usar meu espelho local como uma fonte para instalação de pacotes.

Este processo sobre como fazer isso está documentado aqui:

https://canonical-subiquity.readthedocs-hosted.com/en/latest/reference/autoinstall-reference.html#apt https://curtin.readthedocs.io/en/latest/topics/apt_source.html

No entanto, após várias horas tentando várias combinações de tentativas de configurar a seção "apt:" no meu arquivo de dados do usuário, o que estou observando é que qualquer coisa colocada na seção "apt:" parece ser aplicada apenas às configurações /target/etc/apt/, não à sessão ativa. O cache do apt parece conter apenas os pacotes que estão disponíveis no ISO. Por causa disso, especificar "pacotes:" adicionais para serem instalados faz com que a instalação automática falhe.

Aqui estão as várias configurações que tentei:

Usando o formato deb:

#cloud-config
autoinstall:
  apt:
    preserve_sources_list: false
    mirror-selection:
      primary:
        - uri: "http://mirror.local.net/ubuntu"
          arches: [default]
    fallback: offline-install
    geoip: false

Usando o formato deb822:

#cloud-config
autoinstall:
  apt:
    sources:
      local.sources:
        source: |
          Types: deb
          URIs: http://mirror.local.net/ubuntu
          Suites: $RELEASE $RELEASE-updates $RELEASE-backports $RELEASE-security $RELEASE-proposed
          Components: main restricted universe multiverse
          Signed-by: /usr/share/keyrings/ubuntu-archive-keyring.gpg
    preserve_sources_list: false
    fallback: offline-install
    geoip: false

Em meus testes, "parece" que quando eu especifico o deb formatado "apt:", não há nenhuma indicação no console do instalador de que ele sequer tenta contatar o espelho em algum ponto para atualizar o cache (apt update) ou para instalar o pacote. Quando eu especifico o deb822 formatado "apt:", uma das primeiras coisas que o instalador parece fazer é validar que ele pode contatar mirror.local.net, assim como archive.ubuntu.com e security.ubuntu.com.

Então pensei que usar o "apt:" formatado em deb822 pareceria ser a coisa certa a fazer, porém, mais tarde na instalação, quando ele vai instalar quaisquer pacotes definidos, posso ver claramente nos logs:

Sep 05 10:30:00 ubuntu subiquity_log.4233[15323]: Get1 file:/cdrom nobel InRelease
Sep 05 10:30:00 ubuntu subiquity_log.4233[15323]: Ign1 file:/cdrom nobel InRelease
Sep 05 10:30:00 ubuntu subiquity_log.4233[15323]: Get2 file:/cdrom nobel Release [1072 B]
Sep 05 10:30:00 ubuntu subiquity_log.4233[15323]: Get2 file:/cdrom nobel Release [1072 B]
Sep 05 10:30:00 ubuntu subiquity_log.4233[15323]: Reading package lists...
...
Sep 05 10:30:00 ubuntu subiquity_log.4233[15312]: Running command ['unshare', '--fork', '--pid', '--mount-proc=/target/proc', '--', 'chroot', '/target', 'apt-get', '--quiet', '--assume-yes', '--option=Dpkg::options::=--force-unsafe-io', '--option=Dpkg::Options::=-force-confold', 'install', '--download-only', 'openssh-server'] with allowed return codes [0] (capture=False)
Sep 05 10:30:00 ubuntu subiquity_log.4233[15432]: Reading package lists...
Sep 05 10:30:00 ubuntu subiquity_log.4233[15432]: Building dependency tree...
Sep 05 10:30:00 ubuntu subiquity_log.4233[15432]: Reading state information...
Sep 05 10:30:00 ubuntu subiquity_log.4233[15432]: E: Unable to locate package openssh-server

Quando o instalador trava enquanto ainda está na sessão Live, se eu entro no terminal e verifico o seguinte, não há referências a "mirror.local.net" em nenhum dos seguintes arquivos:

/etc/apt/sources.list
/etc/apt/sources.list.d/ubuntu.sources
/target/etc/apt/sources.list
/target/etc/apt/sources.list~
/target/etc/apt/sources.list.d/ubuntu.sources.curtin.orig

A única referência que consigo encontrar ao que especifiquei na seção "apt:" só pode ser encontrada no arquivo /etc/cloud/cloud.cfg.d/91_kernel_cmdline_url.cfg, que parece ser uma cópia do arquivo de dados do usuário.

A outra observação que fiz é que se eu mover toda a instalação de software extra para a Fase 2 da instalação (1ª inicialização após a instalação base), onde a seção de dados do usuário "coisas" é processada, o arquivo local.sources existe no diretório /etc/apt/sources.list.d e se eu executar um, runcmd: apt install openssh-server -yos pacotes serão instalados corretamente.

Minha pergunta é: alguém mais observou esse problema ou alguém mais tem uma instalação funcional do Ubuntu 24.04.1 LTS com airgapp/offline e pode verificar se consegue instalar o openssh-server a partir de um espelho de repositório interno do Ubuntu?

Admito plenamente que posso estar encontrando um bug com o novo instalador, mas queria descartar a possibilidade de ser um idiota primeiro. Se alguém tiver um exemplo de uma seção "apt:" funcional para especificar um espelho local, eu realmente apreciaria alguma orientação.

Obrigado pela leitura e pelo feedback!

TLDR; as configurações "apt:" na instalação automática do Ubuntu 24.04.1 LTS parecem ser ignoradas durante a fase de instalação inicial.

apt
  • 1 respostas
  • 103 Views

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Existe um comando para listar todos os usuários? Também para adicionar, excluir, modificar usuários, no terminal?

    • 9 respostas
  • Marko Smith

    Como excluir um diretório não vazio no Terminal?

    • 4 respostas
  • Marko Smith

    Como descompactar um arquivo zip do Terminal?

    • 9 respostas
  • Marko Smith

    Como instalo um arquivo .deb por meio da linha de comando?

    • 11 respostas
  • Marko Smith

    Como instalo um arquivo .tar.gz (ou .tar.bz2)?

    • 14 respostas
  • Marko Smith

    Como listar todos os pacotes instalados

    • 24 respostas
  • Martin Hope
    Flimm Como posso usar o docker sem sudo? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    led-Zepp Como faço para salvar a saída do terminal em um arquivo? 2014-02-15 11:49:07 +0800 CST
  • Martin Hope
    ubuntu-nerd Como descompactar um arquivo zip do Terminal? 2011-12-11 20:37:54 +0800 CST
  • Martin Hope
    TheXed Como instalo um arquivo .deb por meio da linha de comando? 2011-05-07 09:40:28 +0800 CST
  • Martin Hope
    Ivan Como listar todos os pacotes instalados 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    David Barry Como determino o tamanho total de um diretório (pasta) na linha de comando? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher "Os seguintes pacotes foram retidos:" Por que e como resolvo isso? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford Como os PPAs podem ser removidos? 2010-07-30 01:09:42 +0800 CST

Hot tag

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve