使用 Cubic将自定义user-data文件添加到 ISO

使用 Cubic将自定义user-data文件添加到 ISO

我的情况如下。

我部署了几台服务器,每台服务器都生成了 /var/log/installer/autoinstall-user-data。当然,设备上的情况也发生了变化,即网络配置和存储配置。

现在,我想创建一个与服务器当前配置匹配的 autoinstall-user-data 的新版本。对于网络,提取当前的 netplan 配置似乎相对简单。但是,有没有办法对存储执行类似的操作?即以合适的格式提取它以替换在 autoinstall-user-data 文件中找到的旧存储配置?

澄清;初始安装后,存储配置如下;

node:~$ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0    7:0    0  63.3M  1 loop /snap/core20/1822
loop1    7:1    0 111.9M  1 loop /snap/lxd/24322
loop2    7:2    0  49.8M  1 loop /snap/snapd/18357
loop3    7:3    0  63.5M  1 loop /snap/core20/2015
loop4    7:4    0  40.9M  1 loop /snap/snapd/20290
sda      8:16   0 447.1G  0 disk 
├─sda1   8:17   0     1G  0 part /boot/efi
└─sda2   8:18   0   446G  0 part /

经过一些调整后,安装后,存储配置如下所示;

node:~$ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0    7:0    0  63.3M  1 loop /snap/core20/1822
loop1    7:1    0 111.9M  1 loop /snap/lxd/24322
loop2    7:2    0  49.8M  1 loop /snap/snapd/18357
loop3    7:3    0  63.5M  1 loop /snap/core20/2015
loop4    7:4    0  40.9M  1 loop /snap/snapd/20290
sda      8:0    0   1.8T  0 disk 
└─sda1   8:1    0   1.8T  0 part /data
sdb      8:16   0 447.1G  0 disk 
├─sdb1   8:17   0     1G  0 part /boot/efi
└─sdb2   8:18   0   446G  0 part /

有什么工具/方法可以让我更新 autouser-install 中的存储配置,以匹配新的存储布局?

BR/帕特里克

答案1

如果我理解你的问题正确的话,你想做一个自动安装安装,您可以专门定义您的存储配置。这可以通过在文件中配置存储布局轻松完成,user-data该文件下层社会科廷将在安装过程中参考。

正如您在问题中提到的,标准服务器安装会生成一个名为的文件/var/log/installer/autoinstall-user-data。因此,首先,您可以简单地从此文件中复制存储配置部分,并将其添加到user-data您将用作自动安装以供将来安装的文件。

例如,在 Ubuntu 22.04.3 的标准服务器安装中,这里是生成并显示的存储配置部分/var/log/installer/autoinstall-user-data

  storage:
    config:
    - ptable: gpt
      serial: VBOX_HARDDISK_VB33ff5bd3-8d67f93f
      path: /dev/sda
      wipe: superblock-recursive
      preserve: false
      name: ''
      grub_device: true
      type: disk
      id: disk-sda
    - device: disk-sda
      size: 1048576
      flag: bios_grub
      number: 1
      preserve: false
      grub_device: false
      offset: 1048576
      path: /dev/sda1
      type: partition
      id: partition-0
    - device: disk-sda
      size: 2147483648
      wipe: superblock
      number: 2
      preserve: false
      grub_device: false
      offset: 2097152
      path: /dev/sda2
      type: partition
      id: partition-1
    - fstype: ext4
      volume: partition-1
      preserve: false
      type: format
      id: format-0
    - device: disk-sda
      size: 24692916224
      wipe: superblock
      number: 3
      preserve: false
      grub_device: false
      offset: 2149580800
      path: /dev/sda3
      type: partition
      id: partition-2
    - name: ubuntu-vg
      devices:
      - partition-2
      preserve: false
      type: lvm_volgroup
      id: lvm_volgroup-0
    - name: ubuntu-lv
      volgroup: lvm_volgroup-0
      size: 12343836672B
      wipe: superblock
      preserve: false
      path: /dev/ubuntu-vg/ubuntu-lv
      type: lvm_partition
      id: lvm_partition-0
    - fstype: ext4
      volume: lvm_partition-0
      preserve: false
      type: format
      id: format-1
    - path: /
      device: format-1
      type: mount
      id: mount-1
    - path: /boot
      device: format-0
      type: mount
      id: mount-0

/dev/sda这会在 LVM 上生成如下的存储布局:

$ lsblk
NAME                      MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0                       7:0    0  63.4M  1 loop /snap/core20/1974
loop1                       7:1    0  53.3M  1 loop /snap/snapd/19457
loop2                       7:2    0 111.9M  1 loop /snap/lxd/24322
sda                         8:0    0    25G  0 disk 
├─sda1                      8:1    0     1M  0 part 
├─sda2                      8:2    0     2G  0 part /boot
└─sda3                      8:3    0    23G  0 part 
  └─ubuntu--vg-ubuntu--lv 253:0    0  11.5G  0 lvm  /
sr0                        11:0    1  1024M  0 rom  

要在自动安装安装,创建一个user-data文件,如下所示。但请注意,我删除了一些不必要的键,例如和,serial它们path属于各种device顶级键。此外,autoinstallidentity键是必需的,第一行注释行也是如此#cloud-config。此配置定义了默认用户ubuntu和密码ubuntu,它们是散列的。可以使用创建不同的密码mkpasswd --method=SHA-512 --rounds=4096。相应地进行更改。

#cloud-config
autoinstall:
  version: 1
  identity:
    hostname: ubuntu-server
    password: $6$5lpwCLsKLEzMkSJc$keOAhA6aO/5RocGThmhVA7LSNuW911Rx5HHXFEa75oGK20cEdAAgn14H5f5nGeq6QgcSyLPrWcg1.JvjXbhrN/
    realname: Ubuntu User
    username: ubuntu
  storage:
    config:
    - ptable: gpt
      wipe: superblock-recursive
      preserve: false
      name: ''
      grub_device: true
      type: disk
      id: disk-sda
    - device: disk-sda
      size: 1048576
      flag: bios_grub
      number: 1
      preserve: false
      grub_device: false
      offset: 1048576
      type: partition
      id: partition-0
    - device: disk-sda
      size: 2147483648
      wipe: superblock
      number: 2
      preserve: false
      grub_device: false
      offset: 2097152
      type: partition
      id: partition-1
    - fstype: ext4
      volume: partition-1
      preserve: false
      type: format
      id: format-0
    - device: disk-sda
      size: 24692916224
      wipe: superblock
      number: 3
      preserve: false
      grub_device: false
      offset: 2149580800
      type: partition
      id: partition-2
    - name: ubuntu-vg
      devices:
      - partition-2
      preserve: false
      type: lvm_volgroup
      id: lvm_volgroup-0
    - name: ubuntu-lv
      volgroup: lvm_volgroup-0
      size: 12343836672B
      wipe: superblock
      preserve: false
      path: /dev/ubuntu-vg/ubuntu-lv
      type: lvm_partition
      id: lvm_partition-0
    - fstype: ext4
      volume: lvm_partition-0
      preserve: false
      type: format
      id: format-1
    - path: /
      device: format-1
      type: mount
      id: mount-1
    - path: /boot
      device: format-0
      type: mount
      id: mount-0

有关自定义存储配置的更多信息,请阅读以下文档:自动服务器安装程序配置文件参考以及科廷文献


文档位于自动服务器安装快速入门表示您可以user-data以多种方式之一利用该文件进行安装。您可以阅读文档自行研究。

  • 通过提供自动安装网络数据
  • 通过使用另一个卷来提供自动安装数据

但是,您也可以通过解压 ISO 文件、添加文件以及空白文件、修改 grub,然后重新打包 ISO,将自定义user-data文件添加到 ISO 。一种简单的方法是使用user-datameta-data立方体,我将在下面概述。


使用 Cubic将自定义user-data文件添加到 ISO

运行立方

  1. 选择您的工作目录 在此处输入图片描述

  2. 选择你的 ISO。我使用ubuntu-22.04.3-live-服务器-amd64.iso 在此处输入图片描述

  3. 点击下一个接着说 在此处输入图片描述

  4. 在下一页上,选择预播种选项卡并将您的自定义user-data文件和空白meta-data文件上传到预播种目录 在此处输入图片描述

  5. 选择引导选项卡并编辑grub.cfg文件如下: 在此处输入图片描述

    user-data您专门将第 10 行更改为以下内容。记下我们放置和文件的目录名称meta-data。它是/cdrom/预置/,这是已经在 Cubic 中创建的内容。

     linux   /casper/vmlinuz  autoinstall ds=nocloud\;s=/cdrom/preseed/ ---
    

    以下是整个grub.cfg文件:

     set timeout=30
    
     loadfont unicode
    
     set menu_color_normal=white/black
     set menu_color_highlight=black/light-gray
    
     menuentry "Try or Install Ubuntu Server" {
         set gfxpayload=keep
         linux   /casper/vmlinuz  autoinstall ds=nocloud\;s=/cdrom/preseed/ ---
         initrd  /casper/initrd.gz
     }
     menuentry "Ubuntu Server with the HWE kernel" {
         set gfxpayload=keep
         linux   /casper/vmlinuz  ---
         initrd  /casper/initrd.gz
     }
     grub_platform
     if [ "$grub_platform" = "efi" ]; then
     menuentry 'Boot from next volume' {
         exit 1
     }
     menuentry 'UEFI Firmware Settings' {
         fwsetup
     }
     else
     menuentry 'Test memory' {
         linux16 /boot/memtest86+.bin
     }
     fi
    
  6. 点击下一个进入以下页面。点击产生创建您的自定义 ISO。 在此处输入图片描述

  7. 完成后,您将看到此页面 在此处输入图片描述


此后,您的自定义 ISO 可用于自动安装Ubuntu 2.04.3 服务器安装。

相关内容