在自动服务器安装中仅询问主机名

在自动服务器安装中仅询问主机名

我正在尝试安装 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 地址修复它们的地址。

相关内容