virt-install の使用とローカル VNC クライアントを用いた接続

virt-manager を使用したくない場合 (例えば、サーバーに関連パッケージをインストールしたくない場合、ローカルで X サーバーを動作させていない場合、SSH の X11 転送が動作しない場合など)、libvirt から仮想マシンを起動するために virt-install ツールを利用できます。また、ローカルマシンにインストールした VNC クライアントからグラフィカルコンソールに接続できます。

Because VNC is a standard protocol, there are multiple clients available that implement the VNC spec, including TigerVNC (multiple platforms), TightVNC (multiple platforms), RealVNC (multiple platforms), Chicken (Mac OS X), Krde (KDE), Vinagre (GNOME).

以下の例は、 qemu-img コマンドを使用して、空のイメージファイルを作成する方法、および virt-install コマンドを使用して、そのイメージファイルを用いて仮想マシンを作成する方法を示します。以下を root として実行します。

# qemu-img create -f qcow2 /tmp/centos.qcow2 10G
# virt-install --virt-type kvm --name centos --ram 1024 \
  --disk /tmp/centos.qcow2,format=qcow2 \
  --network network=default \
  --graphics vnc,listen=0.0.0.0 --noautoconsole \
  --os-type=linux --os-variant=centos7.0 \
  --location=/data/isos/CentOS-7-x86_64-NetInstall-1611.iso

Starting install...
Creating domain...                     |    0 B     00:00
Domain installation still in progress. You can reconnect to
the console to complete the installation process.

KVM は、libvirt 名 centos、メモリ 1024MB の仮想マシンを起動します。仮想マシンは、 /data/isos/CentOS-7-x86_64-NetInstall-1611.iso ファイルを接続した仮想 CD-ROM ドライブ、ホストの /tmp/centos.qcow2 に保存した qcow2 形式の 10 GB ハードディスクを持ちます。また、libvirt の default ネットワークを使用するよう設定します。すべてのインターフェースでリッスンしている VNC サーバーがあります。libvirt は、VNC クライアントを自動的に起動しません。テキストコンソールを表示しません (--no-autoconsole)。最後に、libvirt は CentOS 7 ディストリビューションを実行する Linux ゲスト向けに設定を最適化しようとします。

注釈

libvirt default ネットワークの利用時、libvirt が仮想マシンのインターフェースを virbr0 という名前のブリッジに接続します。libvirt により管理される dnsmasq プロセスが動作しています。192.168.122.0/24 サブネットに IP アドレスを払い出します。また、libvirt がこのサブネットに IP アドレスを NAT する iptables ルールを作成します。

osinfo-query os コマンドを実行し、 --os-variant オプションの利用できる値を確認します。

virsh vncdisplay vm-name コマンドを使用して、VNC ポート番号を取得します。

# virsh vncdisplay centos
:1

上の例では、ゲストの centos が VNC ディスプレイ :1 を使用します。これは、TCP ポート 5901 番に対応します。ローカルマシンの VNC クライアントをリモートマシンのディスプレイ :1 に接続できます。そして、インストールプロセスを進めていきます。