Ubuntu 20.04 带来了新的安装程序, 用 subiquity 取代了以前的Debian安装。这意味着以前用于自动/无人值守安装的任何方法都不再有效,需要更换。
使用Packer成功地做到了这一点。但首先,这是一个工作的无人值守配置:
ubuntu-2004.json
:
{
"builders": [
{
"name": "ubuntu-2004","type": "vmware-iso","guest_os_type": "ubuntu-64","headless": false,"iso_url": "file://F:\\ubuntu-20.04.2-live-server-amd64.iso","iso_checksum": "aba7e22636c435c5008f5d059ae69a62","ssh_username": "vagrant","ssh_password": "vagrant","ssh_timeout":"60h","ssh_handshake_attempts": "20000","http_directory": "http","memory": 1024,"boot_wait": "5s","boot_command": [
"<enter><enter><f6><esc><wait> ","autoinstall ds=nocloud-net;s=http://{{ .HTTPIP }}:{{ .HTTPPort }}/","<enter>"
]
}
],"provisioners": [
{
"type": "shell","inline": ["ls /"]
}
]
}
user-data
:
#cloud-config
autoinstall:
version: 1
identity:
hostname: librenms
password: $6$p7TmlCd1WIljlXVE$B8Yr1f6eVvQrlE5qsk3dp6heo1YveUdXBzXwYY5bhMlbcyl9rvZtH0AkW1ntiE2jgYA8GEQ4vx/lsjxYNwHuK.
username: vagrant
storage:
layout:
name: lvm
update: true
ssh:
install-server: true
allow-pw: true
我们还需要空白文件meta-data放置
在 Packer HTTP 服务器可用的目录中。
虽然这使用VMware 构建器,但其他构建器中也存在相关的配置选项。.
除了基本配置之外,还有四件事需要解决:
- 确保有足够的内存来运行安装程序。512MB 导致内核崩溃,1GB 工作正常,
- 安装SSH服务器,
- 允许SSH 握手失败更长时间,因为安装程序有它自己的 SSH 服务器,这将导致“等待 SSH...”连接到错误的东西并且构建失败,
- 确保在安装完成后我们有一个持久的 IP 地址。
执行此操作的典型方法是将使用的 DHCP 标识符恢复为设备的 MAC 地址,而不是现在常见的设备标识符。这与我之前在 Debian Buster (10) 中看到的问题相同,我在这里重用了 late 命令来设置 DHCP 客户端来执行此操作。我们似乎也需要使用netplan来做到这一点,以可靠地获得 Packer 期望的相同 IP。
有趣的是,subiquity 似乎不支持dhcp-identifier,所以需要我们在安装完成后自己做。我们需要引用该sed
行,否则我们在加载cloud-init配置时会陷入陷阱 ,因为它似乎认为它是 YAML。
这需要相当长的时间才能正常工作。为了解决一路上的问题,我:
- 当安装程序失败或卡住时,使用 Alt + F2 来获得一个工作控制台,
- 阅读输出
/var/log/installer/subiquity-debug.log
以获得正确的网络配置, - ...并
/var/log/syslog
调试围绕late-commands
.
原文地址:https://blog.csdn.net/allway2
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。