我正在尝试安装 20.04自动安装配置文件像这个:
用户数据文件:
version: 1
identity:
hostname: hostname
username: username
password: $crypted_pass
但我希望安装过程仅询问主机名,其他一切都自动化。我觉得这应该是可能的,因为文档说是的almost infinitely configurable
。
我正在使用 pxeboot/tftp 安装,下面是我的安装行,类似于快速开始指导:
kernel installers/ubuntu/20.04/vmlinuz
initrd installers/ubuntu/20.04/initrd
append root=/dev/ram0 ramdisk_size=1500000 ip=dhcp url=http://releases.ubuntu.com/20.04/ubuntu-20.04-live-server-amd64.iso autoinstall ds=nocloud-net;s=http://myserver/preseeds/20.04/
以下是我尝试过的一些方法:
交互部分中的身份
它要求我输入语言(为什么?)和所有身份字段,而且密码不是预先设置的
version: 1
interactive-sections:
- identity
identity:
hostname: hostname
username: username
password: $crypted_pass
删除主机名
由于需要主机名,因此会出现解析错误
version: 1
interactive-sections:
- identity
identity:
username: username
password: $crypted_pass
答案1
以下是一些可能设置主机名的选项。第一个是我建议的问主机名。其他方式都是您可以提供的方式。
1. 互动部分
从自动服务器安装,您可以将某个部分标记为交互式。它还表示,交互式部分下提供的任何值都将用作默认值。交互式部分也可能阻止自动重启,但如果任何部分是交互式的,也会使语言环境部分成为交互式的。
似乎您可以将identity
部分设置为交互。这可能会迫使您同意用户名和密码值,但它们应该为默认值。
自动安装文件的开头可能如下所示:
#cloud-init
version: 1
interactive-sections:
- identity
identity:
hostname: hostname
username: username
password: $crypted_pass
如果使用交互式部分,我相信您会被提示重新启动。按 Alt-F2 进入另一个提示可能会允许您运行脚本或命令来设置主机名。
2. 后期命令
还有一个late-commands
部分。以下是来自Ubuntu Server 20.04 自动安装显示了在安装结束时可以发出命令的位置。也许您可以弄清楚如何在最后自动修改主机名。
late-commands:
- echo 'ubuntu ALL=(ALL) NOPASSWD:ALL' > /target/etc/sudoers.d/ubuntu
- sed -ie 's/GRUB_CMDLINE_LINUX=.*/GRUB_CMDLINE_LINUX="net.ifnames=0 ipv6.disable=1 biosdevname=0"/' /target/etc/default/grub
- curtin in-target --target /target update-grub2
3. 用户数据部分
在我引用的两个链接中也有一个user-data
部分。自动服务器安装假设如果你包含此部分,则无需包含身份部分。也许你可以在此处配置主机名,但你可能还必须在此处完全设置用户。本文讨论了如何使用此功能启动板错误。发帖者分享了他们的自动安装配置这个帖子,但我保留了其中的一部分以供后人参考。
user-data:
password: "$6$exDY1mhS4KUYCE/2$zmn9ToZwTKLhCw.b4/b.ZRTIZM30JZ4QrOQ2aOXJ8yk96xpcCof0kxKwuX1kqLG/ygbJ1f8wxED22bTL4F46P0"
username: ubuntu
hostname: ubuntu-server
users:
- gecos: ubuntu
groups: [adm, cdrom, dip, plugdev, lxd, sudo]
lock-passwd: false
name: ubuntu
passwd: <SOME_PASSWORD_STRING>
shell: /bin/bash
sudo: ALL=(ALL) NOPASSWD:ALL
ssh_authorized_keys:
- ssh-rsa <SOME_RSA_KEY>
答案2
如果您在 DHCP 中通过 MAC 地址在 PXE 启动之前修复了 IP 地址,则只需在启动 PXE 之前为该 IP 添加反向 DNS 记录,并且该主机在安装期间将此反向记录作为其主机名。您可以对所有自动安装的客户端执行此操作。但您必须在 PXE 启动之前通过 MAC 地址修复它们的地址。