web-dev-qa-db-ja.com

パッケージと設定がプリインストールされたXenゲストを作成する

コンテキストとして、xenゲストを作成するプロセスを簡素化するスクリプトを作成しています。スクリプトはxen-create-imageを使用し、一連のフラグを使用して、できるだけ多くの有用な設定(ディストリビューション、vg、ルートディスクサイズ、IPなど)を設定します。これはすべてDebian10にあります。

特定のパッケージを(プレ)インストールし、新しく作成されたゲストに特定の設定/構成ファイルを設定するために使用できる他のXenツールまたは構成があるかどうかを知りたいです。

すべてのプリインストールされたパッケージを含むイメージファイルを使用してから、新しいLVにddを使用することを避け、ホスト名、IPなどを変更する必要があります。

そのようなコマンドや設定はありますか?

編集:明確にするために、私はオープンソースのXen4.11を使用しています

編集2: SSHを検討しましたが、どうやらxen-create-imageがインストールされず、openssh-serverが有効になりません。

3

私はそれを考え出した。

xen-create-imageには--roleというオプションがあります。これらの役割は、/etc/xen-tools/role.d/shスクリプトとして定義されており、実行可能である限り、独自の役割を作成できます。

テストのためだけに、私は本当に単純な役割を果たしました。

#!/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がVMの構築に使用する一連の関数を含むスクリプトです。 installDebianPackageは、私が読む限り、これらの関数の1つであり、これにより、指定されたパッケージがVMにインストールされます。

chrootで始まる行は、特定の設定が設定されていることを確認したり、構成ファイルに行を追加したりするコマンドである可能性があります。これは、基本的にすべてのコマンドを実行できるため、ロールの強力な機能です。 systemctl startsystemctl stop、およびsystemctl restartはもちろん機能しませんが、systemctl enableは機能します。

有効にした場合、sshdは、マシンの起動後、起動時間と、実際に起動する前に50回「ボリュームグループを処理できません」と言った私のマシンを含めて、起動に約5分かかりました。

2