Live CD 環境で KVM/Qemu を使用して無人スクリプトを実行する

Live CD 環境で KVM/Qemu を使用して無人スクリプトを実行する

これに対して自動化されたテスト環境を設定しようとしています。LinuxインストーラスクリプトKVM / Qemuゲストを使用してください。現在、Debian Live環境でDebianシステムを起動するためのエンドツーエンドのサポートのみを提供していますが、Archlinux、Fedora、ジクス最終結果は、サポートされているすべてのLiveCD環境とカスタムルートファイルシステム/環境(LUKS、LVM、MDADM、ZFS、UEFI / BIOSなどの組み合わせ)リリースでサポートされているすべてのLiveCD環境で起動できることです。

私はライブ環境でスクリプトを手動でテストするためにKVM / Qemuを使用しています。私はKVM / Qemuを使い続けたいのですが、誰かが私がこれをうまくやる他のVMソリューションを見せてくれたら、私は喜んで受け入れるでしょう!

私にとって最大の問題は自動化されたテストです。現在テストできる唯一の方法は次のとおりです。

  1. Live CD環境の起動
  2. gitリポジトリの複製(またはホストディレクトリまたはNFSからマウント)
  3. スクリプトを実行してinit-instrootルートファイルシステムを構成する
  4. 起動スクリプトを実行して新しいシステムを起動します(現在のDebianでのみサポートされています)。

init-instrootスクリプトオプションの可能なすべての設定(たとえば、スワップ用のLVMまたはファイルの使用、ルートとしてのZFSの使用、UEFIまたはBIOSなど)に対して自動的に実行できるように、このプロセスを自動化したいと思います。このように構成されたルートファイルシステム別のディストリビューション。最後に、新しく起動したシステムを再起動し、何とか動作することを確認してください。

これまで、次の記事を見てきましたが、私の状況に合わないか、正しく機能しません。

私はスクリプトポストを使用するQEMU / KVMゲストオートメーションで多くの可能性を見ていますexpect。私のスクリプトが書かれたのでGNU ギラー、それ自体は素晴らしいです。図書館が期待される、これが自然な発展の方向になります。残念ながら、端末を介して LiveCD ゲスト環境を実行することもできません。明らかに、私の予想されるスクリプトがゲスト環境とやり取りを開始できるようになった時点で、ログインのリアルタイムプロンプトを受け取りたいと思います。

以下のコマンドで実行しようとしていますが、virt-install端末を介してどのようなものとも対話できず、実際には何も起動しないようです。出力は次のとおりです。

Running text console command: virsh --connect qemu:///system console test
Connected to domain 'test'
Escape character is ^] (Ctrl + ])

「標準」(コマンドラインのみ)Dabian Live ISOから起動しようとしましたが、引数を使用してカーネルパラメータ設定をサポートして--cdromいません。--extra-args

virt-install --name test --ram 4096 --vcpu 2 \
--disk path=disks/test.img,bus=virtio,size=4 \
--graphics none \
--cdrom /home/dadinn/Downloads/isos/debian-live-10.3.0-amd64-standard.iso

--cdromusing - を使用して--locationパラメータの代わりにカーネルパラメータを使用できますが、extra-argsまだ何も起こらないようです。

virt-install --name test --ram 4096 --vcpu 2 \
--disk path=disks/test.img,bus=virtio,size=4 \
--graphics none \
--location http://ftp.us.debian.org/debian/dists/buster/main/installer-amd64/ \
--extra-args console=tty0,console=ttyS0,115200n8,serial

おそらく、URLがコマンドライン専用のイメージを指していないためです。また、extra-argswithconsole=tty0,console=ttyS0パラメータが実際にどのように機能するのかわかりません。12]、上記の例で確認しました。

答え1

VGA / USBコンソール(tty0)またはシリアルコンソール(ttyS0)を選択する必要があるようです。私はあなたが両方を同時に使用できると信じていません。

また、IIRCにはほとんどの居酒屋に渡すことができるグラフィカルなインストーラパラメータがあります。

たとえば、Debianの次のページが役に立ちます。 https://www.debian.org/releases/stable/amd64/apbs02.en.html#preseed-bootparms

インストーラに渡されるフレームバッファを設定するfb =変数が含まれています。

関連情報