You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

通过SYSLINUX实现Ubuntu 22.04 PXE自动安装时cloud-config文件无法加载的问题求助

通过SYSLINUX实现Ubuntu 22.04 PXE自动安装时cloud-config文件无法加载的问题求助

各位大佬好,我目前已经搭好了正常运行的DHCP、FTP和TFTP服务器,TFTP根目录下的tftpboot配置好了SYSLINUX,支持PXE启动的机器能正常从网络加载SYSLINUX,没什么问题。现在我想通过SYSLINUX实现Ubuntu 22.04 Server的PXE自动安装,跟着教程做了一系列步骤,但遇到了cloud-config加载失败的问题,想请教大家怎么解决。

我的目录结构

首先是TFTP服务器的tftpboot核心目录结构(省略了SYSLINUX常规的其他冗余文件):

tftpboot
├── pxelinux.0
├── jammy
│   ├── initrd
│   └── vmlinuz
├── pxelinux.cfg
│   └── default
└── syslinux
    └── bios
        ├── ldlinux.c32
        ├── libutil.c32
        └── menu.c32

然后是FTP服务器的目录结构:

ftp
└── Ubuntu-22.04
    ├── ubuntu-22.04.1-live-server-amd64.iso
    └── Kickstart
        ├── user-data
        └── meta-data

配置文件内容

user-data我写的是最小化自动安装的配置,meta-data是空文件:

#cloud-config
autoinstall:
  identity:
    hostname: jammy-minimal
    password: $6$gnqbMUzHhQzpDEw.$.cCNVVDsDfj5Feebh.5O4VbOmib7tyjmeI2ZsFP7VK2kWwgJFbfjvXo3chpeAqCgXWVIW9oNQ/Ag85PR0IsKD/
    username: ubuntu
version: 1

pxelinux.cfg/default的配置如下:

default menu.c32
menu title Ubuntu installer

LABEL ubuntu
MENU LABEL Install Ubuntu Jammy Server
MENU DEFAULT
KERNEL jammy/vmlinuz
IPAPPEND 1
APPEND initrd=jammy/initrd ip=dhcp url=ftp://172.16.0.4/Ubuntu-22.04/ubuntu-22.04.1-live-server-amd64.iso autoinstall ds=nocloud-net;s=ftp://172.16.0.4/Ubuntu-22.04/Kickstart

问题现象

内核和ISO都能正常加载,安装流程能启动,但到了需要加载cloud-config的环节时,cloud-init会一直处于等待状态,最后还是会进入手动安装菜单,看起来user-data完全被忽略了。

我的疑问

  • 为什么通过SYSLINUX的default配置文件指定的ds=nocloud-net参数不生效?是不是我哪里配置错了?
  • 有没有其他方式可以让安装程序加载到我的user-data文件?
  • 我考虑过把user-data集成到修改后的ISO里再通过PXE加载,这个方案可行吗?

麻烦各位大佬帮我分析下问题,谢谢!

备注:内容来源于stack exchange,提问作者Andy McRae

火山引擎 最新活动