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

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

Version
Cloud
Language
日本語 (日本)
Product
Talend Cloud
Module
Talend Artifact Repository
Talend Management Console
Talend Studio
Content
ジョブデザインと開発
デプロイメント
管理と監視

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

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

手順

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

    スクリプトは、Talendヘルプセンターのこのページにある[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.CLOUD_URL = 'https://tmc.us.cloud.talend.com/inventory/'
    env.TYPE = "" // if big data = _mr
    env.UPDATESITE_URL 'http://localhost:8080/P2/'
    env.IMAGE_NAME = 'cd4talend'
    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. プロジェクトアーティファクトをデプロイするTalend Cloudのワークスペースと環境を定義するには、'Build, Test and Publish artifacts to Cloud'ステージのmavenOpts行に示されている値を編集します。

    例え

    • mavenOpts: '-Dlicense.path=/home/talend/talend_studio/license -Dupdatesite.path=${UPDATESITE_URL} -Dservice.url=${CLOUD_URL} -Dcloud.publisher.environment=PROD
      -Dcloud.publisher.workspace=CI_WORKSPACE -Dcloud.publisher.screenshot=true'

      PROD環境上のCI_WORKSPACEという名前のワークスペース内にあるTalend Cloudアカウントにアーティファクトをデプロイできます(スクリーンショットあり)。独自のTalend Cloud環境とワークスペースを指定する必要があります。

    注:
    • Talend Cloudに接続するシングルサインオン(SSO)を有効にしている場合、-Dcloud.token=<MyAccessToken>パラメーターをこれらのコマンドに追加する必要があります。
    • Talend Cloudに公開するアーティファクトは400MBを超えないようにしてください。
  4. 到達するMavenフェーズを定義するには:'Build, Test and Publish artifacts to artifact repository'、および'Push to a Docker Registry'ステージに示されているフェーズが実行するフェーズであることを確認します。
    Mavenのフェーズについては、Mavenのドキュメンテーションを参照してください。
    ヒント: すべてのビルドプロファイル(-Pdocker -Pnexusなど)がプロジェクトの親pom.xmlファイルにリスト表示されます。Dockerイメージ名や、Open JDK名など、一部のデフォルトパラメーターはこのファイルで上書きすることもできます。

    例え

    • bat "mvn -f $PROJECT_GIT_NAME/poms/pom.xml clean -Pcloud-publisher deploy -fae -e -pl jobs/process${TYPE}/${ARTIFACT}_${VERSION} -am"
      (Windows)最終のパッケージ化されたアーティファクトを指定のTalend Cloudアカウントにコピーできます。

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

    • sh "mvn -f $PROJECT_GIT_NAME/poms/pom.xml deploy -Pdocker -fae -e -pl jobs/process${TYPE}/${ARTIFACT}_${VERSION} --context=Prod"
      (Unix)最終のパッケージ化されたアーティファクトを指定のDockerコンテナーにコピーできます。その際に、コンテキスト環境をProdに変更します(--contextを使用)。この環境はTalend Studioで前もって定義しておく必要があります。ただし、コンテキストパラメーターが未定義の場合は、--context_paramを使用してビルド時に定義できます。
  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