3.4 Oracle VM Guest Additionsデーモン

3.4.1 Oracle VM Guest Additionsデーモンをサービスとして実行するように構成する方法
3.4.2 Oracle VM Guest Additionsデーモンを使用して初回起動時の構成を有効にする方法
3.4.3 メッセージング・チャネルの使用方法

Oracle VM Guest Additionsデーモン(ovmd)は、Oracle VM Managerとゲストの間の双方向メッセージング・チャネルを容易に作成できるようにします。これを使用すると、ファーストブートのインストール構成が可能となり、キー/値のペアを含むメッセージを送受信できます。

ovm_vmmessageユーティリティを使用することにより、Oracle VM Managerを介して、メッセージを、任意のゲストで実行しているOracle VM Guest Additionsデーモンに送信できます。このユーティリティは、Oracle VM Managerにアクセスできる任意のLinuxシステムまたはOracle VM Managerホスト自体にインストールできます。このツールを使用する方法の詳細は、2.5項「Oracle VM Virtual Machine Messagingの使用方法」を参照してください。

Oracle VM Managerユーザー・インタフェース内に直接含まれるメッセージング機能を使用して、任意のゲストで実行しているOracle VM Guest Additionsデーモンに、メッセージを直接送信することもできます。詳細は、『Oracle VMユーザーズ・ガイド』仮想マシンへのメッセージ送信に関する説明を参照してください。

ovm-template-configスクリプトとovmdを組み合せて使用すると、仮想マシンの起動時に、仮想マシン内のシステムおよびアプリケーションの構成パラメータをリモートから構成できます。この機能の詳細は、3.6項「Oracle VMテンプレート構成スクリプトおよびモジュール」を参照してください。

Oracle VM Managerは、ovmdを使用して、ゲストからIPアドレス情報を取得します。この情報は、Oracle VM Managerユーザー・インタフェースで仮想マシンの詳細情報を表示するときに含まれます。詳細は、3.5項「ゲストIPアドレスの表示」を参照してください。

ovmdをコマンドラインから直接実行して、ovmdの機能外で操作をデーモンまたはシステム・サービスとして実行できます。--helpパラメータを指定してovmdを実行すると、コマンドラインから直接実行する場合にサポートされるオプションの概要が、次のように表示されます。

# ovmd --help
usage: ovmd [options]

options:
-p, --set-param=PARAM   Set param in format: key=value.
-g, --get-param=KEY     Get param value.
-r, --delete-param=KEY  Delete param by key name.
-x, --delete-params     Delete all params.
-l, --list-params       List all params.
-e, --event=EVENT       Inject event.
-s, --script=SCRIPT     Run script.
-d, --debug=LEVEL       Set debug level: 0(DEBUG_OFF), 1(DEBUG_STDERR) or 2(DEBUG_SYSLOG). 
                        Default: 2.
-f, --pid-file=FILENAME Set the pathname of the process ID (PID) file.
-t, --time-period=secs  Set the period for daemon mode(default=10 seconds).
-v, --version           Show version number and exit.
-h, --help              Show this help information.  

3.4.1 Oracle VM Guest Additionsデーモンをサービスとして実行するように構成する方法

ovmdをOracle Linuxでサービスとして実行できるようにするには、chkconfigコマンドをrootとして実行します。

# chkconfig ovmd on

ovmdサービスを起動するには、次のコマンドをrootとして実行します。

# /etc/init.d/ovmd start

ovmdはサービスとして構成されると、Oracle VM Managerを介して送信されるメッセージ要求をリスニングします。

3.4.2 Oracle VM Guest Additionsデーモンを使用して初回起動時の構成を有効にする方法

仮想マシンをテンプレートとして動作するように構成する場合、またはクローンすることを意図する場合、次回の起動時にあたかも初めて起動するかのように動作するように仮想マシンをセットアップし、VM APIまたは仮想マシン・コンソールで構成情報を入力できるようにすることをお薦めします。これを行うには、次のコマンドを仮想マシン内でrootとして実行します。

# ovmd -s cleanup
# service ovmd enable-initial-config
# shutdown -h now

次回の起動時に、仮想マシンはあたかも初回起動であるかのように動作します。ovmdをサービスとして実行するように構成している場合、メッセージング機能とovm-template-configスクリプトを使用することにより、このサービスをリモートから構成できます。

メッセージング・チャネルを使用する方法の詳細は、3.4.3項「メッセージング・チャネルの使用方法」を参照してください。また、ovm-template-configスクリプトの詳細は、3.6項「Oracle VMテンプレート構成スクリプトおよびモジュール」を参照してください。

3.4.3 メッセージング・チャネルの使用方法

この項では、Oracle VM Guest Additionsがインストールされている場合の、Oracle VM Managerと実行中のOracle Linux仮想マシンとの間のメッセージ交換の例を説明します。Oracle VMユーティリティに含まれるovm_vmmessageツールが、Oracle Linuxゲストと通信するために使用されます。メッセージング・ユーティリティの詳細は、2.5項「Oracle VM Virtual Machine Messagingの使用方法」を参照してください。

ゲストからOracle VM Managerへのメッセージの送信

ovmdを使用する場合、次の構文を使用して情報を仮想マシン内からOracle VM Managerに送信します。

# ovmd -p key1=value1

メッセージが、問題の仮想マシンのVirtual Machine API Incoming MessageイベントとしてOracle VM Managerユーザー・インタフェースに表示されます。イベントを拡張すると、情報交換が行われるときに、説明にキー/値のペアおよび日時が表示されます。

ゲストからのメッセージは、Oracle VM Managerコマンドライン・ユーティリティovm_vmmessageを使用して取得することもできます。これを行うには、キーを問い合せると、値をレスポンス内に返されます。

# ./ovm_vmmessage -u admin -p password -h localhost -v MyVM02 -q key1 
Oracle VM VM Message utility 0.5.2. 
Connected. 
VM : 'MyVM02' has status :  Running. 
Querying for key 'key1. 
Query successful. 
Query for Key : 'key1' returned value 'value1'. 
Key set 7 minutes ago.

Oracle VM Managerから仮想マシンへのメッセージの送信

ovm_vmmessageを使用する場合、次の構文を使用して情報を仮想マシンに送信します。

# ./ovm_vmmessage -u admin -p password -h localhost -v MyVM02 -k key2 -V value2 
Oracle VM VM Message utility 0.5.2. 
Connected. 
VM : 'MyVM02' has status :  Running. 
Sending message. 
Message sent successfully.

ゲスト内からovmdを送信する場合、次の構文を使用して、Oracle VM Managerからメッセージを取得できます。

# ovmd --list
{"key1":"value1"}
{"key2":"value2"}

ovmd --listコマンドは、送信メッセージも受信メッセージもすべて取得します。そのキーで、必要な特定のメッセージを識別できます。不要なメッセージを削除するには、次の構文を使用します。

# ovmd -r key1
# ovmd --list
{"key2":"value2"}