ヘッダーをスキップ
Oracle® Exadata Storage Server Softwareユーザーズ・ガイド
12c リリース1 (12.1)
E52920-09
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

10 ExaCLIユーティリティの使用

この章では、計算ノードからリモートでセル・ノードを管理できるExaCLIユーティリティについて説明します。この章の内容は次のとおりです。

ExaCLIの概要

ExaCLIユーティリティは、Oracle Exadata Storage Server Software用のコマンドライン管理ツールです。ExaCLIは計算ノード上で実行され、リモートでセルを管理できます。ExaCLIを使用し、セルの構成およびセル環境内のオブジェクトを管理できます。ExaCLIは、計算ノードのイメージ化の際にインストールされます。

ExaCLIでは、CellCLIと同じコマンド構文がサポートされます。主な違いは、CellCLIはセル上で直接実行されるのに対し、ExaCLIはリモート・ホスト(つまり、計算ノード)からセルを管理することです。

ExaCLIを使用する主な理由には、次の2つがあります。

  • 多くの企業、特に政府機関では、コンプライアンス要件の一部としてセル上のrootアクセスまたはSSHサービスを無効にする必要があります。

  • Exadataマシンをホストするサービス・プロバイダは、計算ノード上で実行中の仮想マシンへのアクセスを提供します。顧客は、CellCLIを使用してセルを管理するためにsshでセル内にアクセスすることは許可されません。

このようなユースケースでは、セルを管理する唯一の方法は、計算ノードで実行されるExaCLIを使用することです。

ExaCLIユーティリティには、Javaバージョン1.7.0_80以上が必要です。Javaのバージョンは、"java -version"コマンドを実行して確認できます。また、適切なJavaバージョンのインストール・ディレクトリを指すようにJAVA_HOME環境変数を設定する必要があります。

標準的なExaCLIの使用方法は、次のようになります。

  1. CellCLIを使用してセル上のユーザーおよびロールを作成します。これは、ExaCLIを使用してリモートでセルに接続することを許可されるユーザーです。ロールを使用してユーザーに権限を割り当てます。

    例:

    cellcli> create role administrator
    cellcli> grant privilege all actions on all objects all attributes with all options to role administrator
    cellcli> create user celladministrator password=*
    cellcli> grant role administrator to user celladministrator
    
  2. ExaCLIを実行し、前の手順で作成したユーザーとしてセル・ノードに接続し、セル・ノード上でコマンドを実行します。

    たとえば、次のexacliコマンドは、「exam08cel01」セルに「celladministrator」ユーザーとして接続して「list cell detail」コマンドを実行します。

    ログインおよびパスワードは、認証のためセルに送信されます。認証に成功すると、セルにより、exacliが実行されているマシン上のCookie jarに格納されるログイン資格証明付きのCookieが返されます。

    $ exacli -l celladministrator -c exam08cel01 --cookie-jar -e list cell detail
    Password=*******
    

    次のコマンドでは、Cookie jarに保存されたCookieを使用するため、ExaCLIからパスワードの入力は要求されません。

    $ exacli -l celladministrator -c exam08cel01 -e list griddisk detail
    

ExaCLIの起動

ExaCLIは、計算ノード上のオペレーティング・システムのコマンドラインから実行します。コマンドラインの構文は、次のとおりです。

exacli -c [username@]cellname [-l username] [--xml] [--cookie-jar [filename]] [-e command]

表10-1 ExaCLIのオプション

オプション 説明

-c [username@]cellname

--connect [username@]cellname

接続するセルの名前を指定します。ユーザー名を省略した場合は、ExaCLIから入力を要求されます。

-l username

--login-name username

セルにログインするユーザー名を指定します。

--xml

出力をXML形式で表示します。

--cookie-jar [filename]

使用するCookie jarのファイル名を指定します。

ユーザー名およびパスワードは、認証のためセルに送信されます。認証に成功すると、セルにより、計算ノードのfilenameに格納されるCookie (ログイン資格証明)が発行されます。

filenameが指定されない場合、Cookieは、HOME/.exacli/cookiejarにあるデフォルトのCookie jarに格納されます(HOMEは、exacliコマンドを実行しているOSユーザーのホーム・ディレクトリです)。

Cookie jarファイルの権限は、rw------- (600)に設定されます。

exacliコマンドを実行しているOSユーザーがCookie-jarファイルの所有者です。

Cookie jarには、パラレル・セッションで複数のセル上の複数のユーザーからの複数のクッキーを格納できます。

Cookieは、24時間後に無効化されます。

有効なCookieが存在することで、exacliユーザーは、後続のExaCLIセッションでログインを要求されることなく、コマンドの実行が許可されます。

Cookieが見つからないかまたは有効期限切れの場合は、exacliによりパスワードの入力を求められます。新しいCookieがfilenameで識別されるCookie jar、またはfilenameが指定されていない場合はデフォルトのCookie jarに格納されます。

exacliでは、--cookie-jarオプションがない場合も、デフォルトのCookie jarからCookieがチェックされます。しかし、Cookieが存在しないかまたは有効期限切れの場合、--cookie-jarオプションが指定されていないと、新しいCookieがデフォルトのCookie jarに格納されません。

-e command[; command]

-e @batchFile

実行するExaCLIコマンドまたはバッチ・ファイルのいずれかを指定します。ExaCLIはコマンドの実行後に終了します。インタラクティブなExaCLIセッションを開始するには、このオプションを省略します。

実行する複数のコマンドを指定する場合、コマンドを一重引用符で囲んで、シェルがセミコロンを解釈しないようにします。

バッチ・ファイルは、実行する1つ以上のExaCLIコマンドが含まれているテキスト・ファイルです。

--cert-proxy proxy[:port]

証明書をダウンロードするときに使用するプロキシ・サーバーを指定します。ポートを省略した場合、デフォルトはポート80です。

-n

--no-prompt

ユーザー入力を求めるメッセージを抑制します。ExaCLIがユーザーから追加情報を必要とする場合、たとえばExaCLIがユーザーにパスワードの入力を求めたり(たとえば、Cookie-jarに有効なCookieがないため)、セルのIDを確認するよう求める必要がある場合、ExaCLIはエラー・メッセージを出力して終了します。


例1: セル「exam08cel01」に「celladministrator」ユーザーとして接続します。デフォルトのCookie jarに「celladministrator」ユーザーの有効なCookieが含まれない場合、ExaCLIによりパスワードの入力が求められます。--cookie-jarオプションが指定されていないため、CookieはCookie jarには格納されません。次のコマンドは同等です。

$ exacli -l celladministrator -c exam08cel01

$ exacli -c celladministrator@exam08cel01

例2: 認証のため、ユーザー「celladministrator」およびパスワードが「exam08cel01」に送信されます。認証に成功すると、セルにより、デフォルトのCookie jarに格納されるCookieが送り返されます。指定されたコマンドがセルで実行されます。複数のコマンドは一重引用符で囲む必要があります。

$ exacli -l celladministrator -c exam08cel01 --cookie-jar -e 'list cell; list celldisk'
Password=************

例3: デフォルトのCookie jarのCookieを使用するため、ExaCLIにより、「celladministrator」ユーザーの後続のExaCLIセッションにパスワードの入力を要求されることはありません。

$ exacli -l celladministrator -c exam08cel01 -e list griddisk detail

例4: ExaCLIは「exam08cel01」セルに「celladministrator」ユーザーとして接続し、認証に成功すると、commandFileでコマンドを実行します。

$ exacli -l celladministrator -c exam08cel01 -e @commandFile

認証

ExaCLIでは、リモートのセル・マシン上でCellCLIコマンドを実行するため、セル上でCellCLIコマンドを実行する前にユーザーが認証される必要があります。認証プロセスは、各ExaCLIセッションで実行されます。

有効なCookieが存在することで、ExaCLIユーザーは、各セッションでログインを要求されることなく、コマンドの実行が許可されます。Cookieは、セルにより発行され、ExaCLIが実行されているホスト・マシンに格納される、ログイン資格証明を含むトークンです。セルにより発行されたCookieは、24時間後に無効化されます。Cookieリポジトリは、Cookie jarと呼ばれます。

同じCookie jarを複数のセルに接続する複数の同時ExaCLIセッションで使用でき、異なるログイン名を使用している場合でも可能です。たとえば、exadcliでは複数のExaCLIセッションを使用して複数のセルに接続しますが、それらはすべて同じCookie jarを使用します。

Cookie jarは、OSユーザーの読取りおよび書込み権限付きで構成されています。その他の誰も、このファイルの読取り、書込みまたは実行ができません。

ユーザー管理

ExaCLIを使用するには、セル上でユーザーを作成する必要があり、そのユーザーに対してそのユーザーにふさわしい権限を持つロールを割り当てる必要があります。ユーザーおよびロールの作成は、CellCLIを使用して直接セル上でのみ実行できます。

次の例では、すべての権限を持つ「celladministrator」というユーザーを作成します。

cellcli> create role administrator
cellcli> grant privilege all actions on all objects all attributes with all options to role administrator
cellcli> create user celladministrator password=*
cellcli> grant role administrator to user celladministrator

次の例では、オブジェクトの詳細を表示する権限を持つ「cellmon」というユーザーを作成します。

cellcli> create role monitor
cellcli> grant privilege list on all objects all attributes with all options to role monitor
cellcli> create user cellmon password=*
cellcli> grant role monitor to user cellmon

ユーザーおよびロールの管理の詳細は、「ユーザーおよびロールの作成」セクションを参照してください。

ExaCLIとCellCLIでのコマンドの違い

ExaCliでは、CellCLIと完全に同じコマンド構文がサポートされます。

すべてCellCLIコマンドがExaCLIを介して実行できるわけではありません。ExaCLIでは、次のコマンドはサポートされていません。

証明書

ExaCLIとセル上で動作している管理サーバー(MS)間のすべての通信は、httpsを介して行われます。セキュリティ証明書により、セルはExaCLIに対して自身のアイデンティティを確認できます。管理サーバーは、httpsアクセス用のデフォルトの自己署名セキュリティ証明書とともにデプロイされます。オプションで、認証局(CA)により発行された別のセキュリティ証明書をアップロードできます。

信頼性のあるCA証明書は、ExaCLIが実行されているマシン、つまり計算ノード上で次のコマンドを実行することでリストできます。最初の$は、シェルのプロンプトです。

$ $JAVA_HOME/bin/keytool -list -v -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit

デフォルトの自己署名証明書の使用

ExaCLIが警告なしにセキュリティ証明書を受け入れるようにするには、それが信頼性のあるCAによって署名されている必要があります。ExaCLIが信頼性のあるCAによって署名されたセキュリティ証明書を持っていないセルに接続した場合、証明書を検証するようにユーザーに要求する警告メッセージが生成されます。検証されると、ExaCLIによりセキュリティ証明書が記憶され、後続のコマンドでユーザーが証明書の再検証を求められることはありません。

自己署名セキュリティ証明書(非CA証明書)を受け入れる例:

$ exacli -l celladministrator --cookie-jar -c exam08cel01
This connection is unsecure. You have asked ExaCLI to connect to cell exam08cel01 securely.
The identity of exam08cel01 cannot be verified.
Got certificate from server:
CN=exam08cel01,OU=Oracle Exadata,O=Oracle Corporation,L=Redwood City,ST=California,C=US
Do you want to accept and store this certificate? (Press y/n)

CA認証済セキュリティ証明書の使用

次Exacliコマンドは、CA認証済セキュリティ証明書をアップロードするために使用されます。

exacli> alter cell securityPubKey="http://www.acme.com/security/newkey.crt",  -
                   securityPrivKey="http://www.acme.com/security/newkey.key", -
                   securityPrivKeyPW=*

password=****************

securityPubKeyおよびsecurityPrivKeyは、セキュアな通信のための鍵ペアを形成します。securityPubKey属性には、公開鍵を含むURLを指定します。securityPrivKey属性には、秘密鍵を含むURLを指定します。

秘密鍵が暗号化されている場合は、securityPrivKeyPW属性を使用してそのパスワードを提供します。