ローカル エージェントのデプロイ前とデプロイ後のスクリプト

ローカル エージェント 2.3.0 では、デプロイ前スクリプトとデプロイ後スクリプトの実行がサポートされています。 そのため、環境がデプロイされる前と後に実行される Microsoft Windows PowerShell スクリプトを設定できるようになりました。 この機能は、配置と再配置に適用されるほか、サービス操作にも適用されます。

この機能を使用できるようにするには、エージェント ファイル共有に Scripts フォルダーを作成します。 デプロイ前スクリプトを実行するには、Scripts フォルダーに PreDeployment.ps1 ファイルを作成します。 デプロイ後スクリプトを実行するには、 PostDeployment.ps1 ファイルを作成します。 次の例は、フォルダー構造を示しています。

  • \\\fileserver\agent\scripts\PreDeployment.ps1
  • \\\fileserver\agent\scripts\PostDeployment.ps1

これらのファイルが存在しない場合、配置は通常どおりに続行されます。 次の例は、新しい配置フローを示しています。

配置または再配置:

  1. 異常なモジュールを取得します。 この手順では、ローカル エージェントは既存のサービスの正常性を取得して、異常なサービスを見つけます。 このステップは再配置シナリオにのみ適用されます。
  2. モジュールをクリーンアップします。 この手順では、ローカル エージェントがサービスを削除し、 wp フォルダーの内容を削除します。 このステップは再配置シナリオにのみ適用されます。
  3. ダウンロード コンポーネントをリンクします。 この手順では、ローカル エージェントは、Microsoft Dynamics ライフサイクル サービスから成果物をダウンロード、抽出、および処理します。
  4. デプロイ前スクリプト。 この手順では、ローカル エージェントは PreDeployment.ps1 スクリプト (存在する場合) を実行します。
  5. モジュールを設定します。 この手順では、ローカル エージェントによって新しいサービスがデプロイされます。
  6. デプロイ後スクリプト。 この手順では、ローカル エージェントは PostDeployment.ps1 スクリプト (存在する場合) を実行します。

サービス:

  1. サービスの準備を行います。 この手順では、ローカル エージェントがライフサイクル サービスでパッケージを準備し、環境にダウンロードします。
  2. モジュールをクリーンアップします。 この手順では、ローカル エージェントがサービスを削除し、 wp フォルダーの内容を削除します。
  3. ダウンロード コンポーネントをリンクします。 この手順では、ローカル エージェントは、ライフサイクル サービスから以前にダウンロードした成果物を抽出して処理します。
  4. デプロイ前スクリプト。 この手順では、ローカル エージェントは PreDeployment.ps1 スクリプト (存在する場合) を実行します。
  5. モジュールを設定します。 この手順では、ローカル エージェントによって新しいサービスがデプロイされます。
  6. デプロイ後スクリプト。 この手順では、ローカル エージェントは PostDeployment.ps1 スクリプト (存在する場合) を実行します。

Note

デプロイ前スクリプトとデプロイ後スクリプトには、任意のコードを含めることができます。 スクリプトが実行されるコードについては、お客様が単独で責任を負います。 ローカル エージェントはスクリプトを起動するだけです。

カスタマイズ

スクリプト実行の既定のタイムアウトは 30 分です。 この値を変更するには、 localagent-config.json ファイルを変更してから、変更したファイルを使用してローカル エージェントを再インストールします。 次の属性はタイムアウト値を定義し、次のように設定する必要があります。 (ここに示すコードは、ファイル内の LocalAgent コンポーネントに含まれています。)

"powershellScriptRunner": {
    "timeoutMinutes": {
        "value": "30"
        }
    }

Logging

スクリプトは、出力とエラー メッセージを.logファイルとして書き込み、.errファイルを Logs フォルダー内の Scripts フォルダーに書き込みます。 スクリプトがタイムアウトした場合は、エラー メッセージのみがログに記録されます。 このエラー メッセージにはタイムアウト メッセージがあります。 この場合、他の出力は記録されません。

また、ローカル エージェントは、スクリプトの実行を event Tracing for Windows (ETW) イベントとしてログに記録します。 これらのイベントはイベント ビューアーで表示できます。 スクリプトでエラーが発生した場合、ローカル エージェントはエラー イベントをログに記録しますが、通常どおりデプロイを続行します。