Проблема
TLDR: У меня есть это, выполняющее большую часть автоустановки (я думаю?), но оно продолжает вызывать установку с графическим интерфейсом после прохождения автоустановки. Ищите любой вклад в то, почему он продолжает поднимать графический интерфейс. /TLDR
Более длинная версия: Я пытаюсь выяснить, как развернуть Ubuntu (и, в конечном итоге, другие дистрибутивы) на Proxmox с помощью Hashicorp Packer. У меня настроена и работает большая часть конфигов... вроде? Он успешно «развертывается», но не может завершить первоначальную настройку, он продолжает выполнять автоматическую установку, но затем все еще вызывает установку с графическим интерфейсом. При переходе через графический интерфейс вручную после завершения части автоматической установки кажется, что все уже заполнено (за исключением части идентификации пользователя, т.е. FullName/Username/и т. д.). Кажется, даже не нужно искать IP-адрес, например, когда вы проходите только через графический интерфейс, поэтому я думаю, что DHCP работает нормально?
Я пытался рассмотреть несколько других подобных вопросов, но их решения мне не помогли (пока).
теории
У меня есть несколько теорий, но ни одна из них не работает, или я не знаю, как их проверить.
- Я что-то забыл в
данные пользователя
(yaml), и из-за этого он пытается вызвать графический интерфейс.
- Мне не хватает некоторых параметров конфигурации в
.pkr.hcl
файл, который необходим Proxmox для правильной настройки виртуальной машины?
- Что-то странное с версией Ubuntu, которую я использую, может быть, мне нужен другой ISO? Но материал, который я читал, просто говорит, что Облако-инициализация функция просто заменяет устаревшее
preseed.cfg
для данные пользователя
(yaml), поэтому я сомневаюсь в этой теории.
- Мне нужно установить какую-то функцию ядра? Честно говоря, не знаю, с чего начать, я также уверен, что если бы это было так, я бы увидел что-нибудь об этом где-нибудь еще. Но эй, может быть, я просто искал не в том месте?
-
данные пользователя
файл не загружается в Ubuntu должным образом?
Обнадеживающие результаты
- Если вы знаете волшебный соус, пожалуйста, угостите меня им :)
- Если вы знаете, как заставить Ubuntu 20.04 перенаправлять некоторые из своих журналов во время установки, чтобы я мог посмотреть глубже, я был бы признателен! То же самое для лучшего логирования упаковщика (помимо
-отлаживать
, это я уже пробовал). я пытался /var/журнал/установщик
, но я не думаю, что у меня есть четкое представление о том, что происходит. Но я не вижу никаких сбоев, кроме ошибки ключа SSH, и я не вижу никаких признаков данные пользователя
загрузка или сбои загрузки.
- Если у вас есть какие-либо идеи о том, как проверить некоторые из моих теорий или любые другие теории, я буду рад их услышать!
- Если вы видите, что я делаю неправильно в приведенных ниже файлах конфигурации, пожалуйста, укажите на них! Я пытаюсь сделать это в БУНКЕ уже несколько дней и нахожусь у стены, я не знаю, как преодолеть
Обновления (продолжаются)
- найденный
seed из http://192.168.0.144:80/user-data не поддерживается DataSourceNoCloud [seed=None][dsmode=net]
в /var/log/cloud-init.log
глядя на то, почему это вернулось, любые советы будут оценены :)
- Итак, я понял, почему произошла вышеуказанная ошибка, похоже, она была не в правильном формате YAML. Я просто загрузил файл в средство форматирования YAML, а затем скопировал его обратно в целевой файл.
- Теперь ошибка в том, что загруженный файл YAML пуст.
/var/lib/cloud/seed/nocloud/пользовательские данные
, опять же, буду признателен за любой совет :)
Намекать
Если вы достаточно круты, чтобы попытаться воспроизвести этот материал, или если вы наткнулись на это после того, как на него (надеюсь) был дан ответ, сделайте свою жизнь проще, используя пример.auto.pkrvars.hcl
файл.
Версии
Проксмокс: Проксмокс VE 7.1-4
Окна: Windows 10 Про: 10.0.19043.0
Упаковщик: 1.7.10
Пример.pkr.hcl
упаковщик {
обязательные_плагины {
проксмокс = {
версия = " >= 1.0.1"
источник = "github.com/hashicorp/proxmox"
}
}
}
источник "proxmox-iso" "proxmox-ubuntu-20" {
proxmox_url = "https://proxmox.lan:8006/api2/json"
vm_name = "упаковщик-ubuntu-20"
iso_url = "http://iso.repo.lan/ubuntu-20.04.3-live-server-amd64.iso"
iso_checksum = "f8e3086f3cea0fb3fefb29937ab5ed9d19e767079633960ccb50e76153effc98"
имя пользователя = "${var.pm_user}"
пароль = "${var.pm_pass}"
токен = "${var.pm_token}"
узел = "проксмокс"
iso_storage_pool = "локальный"
ssh_username = "${var.ssh_user}"
ssh_password = "${var.ssh_pass}"
ssh_timeout = "20 минут"
ssh_pty = правда
ssh_handshake_attempts = 20
boot_wait = "5s"
http_directory = "http" # Запускает локальный http-сервер, обслуживает файл Preseed
загрузочная_команда = [
"<esc><wait><esc><wait><f6><wait><esc><wait>",
"<bs><bs><bs><bs><bs>",
"ip=${cidrhost("192.168.0.0/24", 9)}::${cidrhost("192.168.0.0/24", 1)}:${cidrnetmask("192.168.0.0/24")}: :::${cidrhost("192.168.0.0/24", 1)} ",
"автоустановка ds=nocloud-net;s=http://{{ .HTTPIP }}:{{ .HTTPPort }}/",
"--- <введите>"
]
insecure_skip_tls_verify = истина
имя_шаблона = "упаковщик-ubuntu-20"
template_description = "сгенерированный упаковщиком ubuntu-20.04.3-server-amd64"
размонтировать_iso = истина
пул = "упаковщик"
память = 4096
ядра = 1
розетки = 1
ОС = "l26"
qemu_agent = правда
облако_инит = правда
# scsi_controller = "virtio-scsi-pci"
диски {
тип = "SCSI"
размер_диска = "30G"
storage_pool = "локальный-lvm"
storage_pool_type = "lvm"
формат = "сырой"
}
сетевые адаптеры {
мост = "vmbr0"
модель = "virtio"
брандмауэр = правда
# vlan_tag = 1
}
}
строить {
источники = ["source.proxmox-iso.proxmox-ubuntu-20"]
поставщик "оболочки" {
встроенный = [
"в то время как [ ! -f /var/lib/cloud/instance/boot-finished]; выполнить эхо "Ожидание облачной инициализации..."; заснуть 1; готово",
"лс/"
]
}
}
vars.pkr.hcl
переменная "pm_user" {
тип = строка
description = "Имя пользователя Proxmox"
по умолчанию = "packer@pam!<тег API>"
}
переменная "pm_pass" {
тип = строка
description = "Пароль пользователя Proxmox"
по умолчанию = "упаковщик"
}
переменная "pm_token" {
тип = строка
description = "Токен API Proxmox"
}
переменная "ssh_user" {
тип = строка
description = "Пользователь SSH"
по умолчанию = "упаковщик"
}
переменная "ssh_pass" {
тип = строка
описание = "Пароль SSH"
по умолчанию = "упаковщик"
}
переменная "vm_name" {
тип = строка
описание = "Имя ВМ"
по умолчанию = "packer_hostname"
}
http/пользовательские данные
автоустановка:
версия: 1
локаль: en_US.UTF-8
клавиатура:
макет: en
вариант: мы
личность:
имя хоста: упаковщик-ubuntu-20
пароль: "$6$exDY1mhS4KUYCE/2$zmn9ToZwTKLhCw.b4/b.ZRTIZM30JZ4QrOQ2aOXJ8yk96xpcCof0kxKwuX1kqLG/ygbJ1f8wxED22bTL4F46P0" #ubuntu
имя пользователя: убунту
настоящее имя: убунту
установщик обновлений:
обновление: ложь
СШ:
сервер установки: да
разрешить-pw: да
пакеты:
- qemu-гостевой агент
место хранения:
макет:
название: прямой
менять:
размер: 0
Источники
https://www.aerialls.eu/posts/ubuntu-server-2004-image-packer-subiquity-for-proxmox/
https://ubuntu.com/server/docs/install/autoinstall-reference
https://cloudinit.readthedocs.io/en/latest/topics/datasources/nocloud.html
https://cloudinit.readthedocs.io/en/latest/topics/modules.html#write-files
https://cloudalbania.com/posts/2022-01-homelab-with-proxmox-and-packer/