これに対して自動化されたテスト環境を設定しようとしています。LinuxインストーラスクリプトKVM / Qemuゲストを使用してください。現在、Debian Live環境でDebianシステムを起動するためのエンドツーエンドのサポートのみを提供していますが、Archlinux、Fedora、ジクス最終結果は、サポートされているすべてのLiveCD環境とカスタムルートファイルシステム/環境(LUKS、LVM、MDADM、ZFS、UEFI / BIOSなどの組み合わせ)リリースでサポートされているすべてのLiveCD環境で起動できることです。
私はライブ環境でスクリプトを手動でテストするためにKVM / Qemuを使用しています。私はKVM / Qemuを使い続けたいのですが、誰かが私がこれをうまくやる他のVMソリューションを見せてくれたら、私は喜んで受け入れるでしょう!
私にとって最大の問題は自動化されたテストです。現在テストできる唯一の方法は次のとおりです。
- Live CD環境の起動
- gitリポジトリの複製(またはホストディレクトリまたはNFSからマウント)
- スクリプトを実行して
init-instroot
ルートファイルシステムを構成する - 起動スクリプトを実行して新しいシステムを起動します(現在のDebianでのみサポートされています)。
init-instroot
スクリプトオプションの可能なすべての設定(たとえば、スワップ用のLVMまたはファイルの使用、ルートとしてのZFSの使用、UEFIまたはBIOSなど)に対して自動的に実行できるように、このプロセスを自動化したいと思います。このように構成されたルートファイルシステム別のディストリビューション。最後に、新しく起動したシステムを再起動し、何とか動作することを確認してください。
これまで、次の記事を見てきましたが、私の状況に合わないか、正しく機能しません。
- virt-installを使用したコマンドラインからのVMのインストール
- virt-install は preseed.cfg を使用して Debian を自動的にインストールします。
- 無人仮想インストールを完全に自動化する方法は?
- KVMを使用してVMにスクリプトを渡す
- qemuゲスト自動化
- QEMU/KVMを使用したゲストの自動化
私はスクリプトポストを使用する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
--cdrom
using - を使用して--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-args
withconsole=tty0,console=ttyS0
パラメータが実際にどのように機能するのかわかりません。1、2]、上記の例で確認しました。
答え1
VGA / USBコンソール(tty0)またはシリアルコンソール(ttyS0)を選択する必要があるようです。私はあなたが両方を同時に使用できると信じていません。
また、IIRCにはほとんどの居酒屋に渡すことができるグラフィカルなインストーラパラメータがあります。
たとえば、Debianの次のページが役に立ちます。 https://www.debian.org/releases/stable/amd64/apbs02.en.html#preseed-bootparms
インストーラに渡されるフレームバッファを設定するfb =変数が含まれています。