第4章 仮想化コマンドラインインターフェイスの使用
Red Hat Enterprise Linux 7 で仮想化を操作する標準的な方法は、コマンドラインユーザーインターフェイス (CLI) を使用することです。CLI コマンドを入力すると、ホストシステムで仮想マシンを作成または操作するシステムユーティリティーがアクティブになります。この方法を使用すると、virt-manager などのグラフィカルアプリケーション を使用するよりも詳細に制御でき、スクリプト作成や自動化を行うこともできます。
4.1. 仮想化用の主なコマンドラインユーティリティー
以下のサブセクションでは、Red Hat Enterprise Linux 7 で仮想化を設定および管理するために使用できる主なコマンドラインユーティリティーを一覧表示します。これらのコマンドは、他の多数の仮想化ユーティリティーと同様に、Red Hat Enterprise Linux リポジトリーが提供するパッケージに含まれており、Yum パッケージマネージャーを使用 してインストールできます。
仮想化パッケージのインストールの詳細は、仮想化の導入および管理ガイド を参照してください。
4.1.1. virsh
virsh
は、ハイパーバイザーとゲスト仮想マシンを管理するための CLI ユーティリティーです。これは、Red Hat Enterprise Linux 7 で仮想化を制御する主要な手段です。その機能は次のとおりです。
- 仮想マシンの作成、設定、一時停止、一覧表示、およびシャットダウン
- 仮想ネットワークの管理
- 仮想マシンの ディスクイメージ のロード
virsh
ユーティリティーは、仮想化管理スクリプトの作成に最適です。root 権限を持たないユーザーも virsh
を使用できますが、読み取り専用モードで使用することになります。
virsh
の使用
virsh
ユーティリティーは、標準のコマンドライン入力で使用できるだけでなく、対話式のシェルとしても使用できます。シェルモードでは、コマンドプレフィックスの virsh
が不要になり、ユーザーは常に root として登録されます。次の例では、virsh hostname コマンドを使用してハイパーバイザーのホスト名を表示します。最初は標準モードで、次に対話モードで使用します。
$ virsh hostname localhost.localdomain $ virsh Welcome to virsh, the virtualization interactive terminal. Type: 'help' for help with commands 'quit' to quit virsh # hostname localhost.localdomain
重要
非 root ユーザーとして virsh を使用すると、非特権 libvirt セッション に入ります。この場合、root によって作成されたゲストやその他の仮想化された要素を表示したり操作したりすることはできません。
要素への読み取り専用アクセスを取得するには、
-c qemu:///system
オプションを指定して virsh を使用します。
virsh
のヘルプの取得
すべての Linux bash コマンドと同様に、virsh のヘルプは man virsh コマンドまたは
--help
オプションを使用して取得できます。さらに、virsh help コマンドを使用して、特定の virsh コマンドのヘルプテキストを表示したり、キーワードを使用して、特定のグループに属するすべての virsh コマンドを一覧表示したりできます。
virsh コマンドグループとそれぞれのキーワードは次のとおりです。
- ゲスト管理 - キーワード
domain
- ゲスト監視 - キーワード
monitor
- ホストとハイパーバイザーの監視と管理 - キーワード
host
- ホストシステムのネットワークインターフェイス管理 - キーワード
interface
- 仮想ネットワーク管理 - キーワード
network
- ネットワークフィルター管理 - キーワード
filter
- ノードデバイス管理 - キーワード
nodedev
- パスフレーズや暗号化キーなどのシークレットの管理 - キーワード
secret
- スナップショット管理 - キーワード
snapshot
- ストレージプール管理 - キーワード
pool
- ストレージボリューム管理 - キーワード
volume
- 一般的な virsh の使用法 - キーワード
virsh
次の例では、ゲスト仮想マシンの名前を変更する方法を知る必要があります。virsh help を使用して、まず使用する適切なコマンドを見つけ、次にその構文を理解します。最後に、コマンドを使用して Fontaine というゲストの名前を Atlas に変更します。
例4.1 キーワードを使用してすべてのコマンドのヘルプを一覧表示する方法
# virsh helpdomain
Domain Management (help keyword 'domain'): attach-device attach device from an XML file attach-disk attach disk device [...] domname convert a domain id or UUID to domain name domrename rename a domain [...] # virsh helpdomrename
NAME domrename - rename a domain SYNOPSIS domrename <domain> <new-name> DESCRIPTION Rename an inactive domain. OPTIONS [--domain] <string> domain name, id or uuid [--new-name] <string> new domain name # virsh domrename --domain Fontaine --new-name Atlas Domain successfully renamed
注記
virsh
を使用した仮想マシンの管理に関する詳細は、『Red Hat Enterprise Linux 7 仮想化の導入および管理ガイド』 を参照してください。
4.1.2. virt-install
virt-install は、新しい仮想マシンを作成するための CLI ユーティリティーです。シリアルコンソール、SPICE、または VNC クライアント/サーバーペアグラフィックを使用したテキストベースインストールとグラフィカルインストールの両方をサポートしています。インストールメディアは、ローカルにあるものか、NFS、HTTP、または FTP サーバーにあるリモートのものを使用できます。このツールは、無人で実行し、キックスタート方式を使用してゲストを準備するように設定することもできるため、インストールを簡単に自動化できます。このツールは virt-install パッケージに含まれています。
重要
非 root ユーザーとして virt-install を使用すると、非特権 libvirt セッション に入ります。この場合、作成したゲストは自分にのみ表示され、root によって作成されたゲストが持つ特定の機能にはアクセスできません。
注記
virt-install
の使用に関する詳細は、『Red Hat Enterprise Linux 7 仮想化の導入および管理ガイド』 を参照してください。
4.1.3. virt-xml
virt-xml は、ドメイン XML ファイルを編集するためのコマンドラインユーティリティーです。XML 設定を正常に変更するには、ゲストの名前、XML アクション、および変更内容をコマンドに含める必要があります。
たとえば、次の例では、ゲストのブート設定に関連するサブオプションを一覧表示し、
example_domain
ゲストでブートメニューをオンにします。
# virt-xml boot=? --boot options: arch cdrom [...] menu network nvram nvram_template os_type smbios_mode uefi useserial # virt-xml example_domain --edit --boot menu=on Domain 'example_domain' defined successfully.
コマンドの呼び出しごとに、1 つのドメイン XML ファイルに対して 1 つのアクションを実行できることに注意してください。
注記
このツールは virt-install パッケージに含まれています。virt-xml の使用に関する詳細は、virt-xml の man ページを参照してください。
4.1.4. guestfish
guestfish は、仮想マシンのディスクイメージを調査および変更するためのコマンドラインユーティリティーです。libguestfs ライブラリーを使用し、
libguestfs
API によって提供されるすべての機能を公開します。
guestfish
の使用
guestfish
ユーティリティーは、標準のコマンドライン入力モードで使用できるだけでなく、対話式のシェルとしても使用できます。シェルモードでは、コマンドプレフィックスの guestfish
が不要になり、ユーザーは常に root として登録されます。次の例では、guestfish
を使用して testguest 仮想マシン上のファイルシステムを表示します。最初は標準モードで、次に対話モードで使用します。
# guestfish domain testguest : run : list-filesystems /dev/sda1: xfs /dev/rhel/root: xfs /dev/rhel/swap: swap # guestfish Welcome to guestfish, the guest filesystem shell for editing virtual machine filesystems and disk images. Type: 'help' for help on commands 'man' to read the manual 'quit' to quit the shell ><fs> domain testguest ><fs> run ><fs> list-filesystems /dev/sda1: xfs /dev/rhel/root: xfs /dev/rhel/swap: swap
さらに、
guestfish
は、自動化のために bash スクリプト で使用することもできます。
重要
非 root ユーザーとして guestfish を使用すると、非特権 libvirt セッション に入ります。この場合、root によって作成されたゲストのディスクイメージを表示したり操作したりすることはできません。
これらのディスクイメージへの読み取り専用アクセスを取得するには、
-ro -c qemu:///system
オプションを指定して guestfish を使用します。さらに、ディスクイメージファイルの読み取り権限が必要です。
guestfish のヘルプの取得
すべての Linux bash コマンドと同様に、guestfish のヘルプは man guestfish コマンドまたは
--help
オプションを使用して取得できます。さらに、guestfish help コマンドを使用して、特定の guestfish コマンドに関する詳細情報を表示できます。次の例では、guestfish add コマンドに関する情報を表示します。
$ guestfish help add
NAME
add-drive - add an image to examine or modify
SYNOPSIS
add-drive filename [readonly:true|false] [format:..] [iface:..] [name:..] [label:..] [protocol:..] [server:..] [username:..] [secret:..] [cachemode:..] [discard:..] [copyonread:true|false]
DESCRIPTION
This function adds a disk image called filename to the handle. filename
may be a regular host file or a host device.
[...]
注記
guestfish
の詳細は、『Red Hat Enterprise Linux 7 仮想化の導入および管理ガイド』 を参照してください。