手当たり次第に書くんだ

飽きっぽいのは本能

Ubuntu 22.04 KVM virt-install – CLI で仮想マシンを作成する

Ubuntu 22.04 の KVM / libvirt 環境では、virt-install を使うと CLI から仮想マシンを作成できます。GUI で確認しながら作る virt-manager と違い、VM 名、CPU、メモリ、ディスク、ネットワーク、インストール方法をコマンドとして残せる点が利点です。

この記事では、KVM と libvirt がすでに使える Ubuntu 22.04 ホストを前提に、ISO から新規インストールする例と、既存 QCOW2 イメージを import する例を確認します。現在の新規構築手順ではなく、既存環境を保守するための確認記事です。

関連する記事
この記事で確認すること
  • virt-install で指定する基本項目
  • ISO からの仮想マシン作成
  • 既存 QCOW2 イメージの import
  • ブリッジ、ディスク、コンソールの確認
  • virsh による作成後の確認
参考
書籍
参考書籍

ストーリーで覚える Linux CLI 入門

Linux のコマンドライン操作やサーバー管理の基礎を確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。

Amazon で見る

このリンクは Amazon アソシエイトリンクです。

virt-install で決める項目

virt-install は、libvirt に仮想マシン定義を作らせるための CLI です。最低限、名前、メモリ、CPU、ディスク、インストール方法を指定します。運用ではネットワークとコンソールも明示しておくと、あとから状態を追いやすくなります。

  • --name で仮想マシン名を決める
  • --memory--vcpus でリソースを指定する
  • --disk で QCOW2 などのディスクを指定する
  • --cdrom--location--import で起動方法を決める
  • --network で bridge や libvirt network を指定する
  • --graphics--console で接続方法を決める

必要なパッケージを確認する

KVM / libvirt の基本環境が入っていることを確認します。virt-installvirtinst パッケージで提供されます。

sudo apt update
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y qemu-kvm libvirt-daemon-system libvirt-clients virtinst
virt-install --version
virsh version

libvirt の接続先を確認する

通常の KVM ホストでは、system libvirt の qemu:///system を使います。作成先を曖昧にしないため、VM 一覧とストレージプールを先に確認します。

virsh -c qemu:///system list --all
virsh -c qemu:///system pool-list --all
virsh -c qemu:///system net-list --all

ブリッジを確認する

外部ネットワークへ直接接続する VM では、NAT 型の default network ではなく、ホスト側のブリッジインターフェイスを使うことがあります。ここでは br0 を例にします。

ip link show type bridge
networkctl status br0
virsh net-list --all

ISO から仮想マシンを作成する

Ubuntu Server の ISO からインストールする例です。ディスクは QCOW2 として作成し、ネットワークは br0 に接続します。

sudo virt-install \
  --connect qemu:///system \
  --name ubuntu2204-test \
  --memory 4096 \
  --vcpus 2 \
  --disk path=/var/lib/libvirt/images/ubuntu2204-test.qcow2,size=40,format=qcow2,bus=virtio \
  --cdrom /var/lib/libvirt/images/ubuntu-22.04-live-server.iso \
  --os-variant ubuntu22.04 \
  --network bridge=br0,model=virtio \
  --graphics none \
  --console pty,target_type=serial \
  --noautoconsole

コンソールへ自動接続しない場合でも、作成後に virsh console で接続できます。シリアルコンソールを使うには、ゲスト OS 側の console 設定も関係します。

既存 QCOW2 を import する

すでに作成済みの QCOW2 イメージを libvirt に登録する場合は、--import を使います。この場合は OS インストール処理をスキップし、既存ディスクから起動します。

sudo virt-install \
  --connect qemu:///system \
  --name imported-vm \
  --memory 4096 \
  --vcpus 2 \
  --disk path=/var/lib/libvirt/images/imported-vm.qcow2,format=qcow2,bus=virtio \
  --os-variant ubuntu22.04 \
  --network bridge=br0,model=virtio \
  --import \
  --graphics none \
  --console pty,target_type=serial \
  --noautoconsole

作成前に XML を確認する

本番に近いホストで試す場合は、いきなり VM を作らず、--print-xml で生成される定義を確認してから実行すると安全です。

virt-install \
  --connect qemu:///system \
  --name dryrun-vm \
  --memory 2048 \
  --vcpus 2 \
  --disk path=/var/lib/libvirt/images/dryrun-vm.qcow2,size=20,format=qcow2,bus=virtio \
  --cdrom /var/lib/libvirt/images/ubuntu-22.04-live-server.iso \
  --os-variant ubuntu22.04 \
  --network bridge=br0,model=virtio \
  --graphics none \
  --print-xml

作成後に確認する

VM を作成したら、libvirt 上の定義、ディスク、ネットワークインターフェイス、起動状態を確認します。

virsh -c qemu:///system list --all
virsh -c qemu:///system domblklist ubuntu2204-test
virsh -c qemu:///system domiflist ubuntu2204-test
virsh -c qemu:///system dominfo ubuntu2204-test

コンソールへ接続する

テキストインストールやトラブルシュートでは、シリアルコンソールへ接続します。抜けるときは Ctrl + ] を使います。

virsh -c qemu:///system console ubuntu2204-test

削除するときの注意

作成に失敗した VM を削除する場合は、VM 定義とディスクを分けて扱います。ディスクを消す操作は戻せないため、対象パスを確認してから実行します。

virsh -c qemu:///system shutdown ubuntu2204-test
virsh -c qemu:///system undefine ubuntu2204-test
virsh -c qemu:///system vol-list default

運用時に見るポイント

virt-install のコマンドは VM 作成の入口です。実際の運用では、どのブリッジへ接続するか、ディスクをどこに置くか、コンソールへどう入るか、バックアップ対象をどこまでにするかを決めておく必要があります。

  • VM 名とディスク名を対応させる
  • ブリッジ名を明示して、default network と混同しない
  • QCOW2 の置き場所とストレージプールを確認する
  • OS variant をできるだけ指定する
  • 作成前に --print-xml で定義を確認する

まとめ

Ubuntu 22.04 の KVM ホストで virt-install を使うと、GUI に頼らず仮想マシンを作成できます。ISO からの新規インストールと、既存 QCOW2 の import では指定するオプションが異なります。

保守対象の KVM 環境では、VM 名、ディスク、ブリッジ、OS variant、コンソールを明示し、作成後に virsh で状態を確認します。手順をコマンドとして残せることが、virt-install を使う大きな利点です。

関連する記事
Ubuntu 22.04 KVM virt-install – CLI で仮想マシンを作成する

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る