我的情况如下。
我部署了几台服务器,每台服务器都生成了 /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
顶级键。此外,autoinstall
和identity
键是必需的,第一行注释行也是如此#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-data
meta-data
立方体,我将在下面概述。
使用 Cubic将自定义user-data
文件添加到 ISO
运行立方
-
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
此后,您的自定义 ISO 可用于自动安装Ubuntu 2.04.3 服务器安装。