スクリプトパラメーターを環境に適合させる - 7.2

Talendソフトウェア開発ライフサイクルベストプラクティスガイド

Version
7.2
Language
日本語 (日本)
Product
Talend Big Data
Talend Data Fabric
Talend Data Integration
Talend Data Management Platform
Talend Data Services Platform
Talend ESB
Talend MDM Platform
Module
Talend Administration Center
Talend Artifact Repository
Talend CommandLine
Talend JobServer
Talend Studio
Content
ジョブデザインと開発
デプロイメント
管理と監視

目標とするMavenフェーズと、アーティファクトのデプロイ先とするリポジトリーに従って、Talendが提供するパイプラインスクリプトを設定してプロジェクトアイテムを生成します。

パラメーターの一部には、以前に定義した設定ファイルと、Jenkinsに保存した認証情報が使用されます。パイプラインの設定で使用できるTalendMavenのパラメーターに関するその他の情報は、TalendのカスタムMavenビルドのオプションを参照してください。

手順

  1. Talend_Pipeline設定ページを開き、[Script] (スクリプト)エディターに移動します。
  2. スクリプトの先頭で定義した環境変数(プロジェクト名、ジョブ名/バージョン/タイプ、リポジトリーURLなど)に独自の値を設定します。
    ヒント: Talendが例として提供しているXXX参照をスクリプト内で探し、お使いの環境に対応する値に置換します。

    スクリプトは、このページの左側パネルにある[Downloads] (ダウンロード)タブにあります。

    スクリプトは、このページのオンライン版(https://help.talend.com/)の[Downloads] (ダウンロード)タブにあります。

    例え

    CICDという名前のプロジェクト、job_feature956という名前でバージョンが0.1のジョブ、およびcicd4talendという名前のDockerイメージの例:
    env.PROJECT_GIT_NAME = 'CICD'
    env.PROJECT_NAME = env.PROJECT_GIT_NAME.toLowerCase()
    env.ARTIFACT = 'job_feature956'
    env.VERSION = '0.1'
    env.GIT_URL = 'https://github.com/talend/myrepo.git'
    env.TYPE = "" // if big data = _mr
    env.UPDATESITE_URL 'http://localhost:8080/P2/'
    env.IMAGE_NAME = 'cicd4talend'
    env.GIT_CREDENTIALS_ID = 'git'
    env.DOCKER_CREDENTIALS_ID = 'docker'

    参照プロジェクトを使用している場合は、それに応じてパイプラインスクリプトを編集しなければならないこともあります。

    警告: 構文の要件:
    • env.PROJECT_GIT_NAME変数の値は大文字でなければならず、それ以外の場合はビルドエラーが発生する可能性があります。プロジェクト名に特殊文字を必要とするか、または最終構文に疑問がある場合は、プロジェクトの親pom.xmlファイルで確認できます(<project>/poms/pom.xml内のtalend.project.name変数)。
    • ジョブ/ルート/サービスの元の名前に大文字が含まれていた場合でも、env.ARTIFACT変数の値は小文字でなければなりません。ビルドの起動に必要な.pomファイル内ではすべてのアーティファクトが小文字だからです。
    • -SNAPSHOTサフィックスはバージョン値に手動で追加しないでください。スナップショットとリリースはバージョン自体から切り離されており、Studioの環境設定からのみ操作する必要があります。各アーティファクトのデプロイバージョンを一度に変更を参照してください。
  3. プロジェクトアーティファクトをデプロイするリポジトリーを定義するには、「アーティファクトリポジトリーへのアーティファクトのビルド、テスト、公開」ステージのmavenOpts行に記載されているリポジトリーURLを編集します。
    Talendが提供するデフォルトスクリプトに定義されているリポジトリーは、Nexus snapshotsリポジトリーです。

    例え

    • mavenOpts: '-Dlicense.path=/home/talend/talend_studio/license -Dupdatesite.path=${UPDATESITE_URL} -DaltDeploymentRepository=snapshots::default::http://nexus:8081/repository/snapshots/ -Xms1024m -Xmx3096m')

      アーティファクトをNexus snapshotsリポジトリーにデプロイできます(開発中のプロジェクトとバージョンが-SNAPSHOTのアーティファクトが対象)。独自のアーティファクトリポジトリーのURLを指定する必要があります。

    • mavenOpts: '-Dlicense.path=C:/Talend/talend_studio/license -Dproduct.path=C:/Talend/talend_studio -Dgeneration.type=local -DaltDeploymentRepository=releases::default::http://nexus:8081/repository/releases/ -Xms1024m -Xmx3096m')
      アーティファクトをNexus [releases] (リリース)リポジトリーにデプロイできます(安定したリリースのためには本番環境のアーティファクト)。独自のアーティファクトリポジトリーのURLを指定する必要があります。
      注: Talend CommandLine serverモード生成タイプは非推奨です。ビルド時にTalend CommandLineを自動的にダウンロードしてインストールできるよう-Dupdatesite.pathパラメーターを使用するか、ローカルの生成タイプを使用することを推奨します。
  4. 到達するMavenフェーズを定義するには:'Build, Test and Publish artifacts to artifact repository'、および'Push to a Docker Registry'ステージに示されているフェーズが実行するフェーズであることを確認します。
    Mavenのフェーズについては、Mavenのドキュメンテーションを参照してください。
    ヒント: すべてのビルドプロファイル(-Pdocker -Pnexusなど)がプロジェクトの親pom.xmlファイルにリスト表示されます。Dockerイメージ名や、Open JDK名など、一部のデフォルトパラメーターはこのファイルで上書きすることもできます。

    例え

    • sh "mvn -f $PROJECT_GIT_NAME/poms/pom.xml clean deploy -Pnexus -fn -e -pl jobs/routes${TYPE}/${ARTIFACT}_${VERSION} -am"
      (Unix)パッケージされたルートをjarまたは.zipファイルとして取り込み、任意のNexusリポジトリーにデプロイできます。
    • bat "mvn -f $PROJECT_GIT_NAME/poms/pom.xml deploy -Pdocker -fn -e -pl jobs/process${TYPE}/${ARTIFACT}_${VERSION}"
      (Windows)コンパイルされたコードを取り込み、Dockerイメージとしてパッケージし、任意のレジストリーにデプロイできます。

      プロジェクトアイテムの実行に適用できるフィルターの例は、選択したアーティファクトでのプロジェクトの実行をフィルタリングするを参照してください。

  5. プロジェクトアーティファクトをデプロイするDockerレジストリーを定義するには:'Push to a Docker registry'ステージのmavenOpts行に示されているDocker認証情報が、以前Jenkinsに保存した認証情報を指していることを確認します。

    例え

    mavenOpts: '-Dcommandline.skip=true -Dlicense.path=${LICENSE} -Dupdatesite.path=${UPDATESITE_URL} -Ddocker.push.registry=registry.hub.docker.com/${env.Dusername} -Ddocker.push.username=${env.Dusername} -Ddocker.push.password=${env.Dpassword} -Xms1024m -Xmx3096m')
    アーティファクトを、以前に任意のDockerで定義したDockerイメージとしてデプロイできます。Dockerレジストリー認証情報を指定する必要があります。Dockerレジストリー認証情報は、以前Jenkinsに保存した認証情報を参照します。
    注: -Dcommandline.skip=trueパラメーターは、以前にTalend CommandLineを使用してアーティファクトを生成したことがある場合にのみ使用できます。
  6. [Save] (保存)をクリックして変更内容を反映させます。
トラブルシューティング:

トラブルシューティング:

ESB機能を公開しようとしている時に次のエラーが発生した場合:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy-file (deploy-file) on project XXX-feature: 
*The parameters 'url' for goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy-file are missing or invalid*

リリースアーティファクト用のMavenオプションに次のパラメーターを追加してみてください:

-Dproject.distributionManagement.repository.url=http://localhost:8081/repository/releases/
-Dproject.distributionManagement.repository.id=releases

または、スナップショットアーティファクト用に次のパラメーターを追加してみてください:

-Dproject.distributionManagement.snapshotRepository.url=http://localhost:8081/repository/snapshots/
-Dproject.distributionManagement.snapshotRepository.id=snapshots