第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
The authenticity of host 'hostname
-p 10000hostname
(IP_address
)' can't be established. DSA key fingerprint isfingerprint
. 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
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ 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 ishostname
-p 10000fingerprint
. 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接続を使用して再びログインし、管理ユーザーのパスワードを入力すると、チャネルが再び開きます。
キー・ペースの認証を設定するには:
-
次のように、ssh-agentがローカル・ホストで実行していることを確認します。
$ eval `ssh-agent` Agent pid
number
ssh-agentが実行していない場合、その次のステップを実行すると、次のエラーが発生することがあります。
Could not open a connection to your authentication agent.
-
ローカル・ホストで、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:fingerprint
user
@hostname
2つのキーが
~/.ssh/
:admin
(秘密キー)およびadmin.pub
(公開キー)に生成されます。 -
次のように、キーのペアの作成に使用したのと同じパスフレーズを使用して、認証エージェントに秘密キーを追加します。
$
ssh-add ~/.ssh/admin
Enter passphrase for /home/user
/.ssh/admin:
Identity added: /home/passphrase
user
/.ssh/admin (/home/user
/.ssh/admin) -
次のように、公開キーをOracle VM Managerホストにコピーします。
$ scp ~/.ssh/admin.pub oracle@
hostname
:/home/oracle/.ssh/hostname
はOracle VM Managerホストのホスト名です。 oracleユーザーとしてコピーを実行してください。 -
oracleユーザーとしてOracle VM Managerホストにログインし、
admin.pub
公開キーをCLI認証済ファイル(ovmcli_authorized_keys
)に追加します。$ ssh oracle@
hostname
$ cd /home/oracle/.ssh/ $ cat admin.pub >> ovmcli_authorized_keys $ exithostname
はOracle VM Managerホストのホスト名です。 -
ローカル・マシンから、次のコマンドを使用して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の使用に役立ちます。
コマンド/機能 |
説明 |
---|---|
? |
コンテキスト依存ヘルプ( |
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
スクリプト名 |
用途 |
---|---|
|
ユーザーが確認できるすべてのイベントを確認するシェル・スクリプト。 このスクリプトは、システム・イベントを認識しません。 このスクリプトは、デフォルト・ホストとしてlocalhostを使用します。 このスクリプトを別のホストから実行する場合は、構文を使用してOracle VM Managerのロケーションを指定できます: ackAllEvents -l |
|
Oracle VM Managerによって管理されているすべてのオブジェクトのインベントリを表示するシェル・スクリプト。 |
また、CLIでスクリプトを開始するための一連のシェル・スクリプトも用意されています。 これらのスクリプトは次の場所にあります。
/u01/app/oracle/ovm-manager-3/ovm_cli/scripts/createdeletescripts
これらのスクリプトを使用するには、関連する*.propertiesファイルのデフォルト値を、環境の値と一致する値で上書きする必要があります。 関連するプロパティ・ファイル内の各パラメータは、これらのファイル内で提供される必要がある情報に関するガイドラインを提供するためにコメント化されています。 スクリプトの実行方法に関する追加情報は、各スクリプトの最初にコメントとして記載されています。
スクリプト名 |
用途 |
---|---|
|
バー・チャネル・ベースの記憶域を使用して、記憶域、サーバー・プール、ネットワーキング、仮想マシン・リソース、および仮想マシンを含む完全なOracle VM環境を設定するシェル・スクリプト。
このスクリプトを使用するには、同じディレクトリ内の |
|
このスクリプトを使用するには、同じディレクトリ内の |
|
ISCSIベースの記憶域を使用して、記憶域、サーバー・プール、ネットワーク、仮想マシン・リソース、仮想マシンなど、完全なOracle VM環境を設定するシェル・スクリプト。 このスクリプトは、サーバー・プールのクラスタ・ドファイル・システムにバー・チャネルLUNを使用します。 Oracle VM Serverは、アンマネージド・ファイバ・チャネル・記憶域アレイにアクセスできる必要があります。 このスクリプトは、Oracle NetApp Filerプラグインを使用して記憶域アレイを作成します。
このスクリプトを使用するには、同じディレクトリ内の |
|
このスクリプトを使用するには、同じディレクトリ内の |
|
NFSベースの記憶域を使用して、記憶域、サーバー・プール、ネットワーク、仮想マシン・リソース、仮想マシンなど、完全なOracle VM環境を設定するシェル・スクリプト。
このスクリプトを使用するには、同じディレクトリ内の |
|
このスクリプトを使用するには、同じディレクトリ内の |
|
このディレクトリの他のスクリプトで使用される共通関数を含むシェル・スクリプト。 このスクリプトを直接実行するのではなく、他のスクリプトから呼び出すようにしてください。 このスクリプトの一般的な機能のリストは表2.4、「サンプル・スクリプト共通関数」で見ることができます。 |
これらのスクリプトを環境用にカスタマイズするには、Oracle VM Managerインストール・ツリーの外部のディレクトリにこれらをコピーし、テキスト・エディタでスクリプトを編集し、環境に適合するように変数を変更するか、または、追加機能を提供するようにさらに拡張します。
これらのスクリプトを実行すると、出力が画面に表示されます。必要に応じてファイルや他のプロセスやスクリプトにスプールします。
common.sh
ファイルには、サンプル・スクリプトで使用されるいくつかの共通機能があります。 このスクリプトで使用できる関数は、表2.4、「サンプル・スクリプト共通関数」にリストされています。
機能 | 説明 |
---|---|
getPass |
パスワードの入力を求めるプロンプトが表示されます。 Oracle VM Server、または記憶域サーバーのパスワードを要求することができます。 プロンプトが表示されたら、入力は画面にエコーされません。 パスワードは、discoverServerなどの他のCLIコマンドで安全に使用できます。 Oracle VM Managerでの認証にパスワードは必要ありません。これは証明書認証を使用するためです。 |
validateCLI |
CLIコマンドが成功を返した場合はスクリプトが続行され、失敗した場合は終了します。 |
runCLI |
CLIコマンドの結果に関係なく、スクリプトは続行されます。 |
deleteRepo |
記憶域リポジトリとそのすべてのコンテンツを削除します。 |
deleteServerpool |
すべてのOracle VM Serversをサーバー・プールから削除し、サーバー・プールを削除します。 |
addVnicFromClonedVmToNetwork |
このコマンドは、VNICを含む仮想マシンを複製する場合に使用します。 このコマンドは、VNICをネットワークに関連付けているため、仮想マシンを起動できます。 |
パフォーマンス・モニタリング、スクリプトのロギングとデバッグ
オプションのタイマー機能は、validateCLIおよびrunCLI関数に組み込まれています。これらの関数は、すべてのサンプル・スクリプトでCLIへの接続を開始するために使用されます。 これにより、サンプル・スクリプトのいずれかを実行するときに、スクリプト内の各コマンドの実行時間を正確に計時してロギングすることによって、有用なパフォーマンス・データを収集することができます。 また、このツールは、スクリプトのすべての単一コマンド実行の有用なログを提供し、スクリプトの失敗を判断したり、スクリプトによって発行されているコマンドのシーケンスを理解するためのデバッグ情報を提供します。
デフォルトでは、タイマー機能は無効になっていますが、コマンドライン・スイッチを使用すると有効にできます: -t
. 次に例を示します。
filename.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 VM、List 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回までローテーションされます。