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 / ubuntu / Perguntas / 1525785
Accepted
Zero0ne
Zero0ne
Asked: 2024-09-05 23:14:54 +0800 CST2024-09-05 23:14:54 +0800 CST 2024-09-05 23:14:54 +0800 CST

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

  • 772

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 1 respostas
  • 103 Views

1 respostas

  • Voted
  1. Best Answer
    Andrew Lowther
    2024-09-07T05:44:36+08:002024-09-07T05:44:36+08:00

    Usei esse snippet de instalação automática com os instaladores 22.04 e 24.04.

    #cloud-config
    autoinstall:
      version: 1
      apt:
        preserve_sources_list: false
        primary:
        - arches:
          - amd64
          - i386
          uri: http://mirror.local.net/ubuntu
    
    • 1

relate perguntas

  • Como posso ver todas as versões de um pacote que estão disponíveis no arquivo?

  • Como os PPAs podem ser removidos?

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