SSH アクティビティを作成する

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間:9分
  • SSH ネットワーク プロトコルを使用するターゲット ホストからデータを抽出するアクティビティを作成します。

    始める前に

    必要なロール:activity_creator または workflow_admin

    このタスクについて

    アクティビティテンプレートのプロセスフローの使用手順については、「カスタムアクティビティを作成する」を参照してください。

    手順

    1. カスタムアクティビティを作成します。
      このアクションにより、テンプレートを使用してカスタムアクティビティが作成されます。
    2. 一般的なプロパティを設定し、入力変数を作成した後、SSH 実行コマンドを構成します。
      オプション説明
      入力変数をマップする 作成した変数を使用して、オーケストレーションが実行するコマンドを設定します。
      ターゲット ホスト このアクティビティのターゲットサーバーのホスト名または IP アドレス。
      コマンド このアクティビティがターゲット ホスト上で実行するコマンド。SSH コマンド ラインがサポートする任意のスクリプト タイプを使用して、このフィールドから MID サーバースクリプトを呼び出すことができます。詳細については、表の下の「詳細な SSH スクリプト オプション」を参照してください。
      ディレクトリー コマンドが実行されるターゲット ホスト上のディレクトリー。
      認証情報タグ コマンドを実行するときに使用するオーケストレーション認証情報タグ。
      必要な MID サーバー機能 ホストに接続するための適切な機能を備えた MID サーバー。デフォルトでは、SSH 機能を備えた MID サーバーが選択されます。
      長期間 オンにされていると、コマンドの実行がデフォルトの 60 秒よりも長くかかる場合に SSH 接続タイムアウトを無効にします。オーケストレーションは実行中のプロセスを定期的にチェックし、完了するまでそのステータスを判断します。
      Sudo が必要 オンにされていると、コマンドを実行するために sudo の使用を有効にします。
      注:
      テストペイロードのパラメーター値を、[出力] タブの変数に自動的にマッピングできます。「出力変数を自動マッピングする」を参照してください。

    SSH スクリプトの詳細オプション

    ターゲットホストで MID サーバー スクリプトを実行するには、スクリプトのタイプを指定して、スクリプトの名前を ${syncFile()} パラメーターに渡します。システムでは、このパラメーターを使用して、MID サーバースクリプトファイル [ecc_agent_script_file] テーブル内の名前付きのスクリプトを見つけ、ターゲットホストで実行します。たとえば、bash スクリプトは次のように表すことができます。
    bash ${syncFile("<MID script name>")} argument1 argument2 argument3
    基本スクリプト (main_script.bash) は、ターゲットホスト上にある別のファイル (.my_profile) に関する別のスクリプト (my_include.bash) を参照できます。${syncFile()} パラメーターを使用して適切に実行するには、スクリプトと参照されたファイルの両方を MID サーバー に同期する必要があります。
    source ${syncFile(".my_profile")}
    cp ${syncFile("my_include.bash")} /usr/ssmith/my_include.bash
    bash ${syncFile("main_script.bash")} one two three four five six 
    rm /usr/ssmith/my_include.bash
    インラインコメントのある Python の例は、次のようになります。
    set $LIB_DIR=/usr/bin;. 
    # Sync a file that is referenced inside myF5CreateLBPool.py 
    cp ${syncFile("specialFunctions.py")} ~/specialFunctions.py 
    # set up environment variables 
    source ${syncFile(".python_profile")} 
    # call script that sets up dependencies on the box from remote package repos 
    python ${syncFile("setupPythonDependencies.py")} pycontrol 
    # call a script that requires functions from the package as well as a function from myIncludedFile 
    python ${syncFile("myF5CreateLBPool.py")} snow_pool myActualValue 
    # user is responsible for their own cleanup 
    rm ~/specialFunctions.py 

    次のタスク

    SSH テンプレート実行パラメーター

    実行パラメーターを使用して、アクティビティデザイナーの [前処理] フォームで入力プロセス スクリプトを作成します。

    コマンド フィールドの説明については、「SSH 実行コマンドを設定する」を参照してください。
    注:
    この表のすべての変数で executionParam. プリフィックスを使用する必要があります。
    表 : 1. SSH 実行パラメーター
    名前 変数 タイプ 使用法
    ソース ソース 文字列 意図したターゲットまたはホスト。
    コマンド command 文字列 ホスト上で実行するコメント。
    ディレクトリー directory 文字列 コマンドを実行するホスト上のディレクトリー。
    認証情報タグ credential_tag 文字列 コマンドを実行するときに使用するオーケストレーション認証情報タグ。
    MidCapabilities midCapabilities 文字列 (コンマ区切り) 必要な MID サーバー機能のリスト。
    ValueCapabilities valueCapabilities ハッシュマップの配列 MID サーバーの選択に使用される機能値。詳細については、「MID サーバーの機能」を参照してください。値によって割り当てられる追加の機能がある場合は、次の例を使用して MID サーバーの選択をカスタマイズします。
    var valueCapability = {'NEW_MID_CAPABIILTY':'NEW_MID_CAPABILITY_VALUE'};
    executionParam.valueCapabilities.push(valueCapability);
    長期間 long_running ブーリアン コマンドが長時間実行されているかどうかを示します。true の値は、コマンドが長時間実行されていることを示します。
    Sudo が必要 must_sudo ブーリアン このアクティビティが root コマンドを実行するために sudo を使用する必要があるかどうかを示します。true の値は、sudo SSH 認証情報を使用する必要があることを示します。

    SSH 後処理パラメーターとペイロード解析

    これらのパラメーターを使用して、後処理スクリプト、ペイロード解析、およびタグ付けを作成します。

    表 : 2. SSH 後処理パラメーター
    名前 変数 タイプ 使用法
    出力 output 文字列 SSH コマンドから返された出力が含まれています。
    EccSysID eccSysID 文字列 アクティビティによって返された ECC キュー入力メッセージに関連付けられた参照 ID が含まれています。
    ErrorMessages errorMessage 文字列 SSH コマンドから取得したエラーメッセージが含まれています。エラーメッセージがない場合、この値は null です。
    タグ タグ SSH コマンドから返されたタグ値のハッシュマップ SSH コマンドを使用して出力を抽出するために使用されるタグが含まれています。タグ出力は、次のように二重のパーセント記号で区切られます。%%tagname%% … %%。次の形式を使用してコマンドを設定します。
    %%tagname1%%
    output1 line 1
    output1 line 2
    …
    %%
    
    %%tagname2%%
    output2 line 1
    output2 line 2
    …
    %%
    返されるタグは JavaScript ハッシュマップ オブジェクトで、各キーには tagname が付加された tag がプリフィックスとして付いています。
    {"__text__": "", 
    "tagtagname1":"output1 line1\noutput1 line2\n", 
    "tagtagname2":"output2 line1\noutput2 line2\n"}

    SSH 実行コマンドを設定する

    作成した変数を使用して、オーケストレーションがホスト ターゲットで実行するコマンドを設定します。

    始める前に

    [実行コマンド] ステージに進む前に、[入力] フォームで必要な入力変数を作成します。

    必要なロール:activity_creator、admin

    注:
    MID サーバーとターゲット間の SSH 接続は、ワークフロー コンテキストでアクティビティを実行しなくてもテストできます。詳細は、「テスト テンプレート出力」を参照してください。

    手順

    1. 入力のリストから変数をドラッグし、コマンド フィールドにドロップします。
      システムによって、コマンドの正しい構文で変数がフォーマットされます。
      図 : 1. SSH 実行コマンド
      SSH 実行コマンド
    2. 表に示されたフィールドに入力します。
      表 : 3. SSH アクティビティ入力
      フィールド 説明
      入力 入力変数ビルダー。入力変数を作成するを実行して、使用可能なフィールドにマップします。
      ターゲット ホスト このアクティビティのターゲットサーバーのホスト名または IP アドレス。
      コマンド このアクティビティがターゲット ホスト上で実行するコマンド。

      SSH コマンド ラインでサポートされている任意のスクリプト タイプを使用して、このフィールドから MID サーバースクリプトを呼び出すことができます。詳細については、表の下の「詳細な SSH スクリプト オプション」を参照してください。

      ディレクトリー コマンドが実行されるターゲット ホスト上のディレクトリー。
      認証情報タグ コマンドを実行するときに使用する オーケストレーションアクティビティの認証情報エイリアス
      機能別に MID サーバーを選択 ホストに接続するための適切な機能を備えた MID サーバー。デフォルトでは、SSH 機能を備えた MID サーバーが選択されます。
      長期間 コマンドの実行がデフォルトの 60 秒よりも長くかかる場合に SSH 接続タイムアウトを無効にするチェック ボックス。オーケストレーションは実行中のプロセスを定期的にチェックし、完了するまでそのステータスを判断します。
      Sudo が必要 コマンドの実行に SSH 認証情報の使用を許可するチェックボックス。
    3. [保存] をクリックします。
    4. [続行] をクリックして、[出力] ステージに進みます。