Вопрос или проблема
Я создаю неавторизованную установку с использованием preseed для Ubuntu Desktop 18.04.4 и хочу установить openssh-server
(openssh-sftp-server
для рабочего стола), чтобы после завершения установки была возможность подключаться по ssh.
Я пытался использовать такие команды, как: pkgsel/include
, ubiquity/success_command
и preseed/late_command
, но безуспешно.
Preseed не устанавливает программное обеспечение и не обновляет пакеты.
Ссылка Как включить дополнительное программное обеспечение в preseed.cfg для Ubuntu Server 13.10
Если нужна помощь:
# Конфигурация установщика
d-i base-installer/kernel/override-image string linux-image-amd64
# GRUB
d-i grub-installer/only_debian boolean true
d-i grub-installer/with_other_os boolean true
# Настройка локалей и страны
# Поддерживаемые локали доступны в /usr/share/i18n/SUPPORTED
d-i debian-installer/language string en
d-i debian-installer/country string IN
d-i debian-installer/locale string en_US.UTF-8
# Настройка клавиатуры
d-i console-setup/ask_detect boolean false
d-i keyboard-configuration/layoutcode string us
d-i keyboard-configuration/xkb-keymap us
d-i keyboard-configuration/modelcode string pc105
# Настройка сети
d-i netcfg/choose_interface select auto
d-i netcfg/enable boolean true
d-i netcfg/get_hostname string ubuntu-bionic-desktop
d-i netcfg/get_domain string localdomain
d-i netcfg/wireless_wep string
# d-i hw-detect/load_firmware boolean true
# Настройки зеркала
choose-mirror-bin mirror/http/proxy string
# Настройка времени и часового пояса
d-i time/zone string UTC
d-i clock-setup/utc-auto boolean true
d-i clock-setup/utc boolean true
d-i clock-setup/ntp boolean true
# Настройка диска и разделов
d-i partman-auto/disk string /dev/sda
d-i partman-auto-lvm/guided_size string max
d-i partman-auto/choose_recipe select atomic
d-i partman-auto/method string lvm
d-i partman-lvm/confirm boolean true
d-i partman-lvm/confirm boolean true
d-i partman-lvm/confirm_nooverwrite boolean true
d-i partman-lvm/device_remove_lvm boolean true
d-i partman/choose_partition select finish
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true
d-i partman/confirm_write_new_label boolean true
# Создание пользователя Vagrant
d-i passwd/user-fullname string vagrant
d-i passwd/username string vagrant
d-i passwd/user-password password vagrant
d-i passwd/user-password-again password vagrant
d-i user-setup/encrypt-home boolean false
d-i user-setup/allow-password-weak boolean true
d-i passwd/user-default-groups vagrant sudo
# Установка пакетов
d-i pkgsel/include string openssh-sftp-server vim cryptsetup build-essential libssl-dev libreadline-dev zlib1g-dev linux-source dkms nfs-common
# Обновление системы
d-i pkgsel/install-language-support boolean false
d-i pkgsel/update-policy select none
d-i pkgsel/upgrade select full-upgrade
tasksel tasksel/first multiselect standard, ubuntu-desktop
ubiquity ubiquity/use_nonfree boolean true
d-i preseed/late_command string apt-install openssh-sftp-server;
# Успешная установка - задачи
ubiquity ubiquity/success_command string \
in-target apt install openssh-sftp-server;
# Установка - финал
d-i finish-install/reboot_in_progress note
ubiquity ubiquity/summary note
ubiquity ubiquity/reboot boolean true`
Удалите ненужные строки
Ubiquity игнорирует preseed/late_command, поэтому не имеет смысла его использовать.
Поэтому вы включили пакет openssh-sftp-server в этой строке:
d-i pkgsel/include string openssh-sftp-server vim cryptsetup build-essential libssl-dev libreadline-dev zlib1g-dev linux-source dkms nfs-common
Таким образом, эти строки можно удалить:
d-i preseed/late_command string apt-install openssh-sftp-server;
# Успешная установка - задачи
ubiquity ubiquity/success_command string \
in-target apt install openssh-sftp-server;
Как использовать ubiquity
Я протестировал ваш файл preseed, используя минимальный iso-образ Ubuntu, который можно найти здесь. На экране выбора я переместил курсор на командный установщик
и нажал клавишу tab. Обратите внимание на атрибуты, которые появились внизу экрана:
Затем добавьте эти атрибуты, не стесняйтесь изменять значения:
locale=en_US hostname=ubuntu keyboard-configuration/modelcode=SKIP ubiquity url=http://192.168.0.1:8000/preseed-ubuntu.cfg
Файл preseed может быть размещен на локальном хосте вашей машины, например, с помощью python3 -m http.server
. Ваш IP-адрес, очевидно, будет другим. Нажмите Enter, и установка продолжится, установщик только запросит вас указать сервер репозитория, так как он не определен в вашем файле preseed.
После завершения установки вы можете войти в систему и подтвердить, что openssh-sftp-server
и другие пакеты установлены.
Ответ или решение
Для установки программного обеспечения с использованием файла preseed.cfg
в процессе бездумной установки Ubuntu Desktop 18.04.4, необходимо правильно сформировать конфигурационный файл. Вопрос, который вы задали, касается установки пакета openssh-sftp-server
таким образом, чтобы он был доступен для SSH после завершения установки.
Вот полезные шаги и рекомендации для успешной настройки вашего preseed.cfg
:
Этапы настройки preseed.cfg
-
Удаление ненужных команд: Из вашего кода видно, что вы включили команды, которые не будут выполняться с инструментом Ubiquity. Вам нужно сосредоточиться на использовании строки
d-i pkgsel/include
, чтобы убедиться, что нужные пакеты будут установлены во время установки.Уберите следующие строки, так как они не будут применяться:
d-i preseed/late_command string apt-install openssh-sftp-server; ubiquity ubiquity/success_command string in-target apt install openssh-sftp-server;
-
Использование pkgsel для установки пакетов: Убедитесь, что строка
d-i pkgsel/include
корректно включает все нужные пакеты для установки. В вашем случае строчка выглядит следующим образом:d-i pkgsel/include string openssh-sftp-server vim cryptsetup build-essential libssl-dev libreadline-dev zlib1g-dev linux-source dkms nfs-common
Это гарантирует, что во время установки будет установлен
openssh-sftp-server
и другие указанные пакеты. -
Настройка параметров установки: Убедитесь, что указаны все необходимые настройки для вашего окружения, как вы делали до сих пор. Например, настройка локали, имени хостинга, конфигурации клавиатуры и сетевых настроек.
-
Тестирование: Чтобы протестировать ваш
preseed.cfg
, вы можете использовать минимальный ISO-образ, как предложено. Инициализируйте установку с параметрами командной строки, чтобы указать необходимый preseed:locale=en_US hostname=ubuntu keyboard-configuration/modelcode=SKIP ubiquity url=http://192.168.0.1:8000/preseed-ubuntu.cfg
Убедитесь, что ваш
preseed.cfg
доступен по указанному URL.
Пример полного preseed.cfg
# Конфигурация установщика
d-i base-installer/kernel/override-image string linux-image-amd64
# Настройки GRUB
d-i grub-installer/only_debian boolean true
d-i grub-installer/with_other_os boolean true
# Настройка локали и страны
d-i debian-installer/language string en
d-i debian-installer/country string IN
d-i debian-installer/locale string en_US.UTF-8
# Настройка клавиатуры
d-i console-setup/ask_detect boolean false
d-i keyboard-configuration/layoutcode string us
d-i keyboard-configuration/xkb-keymap us
d-i keyboard-configuration/modelcode string pc105
# Настройка сетевого интерфейса
d-i netcfg/choose_interface select auto
d-i netcfg/enable boolean true
d-i netcfg/get_hostname string ubuntu-bionic-desktop
d-i netcfg/get_domain string localdomain
# Настройки зеркала
choose-mirror-bin mirror/http/proxy string
# Настройка времени
d-i time/zone string UTC
d-i clock-setup/utc-auto boolean true
d-i clock-setup/utc boolean true
d-i clock-setup/ntp boolean true
# Настройка дисков и разделов
d-i partman-auto/choose_recipe select atomic
# ... (другие настройки разделов)
# Создание пользователя
d-i passwd/user-fullname string vagrant
d-i passwd/username string vagrant
d-i passwd/user-password password vagrant
d-i passwd/user-password-again password vagrant
d-i user-setup/encrypt-home boolean false
# Установка пакетов
d-i pkgsel/include string openssh-sftp-server vim cryptsetup build-essential libssl-dev libreadline-dev zlib1g-dev linux-source dkms nfs-common
d-i pkgsel/install-language-support boolean false
d-i pkgsel/upgrade select none
# Завершение установки
d-i finish-install/reboot_in_progress note
Заключение
При корректной конфигурации preseed.cfg
использование инструмента Ubiquity для автоматической установки программного обеспечения должно пройти успешно. Следите за тем, чтобы ваша машина была подключена к интернету во время установки, что поможет избежать проблем с зависимостями пакетов. После завершения установки вы сможете войти в систему и проверить установленные пакеты, включая openssh-sftp-server
.