对于上下文,我正在创建一个脚本来简化创建 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 start
、systemctl stop
、systemctl restart
当然不起作用,但systemctl enable
确实有效。
在启用的情况下,sshd
启动机器后大约需要5分钟才能启动,包括启动时间,并且我的机器在实际启动之前莫名其妙地说“无法处理卷组”50次。