機械翻訳について

第2章 Oracle VM Managerコマンドライン・インタフェース(CLI)の概要

Oracle VM Managerコマンドライン・インタフェース(CLI)は、Oracle VM Managerと通信するためのコマンドライン・インタフェースを提供します。 CLIを使用して、すべてのサーバー・プールや仮想マシンの管理など、Oracle VM Managerと同じ機能を多数実行することができます。 CLIコマンドは、Oracle VM環境のデプロイメントおよび管理に役立つ柔軟なスクリプトにすることができます。

CLIはOracle VM Managerインストール時にインストールされるため、CLIを使用するにはOracle VM Managerの作業コピーが必要です。 CLIのアーキテクチャは、「Oracle VMのアーキテクチャ」『Oracle VM概要ガイド』に示されています。

CLIを使用してOracle VM環境を変更すると、これらの変更はリアルタイムでOracle VM Manager Web Interfaceに反映されます。

Oracle VM Manager Web Interfaceには、Oracle VM Manager内で実行されるアクションが実行時エラーを引き起こす可能性のある構成にならないようにするために、CLI上に追加のロジックが含まれています。 この追加のロジックはCLIでは使用できません。これにより、柔軟性は向上しますが、Oracle VMオブジェクトの関係をより深く理解する必要があります。

CLIはOracle VMユーティリティのかわりにはなりません。 Oracle VMユーティリティはCLIを補完するものです。 Oracle VMユーティリティの詳細は、Oracle VM管理者ガイドを参照してください。

2.1 CLIの起動と停止

Oracle VM Managerを最初にインストールすると、CLIが自動的に開始されます。 必要に応じて、Oracle VM Managerを別々に停止して開始することもできます。 CLIを使用するには、まずOracle VM Managerサービスを開始する必要があります。 Oracle VM Managerの起動と停止については、「Oracle VM Managerの起動と停止」を参照してください。

CLIが(Oracle VM Managerの一部として)インストールされると、オペレーティング・システムの起動時に自動的に起動するように設定されます。 これを無効にするには、次のように入力します。

# chkconfig ovmcli off

CLIを手動で開始または停止し、そのステータスを確認するには、rootユーザーとしてログインし、次の構文を使用します:

/sbin/service ovmcli [start|stop|status|restart]

たとえば、CLIを開始するには、次のようにします:

# /sbin/service ovmcli start

CLIを停止するには:

# /sbin/service ovmcli stop

CLIを再起動するには:

# /sbin/service ovmcli restart

CLIのステータスを確認するには:

# /sbin/service ovmcli status

statusオプションは、CLIサービスが実行中か停止中かを返します。

Oracle VM Manager ホスト・コンピュータが完全なグラフィカル・デスクトップ環境を実行している場合は、サービスダイアログを使用してCLIを開始および停止することもできます。 「Applications」メニューから、「System Settings」「Server Settings」「Services」の順に選択します。 または、ターミナルで次のコマンドを実行してサービスダイアログを表示します:

# /usr/bin/system-config-services

サービス構成ダイアログで、ovmcliを選択してステータスを確認し、開始または停止します。

2.2 CLIへの接続

Oracle VM Managerの単一のインスタンスに複数のCLI接続をいつでも行うことができます。 CLIへの接続はSSH接続です。 CLIに接続するには、SSHクライアントまたはコマンドライン・インタフェースを使用し、Oracle VM Managerホストに次の構文を使用して接続します。

ssh -l manager_username { manager_IP | manager_hostname } -p port

CLIのデフォルトのポートは10000です。

次に例を示します。

$ ssh -l admin 10.172.76.146 -p 10000

Oracle VM ManagerホストからCLIに接続するには、次のように入力します。

$ ssh -l admin localhost -p 10000

次のように、省略形の接続構文(-lオプションなし)を使うこともできます。

$ ssh admin@localhost -p 10000
ヒント

非アクティブの状態が原因でsshセッションが切断するのを避けるには、sshのServerAliveIntervalオプションを使用して、CLIにnullパケットを送信し、接続を持続できます。 このオプションは、sshコマンドを入力する場合はコマンドで、または、~/.ssh/configファイルで使用でき、たとえば、コマンドラインでこれを使用するには、次のように入力します。

$ ssh admin@localhost -p 10000 -o ServerAliveInterval=40

間隔の長さは秒数であるため、この例では、接続を40秒間持続します。 この値を0に設定すると、機能が無効になります。 これを ~/.ssh/configファイルに追加する場合に使用する構文は、次のとおりです。

Host *manager_hostname
 ServerAliveInterval 40

CLIへの接続を確立すると、Oracle VM Manager管理者のパスワードを入力するよう求められます。 パスワードを入力するとCLIプロンプトが表示され、Oracle VM CLIコマンドの入力を開始できるようになります。

Using username "admin".
admin@10.172.76.146's password: password
OVM> 

CLIを終了するには、exitを入力するか、SSHセッションを終了します。

2.3 SSHホスト・キー

一部のオペレーティング・システムでは、CLIに最初にログインすると、次のように、~/.ssh/known_hostsファイルへのOracle VM Managerホストのキー・フィンガープリントを追加するように求められます。

$ ssh -l admin hostname -p 10000
The authenticity of host 'hostname (IP_address)' can't be established.
DSA key fingerprint is fingerprint.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'hostname' (DSA) to the list of known hosts.
admin@hostname's password:

このメッセージを避けて、known_hostsファイルにホスト・キーを自動的に追加するには、次のコマンドを使用してSSHホスト・キーの厳密なチェックをオフにできます。

$ ssh -o 'StrictHostKeyChecking no' admin@hostname

Oracle VM Managerをアップグレードまたは再インストールした場合、次のように、CLIに接続したときに、ホストの識別が変更されたというプロンプトが表示されることがあります。

$ ssh -l admin hostname -p 10000
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the DSA host key has just been changed.
The fingerprint for the DSA key sent by the remote host is
fingerprint.
Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending key in ~/.ssh/known_hosts:1
DSA host key for localhost has changed and you have requested strict checking.
Host key verification failed.

このメッセージをクリアし、CLIへの接続を許可するには、次のように、ssh-keygenユーティリティを使用して、Oracle VM Managerホストのエントリを削除します。

$ ssh-keygen -R hostname:10000

前述のコマンドがエントリを削除しない場合、次のように、ホスト名を中カッコで囲む必要があることがあります。

$ ssh-keygen -R [localhost]:10000

または、~/.ssh/known_hostsファイルを編集して、Oracle VM Managerホストのエントリを削除します。

CLIに再び接続すると、SSHホスト・キーの厳密なチェックが有効になっている場合、新しいフィンガープリントを追加するように求められます。

2.4 キー・ベースの認証

公開キー・ベースのSSH認証を使用して、CLIに接続できます。 キー・ベースの認証を設定すると、パスワードの入力を求められることなくCLIにログインできます。 キー・ベースの認証を使用しても、ユーザー名およびパスワードを使用する既存の認証メカニズムには影響しません。

キーは、ローカル・システムとOracle VM Managerホストの間に設定されます。 キーが設定された後、通常行うように、CLI管理パスワードを使用して初めてログインすると、公開キー認証を使用して接続が確立され、クライアントIPアドレスおよびユーザー名によってチャネルがCLIサーバーで識別されます。 後続のログインでは、チャネルが開いているかぎり、パスワードは必要ありません。 チャネルが閉じている場合、または管理ユーザーのパスワードが変更された場合、キー・ペースの認証は終了し、管理ユーザーのパスワードを再び入力する必要があります。 キー・ペースの認証を使用して接続を再確立するには、標準SSH接続を使用して再びログインし、管理ユーザーのパスワードを入力すると、チャネルが再び開きます。

キー・ペースの認証を設定するには:

  1. 次のように、ssh-agentがローカル・ホストで実行していることを確認します。

    $ eval `ssh-agent`
    Agent pid number

    ssh-agentが実行していない場合、その次のステップを実行すると、次のエラーが発生することがあります。

    Could not open a connection to your authentication agent.
  2. ローカル・ホストで、CLIにログインするための公開/秘密キーのペアを生成します。 入力するパスフレーズを覚えておいてください。

    $ ssh-keygen -t rsa -f ~/.ssh/admin
    Generating public/private rsa key pair.
    Enter passphrase (empty for no passphrase): passphrase
    Enter same passphrase again: passphrase
    Your identification has been saved in /user/.ssh/admin.
    Your public key has been saved in /user/.ssh/admin.pub.
    The key fingerprint is:
    fingerprintuser@hostname

    2つのキーが~/.ssh/: admin (秘密キー)およびadmin.pub (公開キー)に生成されます。

  3. 次のように、キーのペアの作成に使用したのと同じパスフレーズを使用して、認証エージェントに秘密キーを追加します。

    $ ssh-add ~/.ssh/admin 
    Enter passphrase for /home/user/.ssh/admin: passphrase
    Identity added: /home/user/.ssh/admin (/home/user/.ssh/admin)
  4. 次のように、公開キーをOracle VM Managerホストにコピーします。

    $ scp ~/.ssh/admin.pub oracle@hostname:/home/oracle/.ssh/

    hostnameはOracle VM Managerホストのホスト名です。 oracleユーザーとしてコピーを実行してください。

  5. oracleユーザーとしてOracle VM Managerホストにログインし、admin.pub公開キーをCLI認証済ファイル(ovmcli_authorized_keys)に追加します。

    $ ssh oracle@hostname
    $ cd /home/oracle/.ssh/
    $ cat admin.pub >> ovmcli_authorized_keys
    $ exit

    hostnameはOracle VM Managerホストのホスト名です。

  6. ローカル・マシンから、次のコマンドを使用してCLIにログインします。

    $ ssh -l admin hostname -p 10000

    管理ユーザーのパスワードを入力する必要があります。 それを入力します。

    admin@hostname's password: password
    OVM>

    後続のログインでは、新しく確立されたチャネルが使用され、パスワードは必要ありません。

セキュリティ上の理由から、公開キー認証のチャネルは、指定された時間の後に期限切れになります。 公開キー認証の有効期限を変更する方法の詳細は、2.10項「Oracle VM CLIの構成」を参照してください。

2.5 SSHを使用したバックグラウンド・プロセスの実行

標準のSSHインタフェースを介してバックグラウンドでCLIコマンドを実行することを選択した場合、キーボードが実行中のプロセスに割り込む可能性があります。 これは、TTY設定がsaneに設定されている場合の標準動作であり、SSHコマンドに-nオプションを指定してキーボード入力を自動的に/dev/nullに送信することによって解決されます。 このタイプのコマンドは、キー・ベースの認証でのみ使用できます。これは、コマンドが実行された時点でコマンドがバックグラウンドで実行されるため、もはや対話できなくなるためです。

$ ssh -l admin localhost -p 10000 -n "importVirtualAppliance Repository name=MyRepository
url=http://example.com/myappliance.ova" &

-nフラグを使用しても、CLIで対話セッションを維持しようとすると意味がありません。

2.6 Oracle VM CLIの使用とヘルプの取得

トークンにヘルプを表示するには、?またはhelpを入力します。 コンテキストに基づいて使用可能なオプションを表示するには、トークンの後に?を入力することもできます。 たとえば、Oracle VM Serverに関する情報を表示するには、コマンド・オプションを順に実行し、このアクションを実行するコマンドを検索できます。

ノート

このマニュアルの例では、出力を最小限に抑えるために、次のコマンドを使用して、出力モードをスパースに設定しています。

OVM> set OutputMode=Sparse

このコマンドで使用する設定によって出力が異なる場合があります。詳細については、A.165項、「set」を参照してください。

Oracle VM Serverをリストするコマンドを検索するには、?オプションで開始し、次のコマンドを順に実行します。

OVM> ?
     add
     create
     delete
     edit
     embeddedcreate
     embeddeddelete
     embeddededit
     exit
     help
     list
     Perhaps this is the command? Let's drill down further.
     remove
     set
     show
     showallcustomcmds
     showclisession
     showcustomcmds
     showobjtypes
     showversion
OVM> list ?
          AccessGroup
          AntiAffinityGroup
          Assembly
          ...
          Port
          Repository
          RepositoryExport
          Server
     This looks like the command to use to list Oracle VM Servers
          ServerController
          ServerPool
          ServerPoolNetworkPolicy
          ...
          VmDiskMapping
          Vnic
          VolumeGroup
OVM> list Server
     No more options can be entered so the results are automatically displayed
  id:00:e0:81:4d:5f:2f:00:e0:81:4d:29:ee:00:e0:81:4d  name:MyServer1
  id:00:e0:81:4d:5e:16:00:e0:81:4d:5e:17:ff:ff:ff:ff  name:MyServer2
  id:00:e0:81:4d:40:16:00:e0:81:4d:40:17:ff:ff:ff:ff  name:MyServer3
OVM>

Oracle VM Serverのリストが表示されたので、別のコマンドを使用して、これらに関する情報を表示できます。 Oracle VM Serverに関する情報を表示するコマンドを検索するには、?オプションを使用してコマンドを再びドリルダウンし、最も妥当なコマンドを検索します。

OVM> ?
     add
     create
     delete
     edit
     embeddedcreate
     embeddeddelete
     embeddededit
     exit
     help
     list
     remove
     set
     show
       This looks like the command to use to show information
     showallcustomcmds           commands available for all objects
     showclisession              
     showcustomcmds              commands specific to an object (requires object as argument)
     showobjtypes
     showversion
OVM> show ?
          AccessGroup
          AntiAffinityGroup
          Assembly
          ...
          Port
          Repository
          RepositoryExport
          Server
       This looks like the command to use to show information about an Oracle VM Server
          ServerController
          ServerPool
          ServerPoolNetworkPolicy
          ...
          VmDiskMapping
          Vnic
          VolumeGroup
OVM> show Server ?
                 id=<object identifier> OR
                 name=<object name>
OVM>

Oracle VM Serverの名前を忘れた場合は、上矢印を使用してlist Serverコマンドが表示されるまで履歴をスクロールし、Enterを押します。 次に、show Server name=オプションを使用して、Oracle VM Serverに関する情報を表示します。

OVM> show Server name=MyServer1
  Status = Running
  Role 1 = Utility
  Role 2 = Vm
  Ip Address = 10.172.76.79
  ...  
  Name = MyServer1
  Locked = false
OVM>

CLIは、自己学習型ツールで、ヘルプに組み込まれており、タブのオートコンプリート機能はコマンドを使用するときに役立ちます。 次のコマンドが、CLIの使用に役立ちます。

表2.1 役に立つCLIコマンド

コマンド/機能

説明

?

コンテキスト依存ヘルプ(show ?clone ?など)。 コマンドの形式がわからない場合、そのコマンドのオプションを表示するには、コマンドを入力し、その後に?を入力します。 最上位のコマンドすべてを表示するには、?をそのまま入力します。

help

最上位のコマンドに使用する構文を表示します。

showallcustomcmds

すべてのオブジェクト・タイプのすべてのカスタム・コマンドのリストを表示します。

showclisession

CLIセッション設定を表示します。 これらの設定は、setコマンドを使用して設定します。

showcustomcmds [オブジェクト・タイプ]

パラメータとして指定した特定のオブジェクト・タイプのカスタム・コマンドのリストを表示します。

showobjtypes

オブジェクト・タイプのリストを表示します。

タブ補完

コマンドをオートコンプリートするには、[Tab]キーを押します。

履歴

現在のセッションで入力されたコマンドの履歴を順に表示するには、上または下矢印キーを使用します。 最大で50コマンドが表示されます。

機密データのマスキング

属性の値を設定するときに、アスタリスク(*)を属性名に追加して、等号(=)に続くコンテンツをマスクします。 詳細については、「マスキングの機密データ」を参照してください。


SSHクライアントによって使用される行末文字を構成でき、たとえば、SSHクライアントが行末に行送り(ダブル・スペース)を追加する場合、行末文字をCRに設定できます。 setコマンドを使用して行末文字を設定できます。

CLIが結果を返す方法(プレーン・テキスト形式またはXML形式など)を定義する出力モードを構成できます。 setコマンドを使用して出力モードを設定できます。

showclisessionコマンドを使用して、A.165項、「set」コマンドで設定されたオプションの値を表示します。

このガイドで明記されていない限り、パラメータに入力する値は大文字と小文字が区別されます。 たとえば、name=MyServerと入力することは、name=myserverと同じではありません。 CLIはこれらのパラメータ文字列を大文字と小文字を区別して扱い、異なるとみなします。

特殊文字は、"'?\/<>のいずれかとなります。 特殊文字を1組の引用符で囲んでエスケープし、文字の前に/ (スラッシュ)を使用してそれらがリテラル文字列として処理されるようにすることができます。 次に例を示します。

OVM> create Tag name=MyTag description="HR/'s VMs from http:////example.com//vms// /<Delete/?/>"
  id:0004fb0000260000b351e52e3abbe192  name:MyTag
OVM> show Tag name=MyTag
  Name = MyTag
  Id = 0004fb0000260000b351e52e3abbe192
  description = HR's VMs from http://example.com/vms/ <Delete?>

パラメータは、コマンドを実行するたびに一意です。 パラメータと同じ属性タイプの複数のオブジェクトを指定すると、常に最後の属性値が優先されます。 したがって、次のようなコマンドは成功しますが、これらの繰り返しパラメータの値は互いにオーバーライドされます:

OVM> discoverServer ipAddress=server1 ipAddress=server2 takeOwnership=No\
 takeOwnership=Yes password=** password=******
 Command: discoverServer ipAddress=server1 ipAddress=server2 takeOwnership=No
 takeOwnership=Yes password=** password=******
 Status: Success
 Time: 2013-12-23 00:34:38,398 PST
 JobId: 1387787665552

OVM> list server
 Command: list server
 Status: Success
 Time: 2013-12-23 00:34:43,602 PST
 Data: id:44:45:4c:4c:59:00:10:35:80:34:c7:c0:4f:57:48:31
       name:server2

この例では、Oracle VM Serverが1つだけ検出されています。 コマンドの各インスタンスの2番目のパラメータは、最初のパラメータを上書きします。 したがって、server2が検出され、所有権はYesに設定され、このインスタンスのパスワードは指定された2番目のものです。

コマンドが発行されたが、オブジェクトへの変更が実行されなかった場合、成功メッセージが表示されます。 たとえば、オブジェクトの名前を同じ名前に変更すると、Status: Successが返されて表示されます。

2.6.1 戻り値の値

Oracle VM Manager内でジョブの作成をトリガーする操作(作成または変更操作など)は、常にジョブのステータスを返します。 このステータスを戻りステータスと呼びます。 ジョブが成功すると、返されるステータスは成功に設定されます。 ジョブが失敗すると、返されるステータスは失敗に設定されます。

ジョブのステータスは、Oracle VM Managerを生成されたジョブIDで一貫してポーリングしてジョブのステータスを問合せすることによって取得されます。 操作が長時間かかる場合、CLIはポーリング期間をタイムアウトさせることがあります。 この場合、返されるステータスはジョブがまだ実行中であることを示すためにランニングに設定されます。 この場合、他の操作を続行する前に、ジョブのステータスを手動で問合せする必要があります。

Oracle VM Manager内で何らかの形式の変更が行われるすべてのコマンドがジョブの作成をトリガーするため、これらのコマンドはレスポンス出力にジョブIDも返します。 これの値は、JobIdフィールドに表示されます。 コマンドがランニングステータスを返した場合は、このフィールドを使用して、実行中のタスクのジョブIDを取得してから、show jobコマンドを使用してステータスを監視できます。

デフォルトのジョブ・タイムアウト値は7200秒(120分)です。 この値は、Oracle VM Manager CLIとOracle VM Manager Web Interface (/u01/app/oracle/ovm-manager-3/ovm_cli/config/common_config.xml)の両方で使用される共通構成ファイルで設定できます。 設定する属性はdefaultCommandTimeoutです。

2.6.2 マスキングの機密データ

状況によっては、機密データがCLIに入力されたときに機密データをマスクして、画面に表示されないようにする必要があります。 この機能は、discoverServerのようないくつかの既知のコマンドにデフォルトで適用されます。ここで、パスワード値は、入力時に画面上の一連のアスタリスク(*)文字で自動的に置き換えられます。 ただし、VMにメッセージを送信するなどの他の状況では、デフォルトで非表示にならないように画面上で隠すことのできる追加の値があります。 CLIにマスキング機能が組み込まれているため、値を入力する前にアスタリスク(*)文字を属性名に追加するだけで、任意の属性のデータを自動的にマスクすることができます。 これは以下の例に示されています:

OVM> sendVmMessage Vm name=MyVM key=com.oracle.linux.root-password message*=******* log=No

上記の例では、messageが意図的にマスクされ、実際の値が画面上で*******に置き換えられています。 さらにセキュリティを強化するため、この例では、logパラメータをNoに設定して、メッセージが記録されないようにします。

マスキング機能は、nameまたはid属性を除いて、コマンドに値が入力される任意の属性に適用できます。 たとえば、description属性が画面に入力されたときに非表示にすることができます:

OVM> edit Server name=MyServer description*=***********

マスキング機能では、属性名に続くsingleアスタリスクが必要です。 最初のアスタリスクの後に複数のアスタリスクなどの文字を入力しようとすると、検証が失敗し、属性名が認識されなくなります。

2.7 コマンドラインでのCLIコマンドへの受渡し

CLIを実行して簡単なコマンドに渡す場合は、次のように、SSHログイン資格証明の後に、引用符で囲んだコマンドを追加します。

# ssh admin@hostname -p 10000 "list Server" 

次のように、コマンド・デリミタとしてセミコロン(;)を使用して複数のコマンドを送信できます。

# ssh admin@hostname -p 10000 "list Server; show Server name=MyServer" 

キー・ベースの認証を有効にしている場合、CLIにアクセスするパスワードの入力は求められず、結果が表示されます。 そうしていない場合、結果が返される前にCLIパスワードを入力する必要があります。 キー・ベースの認証の設定の詳細は、2.4項「キー・ベースの認証」を参照してください。 他のプログラミング言語を使用して、2.9項「アプリケーションへのCLIの統合」で説明するように、CLIを使用してスクリプトを作成することもできます。

2.8 サンプル・スクリプト

Oracle VMには、CLIの使用に役立つ数多くのシェル・スクリプトが用意されています。 これらのスクリプトにパスワードが必要な場合は、コマンドラインでパスワードを入力するよう求められます。 シェル・スクリプトは、キー・ベースの認証を使用します。これは、CLIに最初にログインした後で使用できます。

これらのスクリプトは次の場所にあります。

/u01/app/oracle/ovm-manager-3/ovm_cli/scripts

表2.2 スクリプトの例

スクリプト名

用途

ackAllEvents

ユーザーが確認できるすべてのイベントを確認するシェル・スクリプト。 このスクリプトは、システム・イベントを認識しません。

このスクリプトは、デフォルト・ホストとしてlocalhostを使用します。 このスクリプトを別のホストから実行する場合は、構文を使用してOracle VM Managerのロケーションを指定できます:

ackAllEvents -l user@host

inventory

Oracle VM Managerによって管理されているすべてのオブジェクトのインベントリを表示するシェル・スクリプト。


また、CLIでスクリプトを開始するための一連のシェル・スクリプトも用意されています。 これらのスクリプトは次の場所にあります。

/u01/app/oracle/ovm-manager-3/ovm_cli/scripts/createdeletescripts

これらのスクリプトを使用するには、関連する*.propertiesファイルのデフォルト値を、環境の値と一致する値で上書きする必要があります。 関連するプロパティ・ファイル内の各パラメータは、これらのファイル内で提供される必要がある情報に関するガイドラインを提供するためにコメント化されています。 スクリプトの実行方法に関する追加情報は、各スクリプトの最初にコメントとして記載されています。

表2.3 create/deleteスクリプトの例

スクリプト名

用途

create-fc-based-VM.sh

バー・チャネル・ベースの記憶域を使用して、記憶域、サーバー・プール、ネットワーキング、仮想マシン・リソース、および仮想マシンを含む完全なOracle VM環境を設定するシェル・スクリプト。

このスクリプトを使用するには、同じディレクトリ内のfc-based-VM.propertiesファイルを編集し、環境に適合するようにパラメータを変更します。

delete-fc-based-VM.sh

create-fc-based-VM.shスクリプトを使用して作成された設定を削除するシェル・スクリプト。

このスクリプトを使用するには、同じディレクトリ内のfc-based-VM.propertiesファイルを編集し、環境に適合するようにパラメータを変更します。

create-iscsi-based-VM.sh

ISCSIベースの記憶域を使用して、記憶域、サーバー・プール、ネットワーク、仮想マシン・リソース、仮想マシンなど、完全なOracle VM環境を設定するシェル・スクリプト。

このスクリプトは、サーバー・プールのクラスタ・ドファイル・システムにバー・チャネルLUNを使用します。 Oracle VM Serverは、アンマネージド・ファイバ・チャネル・記憶域アレイにアクセスできる必要があります。 このスクリプトは、Oracle NetApp Filerプラグインを使用して記憶域アレイを作成します。

このスクリプトを使用するには、同じディレクトリ内のiscsi-based-VM.propertiesファイルを編集し、環境に適合するようにパラメータを変更します。

delete-iscsi-based-VM.sh

create-iscsi-based-VM.shスクリプトを使用して作成された設定を削除するシェル・スクリプト。

このスクリプトを使用するには、同じディレクトリ内のiscsi-based-VM.propertiesファイルを編集し、環境に適合するようにパラメータを変更します。

create-nfs-based-VM.sh

NFSベースの記憶域を使用して、記憶域、サーバー・プール、ネットワーク、仮想マシン・リソース、仮想マシンなど、完全なOracle VM環境を設定するシェル・スクリプト。

このスクリプトを使用するには、同じディレクトリ内のnfs-based-VM.propertiesファイルを編集し、環境に適合するようにパラメータを変更します。

delete-nfs-based-VM.sh

create-nfs-based-VM.shスクリプトを使用して作成された設定を削除するシェル・スクリプト。

このスクリプトを使用するには、同じディレクトリ内のnfs-based-VM.propertiesファイルを編集し、環境に適合するようにパラメータを変更します。

common.sh

このディレクトリの他のスクリプトで使用される共通関数を含むシェル・スクリプト。 このスクリプトを直接実行するのではなく、他のスクリプトから呼び出すようにしてください。 このスクリプトの一般的な機能のリストは表2.4、「サンプル・スクリプト共通関数」で見ることができます。


これらのスクリプトを環境用にカスタマイズするには、Oracle VM Managerインストール・ツリーの外部のディレクトリにこれらをコピーし、テキスト・エディタでスクリプトを編集し、環境に適合するように変数を変更するか、または、追加機能を提供するようにさらに拡張します。

これらのスクリプトを実行すると、出力が画面に表示されます。必要に応じてファイルや他のプロセスやスクリプトにスプールします。

common.shファイルには、サンプル・スクリプトで使用されるいくつかの共通機能があります。 このスクリプトで使用できる関数は、表2.4、「サンプル・スクリプト共通関数」にリストされています。

表2.4 サンプル・スクリプト共通関数
機能 説明

getPass

パスワードの入力を求めるプロンプトが表示されます。 Oracle VM Server、または記憶域サーバーのパスワードを要求することができます。 プロンプトが表示されたら、入力は画面にエコーされません。 パスワードは、discoverServerなどの他のCLIコマンドで安全に使用できます。

Oracle VM Managerでの認証にパスワードは必要ありません。これは証明書認証を使用するためです。

validateCLI command

CLIコマンドが成功を返した場合はスクリプトが続行され、失敗した場合は終了します。

runCLI command

CLIコマンドの結果に関係なく、スクリプトは続行されます。

deleteRepo repository

記憶域リポジトリとそのすべてのコンテンツを削除します。

deleteServerpool serverpool

すべてのOracle VM Serversをサーバー・プールから削除し、サーバー・プールを削除します。

addVnicFromClonedVmToNetwork vm network

このコマンドは、VNICを含む仮想マシンを複製する場合に使用します。 このコマンドは、VNICをネットワークに関連付けているため、仮想マシンを起動できます。


パフォーマンス・モニタリング、スクリプトのロギングとデバッグ

オプションのタイマー機能は、validateCLIおよびrunCLI関数に組み込まれています。これらの関数は、すべてのサンプル・スクリプトでCLIへの接続を開始するために使用されます。 これにより、サンプル・スクリプトのいずれかを実行するときに、スクリプト内の各コマンドの実行時間を正確に計時してロギングすることによって、有用なパフォーマンス・データを収集することができます。 また、このツールは、スクリプトのすべての単一コマンド実行の有用なログを提供し、スクリプトの失敗を判断したり、スクリプトによって発行されているコマンドのシーケンスを理解するためのデバッグ情報を提供します。

デフォルトでは、タイマー機能は無効になっていますが、コマンドライン・スイッチを使用すると有効にできます: -tfilename.txt. 次に例を示します。

./create-nfs-based-VM.sh -t report.txt

タイマー機能が有効になっているスクリプトに対して、指定されたファイル内で生成された出力は、次のようになります:

TIME(Seconds) Command
18.621        discoverServer ipAddress='10.172.76.80' password=******** takeOwnership=yes
5.587         create serverpool virtualIP='0.0.0.0' clusterEnable=no name='MyServerPool' \ 
              description='this is nfs pool MyServerPool'
...

タイマー機能のために記録された出力が指定されたファイルに追加されることは注目に値します。 これは、同じファイル名を再使用すると、ファイルが新しいデータで上書きされないことを意味します。 代わりに、出力は単にファイルの最後に追加されます。

タイマー・スイッチにファイル名が指定されていない場合、出力はSTDOUTにダンプされます。

2.9 アプリケーションへのCLIの統合

CLIベースの統合は、アプリケーションにOracle VMを統合する一般的でコストの低い方法です。 WebサービスAPIを使用するよりもはるかに簡単で高速であり、小さな統合には非常に適切な選択肢です。

情報をXML形式で返すようにCLIを構成することができるので、CLIに発行されたコマンドの結果を解析できるアプリケーションを開発するのは簡単です。 setコマンドを使用して出力モードを設定できます。

接続情報はOracle VM Managerホストで15分間キャッシュされるため、同じログイン資格証明の後続のコールは最初の接続よりも高速になります。

独自のCLIスクリプトを作成し、オペレーティング・システム・シェルが提供する豊富な構成要素(変数、ループ、条件付き実行、解析など)をすべて利用できます。

Javaと統合する簡単な方法は、Runtimeクラス内のexecメソッドを使用して、SAXなどのXMLパーサーでXML出力を解析することです。

同様に、スクリプトはPythonとLXMLのようなXMLパーサーと一緒に記述することができます。 ParamikoなどのSSHライブラリは、リモートで使用できるツールの開発を支援します。

CLIは正規表現をサポートしません。 正規表現を使用する場合は、CLIをコールするスクリプトで使用する必要があります。

2.10 Oracle VM CLIの構成

Oracle VM Managerは、起動するとCLI構成ファイルを読み取ります。 構成ファイルは次の場所にあります。

/u01/app/oracle/ovm-manager-3/ovm_cli/config/CLIConfigParams.xml

構成ファイルのオプションの数を変更できます。 それらのオプションは、この項で示します。

構成ファイルのオプションを変更する前に、元のファイルをバックアップし、ファイルを書込み可能にするためにファイルの権限を変更する必要があります。

# chmod +w /u01/app/oracle/ovm-manager-3/ovm_cli/config/CLIConfigParams.xml

この構成ファイルを変更するには、CLIを再起動する必要があります。 CLIの再起動については、2.1項、「CLIの起動と停止」を参照してください。

2.10.1 SSHポート

デフォルトでは、CLIへのSSH接続はポート10000で許可されます。 CLIが接続を受け入れるポートを変更するには、構成ファイルのsshPort="10000"行を編集し、必要なポート番号に変更します。

2.10.2 タイムアウト

デフォルトでは、CLIへの接続は45分後にタイムアウトします。 CLIクライアントへの接続のタイムアウト時間を変更するには、構成ファイルのclientInactivityTimeout="45"を編集します。 タイムアウトを1分から1440分の間に設定します。 セキュリティ上の理由から、タイムアウト期間を無効にするオプションはありません。 値を1未満または1440 (1日)を超える値に設定すると、タイムアウト値がデフォルトの45分に戻ります。

このタイムアウト・オプションに加えて、ssh ServerAliveIntervalオプションを使用すると、sshクライアントが設定されたタイムアウト時間よりも前にタイムアウトするのを止めることができます。 このオプションの使用方法の詳細については、2.2項、「CLIへの接続」「ティップ」を参照してください。

2.10.3 大/小文字の区別

CLIコマンドでは大文字と小文字が区別されないため、list VMList VM、または他の任意のパターンを入力できます。

CLIでのオブジェクトのために使用するデータ値は、大文字と小文字が区別されますので、仮想マシンはMyVMの名前を持っている場合は、CLIでそれを識別するときと同じケースを使用する必要がありますし、そのようmyvmなどのバリエーションを使用することはできません。

2.10.4 公開キー認証の有効期限

公開キー認証の接続チャネルは、指定された期間の終了後に、またはOracle VM Managerが再起動すると有効期限が切れます。 チャネルを開く期間のデフォルトは1週間(10080分)です。 構成ファイルのpublicKeyAuthChannelTimeout="10080"オプションを編集することで、この設定を変更できます。 -1を指定すると、チャネルは開いたままになります。

2.10.5 ロックの例外

複数のCLIスクリプトを同時に実行すると、ファイル・システムや記憶域リポジトリなどの共有リソース周りにロックの例外が起きる場合があります。 デフォルトでは、CLIコマンドによってリクエストされているオブジェクトがロックされた場合、CLIへの接続は20秒後にタイムアウトします。 コマンドがロックの例外によって失敗した場合、ロックが解除されてコマンドが実行できるかどうかを確認するためにコマンドが12回再送信されます。 ロックの例外を減らすようにCLIを調整するには、構成ファイルの次のオプションを使用して、コマンドがロック解除を待機する時間およびコマンドが再送信される回数を構成できます。

  • ロックのタイムアウト時間はlockExceptionRetryInterval="20"オプションで定義します。 このオプションは、6から119秒の値にする必要があり、デフォルトでは20に設定されています。

  • 再試行の回数はlockExceptionRetryCount="12"オプションで定義します。 このオプションは、0よりも大きくする必要があります。

2.11 CLIログ

CLIアプリケーションのログは次の場所にあります。

/u01/app/oracle/ovm-manager-3/domains/ovm_domain/servers/AdminServer/logs/CLI.log

CLIに送信されたコマンドのログは次の場所にあります。

/u01/app/oracle/ovm-manager-3/domains/ovm_domain/servers/AdminServer/logs/CLIAudit.log

このログには、CLIに送信されたコマンドに関する次の情報が含まれています。

  • タイムスタンプ

  • クライアントのIPアドレス

  • ユーザー名

  • コマンド

ログ・ファイルは、他のOracle VMログ・ファイルと同様に、ファイル・サイズが5MBに達すると最大10回までローテーションされます。