Hitachi

JP1 Version 12 JP1/Automatic Operation サービステンプレートリファレンス


4.2.8 ターミナル接続部品

機能

操作対象の機器にTelnetまたはSSHで接続し,認証できます。

Telnetで接続する場合は,必要に応じ,ユーザーIDおよびパスワードを設定してください。また,SSHで接続する場合は,認証方式としてパスワード認証,公開鍵認証またはキーボードインタラクティブ認証が選択できます。次の情報は,部品のプロパティに設定するか,[エージェントレス接続先定義]エリアで設定する必要があります。

ターミナルコマンド実行部品に指定したコマンドは,ターミナル接続部品で認証したユーザーの権限で実行されます。コマンドを管理者権限で実行したい場合は,ターミナルコマンド実行部品で管理者権限に昇格するコマンドを実行してください。

実行時の前提条件

注意事項

バージョン

02.00.00

タグ

Terminal

戻り値

戻り値

説明

0〜63

標準出力および標準エラー出力がプロパティ「returnCodePattern」に指定した正規表現パターンと合致した場合は,プロパティ「returnCode」に指定した戻り値を返す。ただし,標準出力および標準エラー出力がプロパティ「returnCodePattern」に指定した正規表現パターンと合致しなかった場合は,プロパティ「defaultReturnCode」に指定した戻り値を返す。そのため,戻り値の意味は,この部品を使用するサービステンプレートごとに異なる。

65

JP1/AOサーバとの接続に失敗した。例えば,部品実行中にJP1/AOサーバが停止された場合が該当する。

66

次のユーザーがJP1ユーザーにマッピングされている。

  • Administrators グループに所属しないユーザーである。

  • Administrators グループに所属するビルトイン Administrator以外のユーザーで,UACが有効である。

68

対象のジョブ実行IDに関する情報がない。

69

タスク処理エンジンの環境変数の取得に失敗した。

70

操作対象の機器への接続に失敗した。

76

接続タイムアウトが発生した。

77

操作対象の機器のホスト名解決に失敗した。

78

プロトコルがSSHの場合に,次のどれかの理由で操作対象の機器との認証に失敗した。

  • パスワード認証に失敗した。

  • 操作対象の機器に公開鍵認証機能が設定されていない。

  • 公開鍵認証で,秘密鍵とパスフレーズが一致していない。

  • 公開鍵認証で,秘密鍵と操作対象の機器に登録されている公開鍵が対になっていない。

  • 公開鍵認証で,不正な秘密鍵が使用されている。

  • キーボードインタラクティブ認証に失敗した。

80

タスクの実行を停止した。

81

部品が不正な状態で呼び出された。

82

タスク処理エンジンからの要求メッセージを正しくパースできない。

83

JP1/AOサーバの環境が壊れている。

84

指定された部品の情報が取得できない。

86

指定したプロパティ値に誤りがある。

87

標準出力および標準エラー出力のタイムアウトが発生した。

88

トークンの数が上限値(1タスク当たり99個)に達している。

標準出力および標準エラー出力の合計が100KBを超えた。

127

そのほかのエラーが発生した。

プロパティ一覧

プロパティを次の表に示します。

プロパティキー

プロパティ名

説明

デフォルト値

入出力種別

必須区分

destinationHost

対象機器

操作対象の機器のIPv4アドレス,IPv6アドレスまたはホスト名を1,024文字 以内で指定します。なお,複数のIP アドレスまたはホスト名は指定できません。

入力

protocol

プロトコル

操作対象の機器との接続に使用するプロトコルを指定します。指定できるプロトコルを次に示します。

  • Telnet

  • SSH

Telnet

入力

credentialType

認証種別

コマンドまたはスクリプト実行時の認証種別について,次のどちらかを指定します。

destination

[エージェントレス接続先定義]エリアに設定されている認証情報(ユーザーID,パスワード,管理者のパスワード)を使用する場合に指定します。「destination」を指定すると,JP1/AOのログインユーザーのIPアドレスに応じて,TelnetまたはSSHのエージェントレス接続先定義に設定済みの認証情報が適用されます。また,認証情報に関するプロパティ(「account」,「password」,「suPassword」,「publicKeyAuthentication」または「keyboardInteractiveAuthentication」)の指定を省略できます。

property

認証情報として,次のプロパティに入力した値を使用する場合に指定します。

  • account

  • password

  • suPassword

  • publicKeyAuthentication

  • keyboardInteractiveAuthentication

入力

account

ユーザーID

操作対象の機器にログインするためのユーザーIDを256文字以内で指定します。

次の値をどちらも指定している場合は,指定が必須です。

  • プロパティ「protocol」に「SSH」を指定している。

  • プロパティ「credentialType」に「property」を指定している。

入力

password

パスワード

操作対象の機器にログインするためのパスワードを256文字以内で指定します。

次の条件をすべて満たしている場合は,指定が必須です。

  • プロパティ「protocol」に「SSH」を指定している。

  • プロパティ「credentialType」に「property」を指定している。

  • プロパティ「publicKeyAuthentication」に「false」を指定している。

操作対象の機器のOSがUNIXで,プロパティ「publicKeyAuthentication」に「true」を指定している場合は,値を指定しても無視されます。ただし,予約プロパティ「reserved.terminal.password」の参照先としては指定できます。

入力

suPassword

管理者のパスワード

管理者権限に昇格する場合に必要なパスワードを256文字以内で指定します。 ターミナルコマンド実行部品のコマンドラインに,予約プロパティ「reserved.terminal.suPassword」を指定すると,プロパティ「suPassword」の値が設定されます。

入力

publicKeyAuthentication

SSH公開鍵認証設定

操作対象の機器のOSがUNIXで,プロトコルがSSHの場合,公開鍵認証を使用するかどうかについて次のどちらかを指定します。大文字と小文字は区別しません。このプロパティに値を指定しない場合は,「false」として扱われます。操作対象の機器のOSがWindowsの場合は,指定不要です。

true

公開鍵認証を使用する場合に指定します。

false

公開鍵認証を使用しない場合に指定します。※1

false

入力

keyboardInteractiveAuthentication

SSHキーボードインタラクティブ認証設定

操作対象の機器のOSがUNIXの場合,接続にキーボードインタラクティブ認証を使用するかどうかについて次のどちらかを指定します。大文字と小文字は区別しません。このプロパティに値を指定しない場合は,「false」として扱われます。操作対象の機器のOSがWindowsの場合は,指定不要です。

ただし,プロパティ「keyboardInteractiveAuthentication」の値が有効になるのは,「publicKeyAuthentication」に「false」を指定した場合です。「publicKeyAuthentication」に「true」を指定した場合,「keyboardInteractiveAuthentication」に「true」を指定しても,公開鍵認証が設定されます。

true

キーボードインタラクティブ認証を使用する場合に指定します。

false

キーボードインタラクティブ認証を使用しない場合に指定します。

false

入力

port

ポート番号

操作対象の機器との接続に使用するポート番号を指定します。

入力

charset

文字セット

操作対象の機器への標準入力の書き込みと,標準出力および標準エラー出力の読み込みに使用する文字セットを指定します。操作対象の機器にログインするユーザーに設定されている文字セットと,同一の文字セットを指定してください。大文字と小文字は区別されません。指定できる文字セットを次に示します。

  • EUC-JP

  • eucjp

  • ibm-943C

  • ISO-8859-1

  • MS932

  • PCK

  • Shift_JIS

  • UTF-8

  • windows-31j

入力

lineEnd

行端文字

ターミナル接続部品のプロパティ「protocol」で「Telnet」を指定した場合,プロパティ「account」および「password」で設定した値に付加する行端文字を指定します。指定できる行端文字を次に示します。

  • CR

  • LF

  • CRLF

付加する行端文字が,0x0Dの場合は「CR」,0x0Aの場合は「LF」,0x0D0Aの場合は「CRLF」を指定します。

CR

入力

promptPattern

プロンプトパターン

標準出力および標準エラー出力に,プロンプト文字列が出力されたことを検出するための正規表現パターンを1,024文字以内で指定します。このプロパティは,操作対象の機器に接続したあと,コマンドが実行できる状態であることを判定するために使用します。正規表現パターンはPCREに従って指定してください。指定した正規表現と合致した場合は,その時点で終了します。正規表現パターンと合致しない場合,標準出力および標準エラー出力の出力後,プロパティ「readWaitTime」に設定した時間が経過すると,部品実行がエラー終了します。

入力

readWaitTime

標準出力待ち時間

操作対象の機器にログインする際に,実行時の標準出力または標準エラー出力が出力されてから,次の標準出力または標準エラー出力が出力されるまでのタイムアウト時間を,1〜86,400,000の範囲で指定します。値はミリ秒単位で指定してください。

60000

入力

token

トークン文字列

セッションを識別するためのトークン文字列が出力されます。ターミナルコマンド実行部品と,ターミナル切断部品のプロパティ「token」には,このプロパティに出力される文字列を指定します。

出力

outputCondition※2

標準出力プロパティ出力条件

プロパティ「stdoutProperty1〜3」に値を出力する条件を指定します。

指定できる値を次に示します。

always

常に「stdoutProperty1〜3」に値を出力します。プロパティ「stdoutPattern1〜3」に合致しなかった場合は空文字を出力します。

patternMatch

プロパティ「stdoutPattern1〜3」に合致した場合にプロパティ「stdoutProperty1〜3」に値を出力します。合致しなかった場合は値を出力しません。この場合,プロパティ「stdoutProperty1〜3」にサービスプロパティがマッピングされているときでも値は更新されません。

always

入力

stdoutPattern1

標準出力パターン1

プロパティ「stdoutProperty1」に出力する標準出力および標準エラー出力の正規表現パターンを1,024 文字以内で指定します。正規表現パターンはPCRE に従って指定してください。※3

設定できる文字列は1,024 文字までです。1,025 文字以降は切り捨てられます。

入力

stdoutProperty1

標準出力プロパティ1

プロパティ「stdoutPattern1」で切り出した文字列が出力されます。

出力

stdoutPattern2

標準出力パターン2

プロパティ「stdoutProperty2」に出力する標準出力および標準エラー出力の正規表現パターンを1,024 文字以内で指定します。正規表現パターンはPCRE に従って指定してください。※3

設定できる文字列は1,024 文字までです。1,025 文字以降は切り捨てられます。

入力

stdoutProperty2

標準出力プロパティ2

プロパティ「stdoutPattern2」で切り出した文字列が出力されます。

出力

stdoutPattern3

標準出力パターン3

プロパティ「stdoutProperty3」に出力する標準出力および標準エラー出力の正規表現パターンを1,024 文字以内で指定します。正規表現パターンはPCRE に従って指定してください。※3

設定できる文字列は1,024 文字までです。1,025 文字以降は切り捨てられます。

入力

stdoutProperty3

標準出力プロパティ3

プロパティ「stdoutPattern3」で切り出した文字列が出力されます。

出力

defaultReturnCode

デフォルト戻り値

標準出力および標準エラー出力がプロパティ「returnCodePattern」に指定した正規表現パターンと合致しなかった場合に,部品の戻り値として返される値を指定します。0〜63の範囲で指定します。

0

入力

returnCodePattern

戻り値判定パターン

標準出力および標準エラー出力の正規表現パターンを1,024 文字以内で指定します。正規表現パ ターンはPCRE に従って指定してください。指定した正規表現パターンが標準出力および標準エラー出力に合致した場合は,プロパティ「returnCode」に指定した値が返されます。

入力

returnCode

戻り値

標準出力および標準エラー出力がプロパティ「returnCodePattern」で設定した標準出力パターンと合致した場合の,部品の戻り値を指定します。0〜63の範囲で指定します。このプロパティを指定しない場合は,プロパティ「defaultReturnCode」に指定した値が返されます。

入力

注※1

プロパティ「publicKeyAuthentication」および「keyboardInteractiveAuthentication」の両方に「false」を指定した場合,パスワード認証が設定されます。

注※2

部品のバージョンが02.00.00未満の場合,このプロパティは実装されていませんが,「patternMatch」を指定した場合と同じ動作になります。最新の部品にバージョンアップした場合,このプロパティのデフォルト値に「always」が指定されて動作が変わるので,必要に応じて値を設定し直してください。

注※3
  • 正規表現により抽出されるのは,括弧でグループ化された部分です。

  • 正規表現に複数のグループを指定した場合,最初のグループに該当する範囲だけが部品の出力プロパティに格納されます。

  • 正規表現に複数の範囲が該当する場合,最初に該当する範囲だけが部品の出力プロパティに格納されます。複数の範囲を格納することはできません。

  • 任意のコマンドの実行結果など改行を含む文字列から抽出する場合,改行までの文字列を抽出するには,「(.*)」と指定してください。

プロパティ「stdoutPattern1〜3」および「stdoutProperty1〜3」の使用例

標準出力および標準エラー出力をプロパティ「stdoutPattern1〜3」の値と照合した結果を,プロパティ「stdoutProperty1〜3」にそれぞれ格納できるようになります。次の図に,「stdoutPattern1」に「aaabbb(.*)」を指定した場合のデータの流れを示します。

図4‒3 プロパティ「stdoutPattern」および「stdoutProperty」の使用例

[図データ]

標準出力「aaabbbccc」に対して,「stdoutPattern1」で定義しているように,標準出力の「aaabbb」より後ろの値(ccc)が抽出されます。抽出された値は,プロパティ「stdoutProperty1」に格納されます。

プロパティ「stdoutPattern1〜3」で指定した正規表現が標準出力と合致せず値を抽出できなかった場合に,プロパティ「stdoutProperty1〜3」に値を格納するかどうかは,プロパティ「outputCondition」で指定できます。

部品プロパティに関連する情報を複数個所で指定した場合の優先順位

部品プロパティに関連する情報は,接続先プロパティファイル(接続先名.properties)やユーザー設定プロパティファイル(config_user.properties)でも設定できます。複数個所で値が設定されている場合は,次の優先順位の設定値が適用されます。

表4‒8 部品プロパティの関連する情報が設定される優先順位

設定内容

設定個所

プロパティキー

優先順位

デフォルト値

Telnetポート番号

部品プロパティ

port

1

接続先プロパティファイル(接続先名.properties)

telnet.port

2

ユーザー設定プロパティファイル(config_user.properties)

telnet.port.number

3

23

SSHポート番号

部品プロパティ

port

1

接続先プロパティファイル(接続先名.properties)

ssh.port

2

ユーザー設定プロパティファイル(config_user.properties)

ssh.port.number

3

22

文字セット名

部品プロパティ

charset

1

接続先プロパティファイル(接続先名.properties)

terminal.charset

2

(凡例)

−:デフォルト値は空です。

注※

部品プロパティおよび接続先プロパティファイル(接続先名.properties)に値が指定されていない場合は,「UTF-8」が設定されます。

関連トピック

〈この項の構成〉

(1) ターミナル接続部品の使用例

Telnetでの認証エラーを判定する場合の例

部品のプロパティを使用して,次の処理をしたい場合を例に説明します。

これらの処理をしたい場合は,部品のプロパティに次のような値を指定してください。

プロパティキー

指定値の例

指定値の意味

promptPattern

^¥[prompt¥]|^Login incorrect

標準出力の内容が,「[prompt]」または「Login incorrect」と合致した場合に部品を終了し,戻り値を判定する。

stdoutPattern1

^Last login:(.*)

標準出力の内容で,「Last login:」より後ろの文字列をプロパティ「stdoutProperty1」に格納する。

defaultReturnCode

0

標準出力の内容が,プロパティ「returnCodePattern」に指定した値と合致しなかった場合に,戻り値0を返す。

returnCodePattern

^ Login incorrect

標準出力の内容が,「Login incorrect」と合致した場合,プロパティ「returnCode」で指定した戻り値を返す。

returnCode

1

標準出力の内容が,プロパティ「returnCodePattern」に指定した値と合致した場合に,戻り値1を返す。

このように部品のプロパティを指定している場合,標準出力が次に示す内容だったときの動作について説明します。

ログインに成功した場合の例

[図データ]

標準出力の内容がプロパティ「promptPattern」に指定した値と合致するため,ターミナル接続部品の戻り値を判定します。このとき,プロパティ「returnCodePattern」に指定した値とは合致しないため,部品の戻り値は,プロパティ「defaultReturnCode」に指定した値(0)になります。

また,プロパティ「stdoutPattern1」で切り出された文字列(Mon Mar 18 13:21:13 2013 from ServerA)が,プロパティ「stdoutProperty1」に格納されます。

ログインに失敗した場合の例

[図データ]

標準出力の内容がプロパティ「promptPattern」に指定した値と合致するため,ターミナル接続部品の戻り値を判定します。このとき,プロパティ「returnCodePattern」に指定した値と合致するため,部品の戻り値は,プロパティ「returnCode」に指定した値(1)になります。

SSHでの認証エラーが発生したかどうかを確認する場合

プロトコルに「SSH」を指定した場合,ターミナル接続部品の戻り値で認証エラーを確認できます。

認証エラーは,[エージェントレス接続先定義]エリアで設定した認証情報,またはターミナル接続部品の認証情報に関するプロパティ(「account」,「password」,「publicKeyAuthentication」,および「keyboardInteractiveAuthentication」)を使用して検出されます。このとき,[エージェントレス接続先定義]エリアで設定したスーパーユーザーのパスワード,またはターミナル接続部品のプロパティ「suPassword」は使用しません。

なお,認証エラーの場合は,部品の戻り値は78になります。ただし,プロパティ「credentialType」に「destination」を指定している場合で,[エージェントレス接続先定義]エリアの認証情報が正しく設定されていないとき,部品の戻り値は70になります。

HTTPサーバなど標準出力を返さないサービスに接続する場合の例

標準出力を返さないサービスに接続する場合を例に説明します。なお,接続先プロパティファイルのtelnet.noStdout.port.list(接続先名.properties)に「80」を指定しているものとします。

このとき,次に示す部品のプロパティに指定した値は無視され,部品の戻り値は0になります。