最近のアクセス:
アプリケーションをデプロイする MSBuild タスク

アプリケーション デプロイ ツールは、デプロイの簡単な拡張とカスタマイズを可能にする MSBuild タスクをベースとしています。これらのタスクを使用すると、デプロイを自動化できます。
このページには、タスクのリスト、タスクを使用して GeneXus の機能を拡張する方法、タスクを使用してデプロイを自動化する方法を記載しています。

CreateDeployProject

CreateDeployProject タスクは、選択した各オブジェクト (選択しない場合は各メインオブジェクト) のコールツリーに基づいて、デプロイメントに含める必要がある GeneXus オブジェクトを分析します。このタスクの出力は拡張子 .gxdproj の MSBuild スクリプトです。この出力には、正常なデプロイメントに必要なすべての環境プロパティとオブジェクト (とそのプロパティ) が保持されます。
GeneXus は、GeneXus で使用する Deploy.msbuild という名前のスクリプトを提供しています。このスクリプトはコールの自動化を始めるのに最適です。ナレッジベースで各メインオブジェクトのデプロイメントプロジェクトを作成するには、次のコマンドを使用します。
msbuild.exe deploy.msbuild /p:KBPath=<ナレッジベースのパス>
これにより、前述のナレッジベースのバージョンのすべてのメインオブジェクトに関するトランクバージョンのデプロイ プロジェクト ファイルが作成されます。いくつかのプロパティを追加してこの動作を変更できます。
KBVersion: アクティブとして指定するバージョン名です。
KBEnvironment: そのバージョンの環境名です。
ProjectName: 生成される.gxdproj ファイルの名前です。
ObjectNames: デプロイするオブジェクトの名前とそのタイプ (デプロイメントユニットは選択可能) です (MSBuild タスクでオブジェクトリストを指定する方法を参照してください)。
APPLICATION_KEY: デプロイするアプリケーションに設定する新しい暗号キーです。
ApplicationServer: 各プラットフォームでサポートされているDeploy Application Servers を参照してください。
TARGET_JRE: (Java のみ) デプロイしたアプリを実行する Java ランタイムのバージョンです(既定値は 9)。
PACKAGE_FORMAT: (Java のみ) エンジンで WAR と EAR のどちらを作成するかを指定します(既定値は「Automatic」、選択されたオブジェクトに基づいてエンジンが決定します)。
SelectedObjectsOnly: True に設定すると、デプロイエンジンは選択したオブジェクトのコールツリーを計算せずに、選択したもののみデプロイします。
生成された .gxdproj ファイルはもうひとつの MSBuild スクリプトで、このファイルにはアプリケーションパッケージを作成するために必要な情報が含まれています。C# と .NET Core の場合は zip ファイル、Java の場合は war、jar、ear になります。

CreatePackage

生成されたスクリプトを実行するために必要なパッケージを生成するには、以下のコマンドを実行します:
msbuild.exe <フルパス>\MSBuildDeployment_20190123103151.gxdproj
この場合は、生成したパッケージのデプロイ先をエンジンに伝えるためのプロパティを設定することもできます。
TargetId: 既定値は Local ですが、サポートされる任意のアプリケーションのデプロイターゲットを設定できます。
DeployFileFullPath: アプリケーションパッケージのコピー先をフルパスで指定します。
DeployFullPath: パッケージを作成する前にフォルダ内のすべてのファイルのコピー先をフルパスで指定します。複数のデプロイメントを比較するためにこのパスを使用できます。

サンプル

MSbuild.exe /nologo /verbosity:minimal /ToolsVersion:14.0 "c:\GeneXus\deploy.msbuild" 
/p:KBPath="c:\fullgx\kbaux" 
/p:KBEnvironment=NetEnvironment 
/p:KBVersion=kbaux 
/p:ProjectName=DeployNet16 
/p:ObjectNames="TestDeployUnit1" 
/p:GX_PROGRAM_DIR="c:\fullgx\gxsaltostable" 
/p:TimeStamp=DeployNet16 
/p:Application_Key=863B7BE7A26B4276942E2C50FA1E0EAC 
/p:ApplicationServer="IIS8" /p:TargetId="Local" 
/p:SourcePath="c:\fullgx\kbaux\CSharpModel" 
/p:AppName="DeployNet16" 
/t:CreateDeploy 
/p:SelectedObjectsOnly="false" 
/l:FileLogger,Microsoft.Build.Engine;logfile=c:\fullgx\temp\CreateDeploy.log

外部ターゲットへのデプロイ

上記 2 つのタスクにより、パッケージが作成され、オンプレミスのサーバーまたはサポートされるクラウドプロバイダーのいずれか (デプロイメントターゲット) にデプロイできる状態になります。GeneXus は、目的のターゲットへのこのパッケージのデプロイも支援します。
GeneXus インストールフォルダの下の DeploymentTargets フォルダに、サポートされるターゲットがすべて挙げられています。すべてのターゲットには deploy.msbuild ファイルがあり、そのファイルには Deploy という名前の既定のタスクがあります。また、すべてのスクリプトに必要なプロパティが Properties.xml というファイルで宣言されています。これらのプロパティは GeneXus のプロパティグリッドに表示されます。
一部のスクリプトでは、DEPLOY_PATH や APPLICATION_NAME など、Properties.xml ファイルでは宣言されない一般的なプロパティも必要になることに注意してください。これらのプロパティはすべて、以前のタスクで使用されたものです。

サンプル

MSBuild.exe /nologo /verbosity:minimal /ToolsVersion:4.0 "c:\GeneXus\DeploymentTargets\Docker\deploy.msbuild" 
/p:DOCKER_BASE_IMAGE="tomcat:9-jdk11" 
/p:DOCKER_MAINTAINER="seba <seba@example.com>" 
/p:DOCKER_WEBAPPLOCATION="/usr/local/tomcat/webapps/" 
/p:DOCKER_IMAGE_NAME="k8sdeployjavaenvironment" 
/p:DOCKER_ENVVARS=""
/p:GENERATOR="Java" 
/p:APPLICATION_NAME="DeploymentUnit2_20200130131103" 
/p:DEPLOY_PATH="C:\GXmodels\junk\K8SDeploy\JavaModel\Deploy\DOCKER\DeploymentUnit2\20200130131103" 
/t:Deploy

参考情報




サブページ
Created: 20/01/09 23:26 by Admin Last update: 20/12/27 21:39 by Admin
カテゴリ
Powered by GXwiki 3.0