5.2 Exadataコンピュート・ノード全体にPythonをインストールするためのDCLIの構成

分散コマンドライン・インタフェース(DCLI)を使用すると、ExadataへのOML4Pyのインストールを簡略化できます。

DCLIを使用することで、1つのコマンドを使用して、複数のExadataコンピュート・ノードにPythonをインストールできます。次の例に、このユーティリティの基本構文を説明する、DCLIのヘルプ・オプションの出力を示します。

例5-1 DCLIのヘルプ・オプションの出力

dcli -h
Distributed Shell for Oracle Storage

This script executes commands on multiple cells in parallel threads.
The cells are referenced by their domain name or ip address.
Local files can be copied to cells and executed on cells.
This tool does not support interactive sessions with host applications.
Use of this tool assumes ssh is running on local host and cells.
The -k option should be used initially to perform key exchange with
cells.  User may be prompted to acknowledge cell authenticity, and
may be prompted for the remote user password.  This -k step is serialized
to prevent overlayed prompts.  After -k option is used once, then
subsequent commands to the same cells do not require -k and will not require
passwords for that user from the host.
Command output (stdout and stderr) is collected and displayed after the
copy and command execution has finished on all cells.
Options allow this command output to be abbreviated.

Return values:
 0 -- file or command was copied and executed successfully on all cells
 1 -- one or more cells could not be reached or remote execution
      returned non-zero status.
 2 -- An error prevented any command execution

Examples:
 dcli -g mycells -k
 dcli -c stsd2s2,stsd2s3 vmstat
 dcli -g mycells cellcli -e alter iormplan active
 dcli -g mycells -x reConfig.scl

Usage: dcli [options] [command]

Options:
  --version             show program's version number and exit
  --batchsize=MAXTHDS   limit the number of target cells on which to run the
                        command or file copy in parallel
  -c CELLS              comma-separated list of cells
  --ctimeout=CTIMEOUT   Maximum time in seconds for initial cell connect
  -d DESTFILE           destination directory or file
  -f FILE               files to be copied
  -g GROUPFILE          file containing list of cells
  -h, --help            show help message and exit
  --hidestderr          hide stderr for remotely executed commands in ssh
  -k                    push ssh key to cell's authorized_keys file
  --key-with-one-password
                        apply one credential for pushing ssh key to
                        authorized_keys files
  -l USERID             user to login as on remote cells (default: celladmin)
  --root-exadatatmp     root user login using directory /var/log/exadatatmp/
  --maxlines=MAXLINES   limit output lines from a cell when in parallel
                        execution over multiple cells (default: 100000)
  -n                    abbreviate non-error output
  -r REGEXP             abbreviate output lines matching a regular expression
  -s SSHOPTIONS         string of options passed through to ssh
  --scp=SCPOPTIONS      string of options passed through to scp if different
                        from sshoptions
  --serial              serialize execution over the cells
  --showbanner          show banner of the remote node in ssh
  -t                    list target cells
  --unkey               drop keys from target cells' authorized_keys file
  -v                    print extra messages to stdout
  --vmstat=VMSTATOPS    vmstat command options
  -x EXECFILE           file to be copied and executed

各計算ノードでDCLIに対する自動認証を有効化するようにExadata環境を構成します。

  1. rootユーザーのSSH公開キー-秘密キーを生成します。任意のノードで次のコマンドをrootで実行します。

    ssh-keygen -N '' -f /.ssh/id_dsa -t dsa

    このコマンドによって、rootユーザーのホーム・ディレクトリの.sshサブディレクトリに公開キーおよび秘密キーのファイルが生成されます。

  2. テキスト・エディタで、ラック内のすべての計算ノードの名前を含むファイルを作成します。1行に1つのノード名を指定します。たとえば、2ノード・クラスタのnodesファイルには、次のようなエントリが含まれます。

    cat nodes
    exadb01
    exadb02
  3. 全ノードでSSH信頼を確立するために、-kオプションを使用してDCLIコマンドを実行します。-kオプションによって、DCLIが各ノードに順に(並行にではなく)接触し、各ノードのパスワードの入力が求められます。

    dcli -t -g nodes -l root -k -s "\-o StrictHostkeyChecking=no"

    -kを使用したDCLIは、SSH信頼およびユーザー等価関係を確立します。この後のDCLIコマンドではパスワードの入力は求められません。