使用预安装的软件包和设置创建 Xen 来宾

使用预安装的软件包和设置创建 Xen 来宾

对于上下文,我正在创建一个脚本来简化创建 xen 来宾的过程。该脚本使用xen-create-image并使用一堆标志来设置尽可能多的有用设置(发行版、vg、根磁盘大小、IP 等)。这一切都在 Debian 10 上进行。

我想知道是否有其他 Xen 工具或配置可以用来(预)安装某些软件包,并在新创建的来宾中设置某些设置/配置文件。

我想避免使用包含所有预安装软件包的映像文件,然后dd将其放入新的 LV,然后必须更改主机名、IP 等。

有这样的命令或者设置吗?

编辑: 为了澄清起见,我使用开源 Xen 4.11

编辑2: 我考虑过 SSH,但显然 xen-create-image 没有安装和启用 openssh-server。

答案1

我想到了。

xen-create-image 有一个名为--role;的选项这些角色在 中定义为sh脚本/etc/xen-tools/role.d/,您可以创建自己的角色,只要它是可执行的即可。

我做了一个非常简单的角色,只是为了测试:

#!/bin/sh

prefix=$1

installDebianPackage ${prefix} openssh-server

chroot ${prefix} /bin/systemctl enable ssh
chroot ${prefix} /bin/echo 'PermitRootLogin yes' >> ${prefix}/etc/ssh/sshd_config

prefix=$1/tmp/默认情况下是一个具有随机生成名称的文件夹。在这里xen-create-image构建文件系统并安装软件包,然后将其放入逻辑卷或映像(或者看起来是这样)。

common.sh是一个包含一堆xen-create-image用于构建虚拟机的函数的脚本。 installDebianPackage据我所知,这是这些功能之一,它会将指定的包安装到虚拟机中。

以 开头的行chroot可能是确保设置某些设置、将行添加到配置文件等的命令。这是角色的一个强大功能,因为这使得运行基本上任何命令成为可能。systemctl startsystemctl stopsystemctl restart当然不起作用,但systemctl enable确实有效。

在启用的情况下,sshd启动机器后大约需要5分钟才能启动,包括启动时间,并且我的机器在实际启动之前莫名其妙地说“无法处理卷组”50次。

相关内容