0

Jenkins を使用してテスト サーバーでアプリケーションをビルドしています。その後、jenkins は、運用サーバーでシェフ スクリプトが実行されるファブリック スクリプトを実行します。

シェフ スクリプトでは、最初に jar を github からデプロイする必要があり、テスト段階で生成されたバージョンを取得する必要があるため、問題はこのバージョン番号を取得する方法です。

4

2 に答える 2

0

アプリケーションのバージョンは、属性に保持する必要があります。そうすれば、シェフの実行ごとに非常に簡単に上書きできます。必要なアプリケーション バージョンで json ファイルを作成し、次の実行時にシェフ クライアントまたはソロにフィードするだけです。

chef-client --json-attributes path/to/file.json

これは、クックブック内やロールなど、他の場所から設定された属性をオーバーライドします。

于 2013-07-23T06:15:33.383 に答える
0

以下にいくつかのオプションを示します。

  1. 使用してchef-client -j ...ください。単一のサーバーまたはサーバーのグループをターゲットにする場合、これは問題ありません。アプリごとに異なる json 属性を設定して配布する必要があるため、複数/複雑な展開では複雑になる可能性があります。

  2. アーティファクト バージョンをデータ バッグ アイテムに書き込みます knife data bag from file applications myapp.json。クックブックは、データ バッグ項目myappで必要なアプリ バージョン情報を探すようにコーディングされています。applications/myappこれを行う Jenkins プラグインを作成しました: https://github.com/zhelyan/jenkins-chef-artifact-release

  3. Jenkins サーバー自体からアーティファクトを取得するようにクックブックをコーディングしhttps://jenkins.mycompany.com:8080/job/myapp/lastSuccessfulBuild/artifact/target/myapp.warます

オプション 2 または 3 を実装すると、何がどこにデプロイされたかを示すデプロイ ダッシュボード ページも表示されます。

于 2016-03-14T16:37:53.237 に答える