Вопрос или проблема
Заранее извиняюсь за длинный пост, но я хотел включить как можно больше контекста.
BLUF: Я пытаюсь автоматизировать установку Ubuntu 24.04, используя локальное зеркало, а не открывая какие-либо из коробок в интернет. У меня есть частное зеркало, размещенное на http://101.101.101.101:81/ubuntu, однако, если я настраиваю секцию APT в моем autoinstall.yaml, чтобы она указывала на частное зеркало, установка Ubuntu не завершается, а установщик вылетает с ошибкой.
Я знаю, что похожие вопросы уже задавались ранее, однако я еще не нашел решения проблемы, с которой я сталкиваюсь. Я чисто установил Ubuntu 24.04 без каких-либо изменений на тестовом компьютере без проблем. Затем я смог убедиться, что мое частное зеркало доступно с тестового компьютера, используя ping, curl и т.д. Далее я сократил autoinstall.yaml, чтобы включить только версии, источник, региональные настройки, клавиатуру, часовой пояс и разделы идентификации и убедился, что могу успешно достичь autoinstall.yaml (также размещенного на http://101.101.101.101:81/ubuntu) и установить Ubuntu 24.04 успешно.
Работающий минимальный autoinstall:
#cloud-config
autoinstall:
version: 1
source:
id: ubuntu-desktop-minimal
locale: en_US.UTF-8
keyboard:
layout: us
timezone: UTC
identity:
hostname: ubuntu-auto-test
username: user
password: <encrypted_password>
Проблема возникает, когда я пытаюсь добавить секцию APT, чтобы указать на мое частное зеркало. Обратите внимание, что мое частное зеркало имеет следующую структуру:
http://101.101.101.101:81/ubuntu
|-- noble/
|-- by-hash/
|-- main/
|-- restricted/
|-- universe/
|-- InRelease
|-- Release
|-- Release.gpg
|-- noble-updates/
|-- by-hash/
|-- main/
|-- restricted/
|-- universe/
|-- InRelease
|-- Release
|-- Release.gpg
|-- noble-backports/
|-- by-hash/
|-- main/
|-- restricted/
|-- universe/
|-- InRelease
|-- Release
|-- Release.gpg
|-- noble-security/
|-- by-hash/
|-- main/
|-- restricted/
|-- universe/
|-- InRelease
|-- Release
|-- Release.gpg
Ниже приведен образец моей текущей попытки autoinstall.yaml, включая секцию APT, однако, я пробовал несколько различных конфигураций на данный момент:
#cloud-config
autoinstall:
version: 1
source:
id: ubuntu-desktop-minimal
locale: en_US.UTF-8
keyboard:
layout: us
timezone: UTC
identity:
hostname: ubuntu-auto-test
username: user
password: <encrypted_password>
# Пользовательские зеркала
apt:
preserve_sources_list: false
mirror-selection:
primary:
- arches:
- amd64
uri: http://101.101.101.101:81/ubuntu
# Установить пакеты
packages:
- vim
Когда установщик вылетает, я вижу некоторые журналы, в которых говорится, что он пытался установить vim, но не смог, и я нахожу следующие журналов в /var/crash/.crash:
subiquity.server.controllers.mirror:180 Ign:1 http://101.101.101.101:81/ubuntu noble InRelease
subiquity.server.controllers.mirror:180 Ign:2 http://101.101.101.101:81/ubuntu noble-updates InRelease
subiquity.server.controllers.mirror:180 Ign:3 http://101.101.101.101:81/ubuntu noble-backports InRelease
subiquity.server.controllers.mirror:180 Err:4 http://101.101.101.101:81/ubuntu noble Release
subiquity.server.controllers.mirror:180 404 [IP: 101.101.101.101 81]
subiquity.server.controllers.mirror:180 E: Репозиторий 'http://101.101.101.101:81/ubuntu noble Release' больше не имеет Release файла.
subiquity.server.controllers.mirror:180 E: Репозиторий 'http://101.101.101.101:81/ubuntu noble-updates Release' больше не имеет Release файла.
subiquity.server.controllers.mirror:180 E: Репозиторий 'http://101.101.101.101:81/ubuntu noble-backports Release' больше не имеет Release файла.
Несмотря на то, что журналы показывают, что Ubuntu пыталась установить vim (что заставляет меня думать, что она обновила источники APT, чтобы указывать на частное зеркало), я не могу найти ссылки на мое частное зеркало ни в одном из файлов /etc/apt/*.
Кто-нибудь сталкивался с этой же проблемой? Как вы это исправили? Еще раз спасибо за вашу помощь.
Ответ или решение
Автоматизация установки Ubuntu 24.04 с использованием локальных репозиториев может быть сложной задачей, особенно если вы стараетесь минимизировать доступ к Интернету. Давайте рассмотрим детали вашего вопроса и предложим возможное решение.
Теория:
Автоматическая установка Ubuntu с помощью autoinstall.yaml
позволяет автоматизировать процесс настройки и установки операционной системы. В данном случае, вы пытаетесь перенаправить APT на локальное зеркало, чтобы установка могла происходить без подключения к внешним ресурсам.
Основная проблема заключается в ошибках 404
, которые свидетельствуют о том, что APT не может найти файлы Release
в указанных путях вашего локального зеркала. Это обычно связано с неверной конфигурацией пути к репозиториям или недоступностью необходимых файлов там, где их ожидают.
Пример:
Вы указали следующее содержимое для вашего файла autoinstall.yaml
, включая секцию с APT:
#cloud-config
autoinstall:
version: 1
source:
id: ubuntu-desktop-minimal
locale: en_US.UTF-8
keyboard:
layout: us
timezone: UTC
identity:
hostname: ubuntu-auto-test
username: user
password: <encrypted_password>
# Custom Mirrors
apt:
preserve_sources_list: false
mirror-selection:
primary:
- arches:
- amd64
uri: http://101.101.101.101:81/ubuntu
# Install packages
packages:
- vim
Логи указывают на отсутствие файлов Release
для дистрибутивов noble
, noble-updates
и noble-backports
.
Применение:
-
Проверка структуры зеркала:
- Убедитесь, что файлы
InRelease
,Release
, иRelease.gpg
действительно находятся в указанных директориях вашего зеркала. Поскольку APT пытается обратиться к файлам вhttp://101.101.101.101:81/ubuntu/dists/<дистрибутив>
, файлы должны быть доступны по этому пути. Возможно, ваши файлы находятся в другом подвкаталоге, что и вызывает ошибку404
.
- Убедитесь, что файлы
-
Проверка конфигурации
autoinstall.yaml
:-
Возможно, вы не совсем правильно указали способ выбора зеркал. Вместо
mirror-selection
следует описать источники поподробнее, через секцииsources
. Например:apt: preserve_sources_list: false sources: ubuntu: source: "http://101.101.101.101:81/ubuntu" suites: [noble, noble-updates, noble-backports, noble-security] components: [main, restricted, universe]
-
-
Обновление индекса зеркала:
- Убедитесь, что ваше зеркало обновлено и соответствует версии Ubuntu 24.04. Для этого можно использовать такие инструменты, как
apt-mirror
илиrsync
, чтобы синхронизировать зеркало с официальным сервером Ubuntu.
- Убедитесь, что ваше зеркало обновлено и соответствует версии Ubuntu 24.04. Для этого можно использовать такие инструменты, как
-
Доступность зеркала:
- Так как в логах упоминается
101.101.101.101
, убедитесь, что хост с этим IP доступен из среды установки, а также что установленный вами сервер (Apache, Nginx и т.д.) корректно обрабатывает HTTP-запросы и не требует дополнительных проверок (например, авторизации), которые могут прерывать APT.
- Так как в логах упоминается
-
Проверка конфигурации сетевого подключения:
- Убедитесь, что в процессе начальной установки сеть правильно настраивается и имеет доступ к вашему локальному зеркалу. Любая проблема с маршрутизацией или DNS может повлиять на доступность зеркала.
-
Логи и диагностика:
- Проанализируйте получаемые логи взаимодействий с зеркалом более детально на предмет дополнительных ошибок, которые могли быть пропущены. Поместите их в понятный для последующего анализа формат.
Решение этих проблем требует внимательности к деталям конфигурации как в autoinstall.yaml
, так и в структуре вашего локального зеркала. Успех зависит от наличия всех необходимых файлов в нужных местах, их доступности, а также от корректного их указания в конфигурациях.