ローカル エージェント 2.3.0 では、デプロイ前スクリプトとデプロイ後スクリプトの実行がサポートされています。 そのため、環境がデプロイされる前と後に実行される Microsoft Windows PowerShell スクリプトを設定できるようになりました。 この機能は、配置と再配置に適用されるほか、サービス操作にも適用されます。
この機能を使用できるようにするには、エージェント ファイル共有に Scripts フォルダーを作成します。 デプロイ前スクリプトを実行するには、Scripts フォルダーに PreDeployment.ps1 ファイルを作成します。 デプロイ後スクリプトを実行するには、 PostDeployment.ps1 ファイルを作成します。 次の例は、フォルダー構造を示しています。
- \\\fileserver\agent\scripts\PreDeployment.ps1
- \\\fileserver\agent\scripts\PostDeployment.ps1
これらのファイルが存在しない場合、配置は通常どおりに続行されます。 次の例は、新しい配置フローを示しています。
配置または再配置:
- 異常なモジュールを取得します。 この手順では、ローカル エージェントは既存のサービスの正常性を取得して、異常なサービスを見つけます。 このステップは再配置シナリオにのみ適用されます。
- モジュールをクリーンアップします。 この手順では、ローカル エージェントがサービスを削除し、 wp フォルダーの内容を削除します。 このステップは再配置シナリオにのみ適用されます。
- ダウンロード コンポーネントをリンクします。 この手順では、ローカル エージェントは、Microsoft Dynamics ライフサイクル サービスから成果物をダウンロード、抽出、および処理します。
- デプロイ前スクリプト。 この手順では、ローカル エージェントは PreDeployment.ps1 スクリプト (存在する場合) を実行します。
- モジュールを設定します。 この手順では、ローカル エージェントによって新しいサービスがデプロイされます。
- デプロイ後スクリプト。 この手順では、ローカル エージェントは PostDeployment.ps1 スクリプト (存在する場合) を実行します。
サービス:
- サービスの準備を行います。 この手順では、ローカル エージェントがライフサイクル サービスでパッケージを準備し、環境にダウンロードします。
- モジュールをクリーンアップします。 この手順では、ローカル エージェントがサービスを削除し、 wp フォルダーの内容を削除します。
- ダウンロード コンポーネントをリンクします。 この手順では、ローカル エージェントは、ライフサイクル サービスから以前にダウンロードした成果物を抽出して処理します。
- デプロイ前スクリプト。 この手順では、ローカル エージェントは PreDeployment.ps1 スクリプト (存在する場合) を実行します。
- モジュールを設定します。 この手順では、ローカル エージェントによって新しいサービスがデプロイされます。
- デプロイ後スクリプト。 この手順では、ローカル エージェントは PostDeployment.ps1 スクリプト (存在する場合) を実行します。
Note
デプロイ前スクリプトとデプロイ後スクリプトには、任意のコードを含めることができます。 スクリプトが実行されるコードについては、お客様が単独で責任を負います。 ローカル エージェントはスクリプトを起動するだけです。
カスタマイズ
スクリプト実行の既定のタイムアウトは 30 分です。 この値を変更するには、 localagent-config.json ファイルを変更してから、変更したファイルを使用してローカル エージェントを再インストールします。 次の属性はタイムアウト値を定義し、次のように設定する必要があります。 (ここに示すコードは、ファイル内の LocalAgent コンポーネントに含まれています。)
"powershellScriptRunner": {
"timeoutMinutes": {
"value": "30"
}
}
Logging
スクリプトは、出力とエラー メッセージを.logファイルとして書き込み、.errファイルを Logs フォルダー内の Scripts フォルダーに書き込みます。 スクリプトがタイムアウトした場合は、エラー メッセージのみがログに記録されます。 このエラー メッセージにはタイムアウト メッセージがあります。 この場合、他の出力は記録されません。
また、ローカル エージェントは、スクリプトの実行を event Tracing for Windows (ETW) イベントとしてログに記録します。 これらのイベントはイベント ビューアーで表示できます。 スクリプトでエラーが発生した場合、ローカル エージェントはエラー イベントをログに記録しますが、通常どおりデプロイを続行します。