Jenkinsの継続的デプロイ[実際の例を使用]

公開: 2020-12-28

Jenkinsの展開は、複雑な自動ソフトウェア開発の加速されたプロセスです。 この記事では、Jenkinsが、構築、文書化、テスト、パッケージ化、ステージング、デプロイ、静的分析など、いくつかの組織で実践されているすべての開発ライフサイクルプロセスまたはDevOpsステージを統合する方法について説明します。

今日、多くの組織が製品にDevOpsを採用しています。 ソフトウェア開発ライフサイクルでは、プロジェクトの一環としてソフトウェアを継続的にリリースする必要があります。

Jenkinsなどのツールは、プラットフォームに関係なく、アプリケーションの継続的インテグレーションとデリバリーを可能にする可能性があるため、広く人気があります。 Jenkinsは、この記事で説明するJenkinsデプロイメントのあらゆる種類のビルドを処理できる無料の1つのソースツールです

Jenkinsは、多くのテストおよびデプロイメントテクノロジーと統合できます。 この記事では、Jenkinsを使用してソフトウェアプロジェクトを継続的に構築およびテストする方法について説明します。

世界のトップ大学からソフトウェアエンジニアリングのオンラインコース学びましょう。 エグゼクティブPGプログラム、高度な証明書プログラム、または修士プログラムを取得して、キャリアを早急に進めましょう。

したがって、Jenkinsがどのように機能するかを理解する前に、Jenkinsを学習するための基礎となる次のトピックを理解する必要があります。

  • 継続的展開
  • 継続的デリバリーと継続的デプロイ
  • Jenkinsデプロイメントの実際的な例
  • Jenkinsデプロイメントの利点

それらすべてを一つずつ見ていきましょう!

目次

継続的展開

継続的展開では、ソフトウェアは自動化されて本番サーバーで継続的にリリースされます。 コードは、ソースコードのコンパイル、検証、レビュー、アプリケーションのパッケージ化、単体テストと統合テストの実行などの段階を通過します。

ユーザー受け入れテストが実行されると、コードはテストサーバーにデプロイされます。 ソフトウェアは、ソフトウェアリリースのために本番サーバーにデプロイされます。 jenkinsとの継続的インテグレーションについて読んでください。

継続的デリバリーと継続的デプロイ

継続的デリバリーと継続的デプロイは、SDLCの2つの重要な段階であり、継続的デリバリーは変更のために本番環境にデプロイされません。 開発者は、コードが常にデプロイ可能であることを確認し、必要に応じてデプロイする必要があります。

画像クレジット

継続的デプロイでは、人間による調停なしに、すべての変更が自動的にデプロイされる必要があります。

上の図では、継続的インテグレーションの段階が終了した後、構築されたアプリケーションが本番サーバーに自動的にデプロイされます。これは、継続的なデプロイメントに他なりません。

または、すべてを自動化するために新しいバージョンをデプロイするために人間の承認が必要な場合は、継続的デリバリーを実行しています。

このコアの違いにより、各プロセスをさまざまな状況に適したものにするいくつかの影響があります。

ジェンキンス

Jenkinsは、ソフトウェアプロジェクトの継続的なビルドとテストに使用される自動化サーバーを介してソフトウェアプロセスを高速化するオープンソースツールであり、開発者がCI/CD環境を利用できるようにします。 これはJavaで書かれているため、非常に移植性があります。

Jenkinsには何千ものプラグインと統合があります。 したがって、多くのカスタマイズが必要な大規模なプロジェクトに適しています。 Git、Maven、Mercurial、Subversionなどのバージョン管理ツールをサポートしています。

Jenkinsデプロイメントの実際的な例

Jenkinsがどのようなツールであり、継続的デプロイのソフトウェア開発プロセスに適用できるかを理解したので、次に、それが実稼働環境でどのように機能するかを見てみましょう。

まず、Jenkinsがサーバー上にセットアップされ、クライアントのプロジェクトがビルドとテストのために追加されます。 クライアントは、テストを受けたアプリケーションをダウンロードできます。 プロジェクトアセットをサーバー上の新しい場所にデプロイするのは難しい場合があります。

そのために、事前に、クライアントプロジェクトがバージョン管理システムにリンクされたJenkinsにセットアップされていると仮定しましょう。

ステップ1: Jenkinsアイテムを作成する

メインメニューから[新しいアイテム]を選択し、名前を付けます。 クライアントプロジェクトからサーバーフォルダにファイルをエクスポートします。

ステップ2:ビルド後のアクションを作成する

クライアントプロジェクトに移動し、[構成]を選択します。 次に、ビルド後のアクションを開始し、ドロップダウンメニューから[アーティファクトのアーカイブ]を選択します。 アーカイブおよびエクスポートするファイルタイプを追加します。

この後、別のビルド後のアクション「他のプロジェクトをビルドする」を追加し、前に作成したビルドアイテムを入力します。

記録

ステップ3:プラグインのインストール'アーティファクトのコピー'

3番目のステップでは、Jenkinsの「CopyArtifactプラグイン」をインストールします。

ビルドステップの構成と追加については、「プロジェクト名」に移動してください。 アーティファクトのコピープラグインがインストールされると、「別のプロジェクトからアーティファクトをコピーする」オプションが表示されます。 アーティファクトをコピーするフォルダーを指定し、ロケーションパスを設定します。

場所を「var/www / clients/..」に設定します。 これにより、サーバー上に新しいフォルダーが作成されます。 HTTPアドレス(!)でパスを指定します。

プロジェクトの保存

ステップ4:テストの実行

主要な段階が終わったら、今がアプリケーションをテストするときです。

このために、クライアントプロジェクトからビルドを開始します。 これにより、新しいビルドが促されます。 サーバー上のデプロイメントフォルダーを確認します。 ここに、デプロイされたファイルが表示されます。

ただし、すべてのアクションを実行した後でも、ビルドが失敗し、「FileException」というエラーが発生します。

なんで?

考えられる理由は次のとおりです。

  • Jenkinsにはフォルダーへの書き込み権限がなく、ファイルをデプロイできません。
  • SSHをサーバーにリンクします。
  • 出力フォルダーのアクセス許可を確認してください。
  • ご存知のとおり、私たちは問題に直面しました。

これを解決するには、次の手順を実行します。

  1. Jenkinsをグループ(ここでは「www-data」グループ)に追加します。
  2. sudo chownコマンド– R :'www data'クライアントを使用して、出力フォルダーの所有権を'www-data'グループに変更します。
  3. sudo chmodコマンドを使用して、フォルダーへの書き込みアクセスを許可します
  4. サーバーを再起動し、アプリケーションがデプロイされていることを確認します

Jenkinsにはどのようなメリットがありますか?

  • Jenkinsはオープンソースツールであり、優れたコミュニティサポートを提供します。
  • Jenkinsのインストールは比較的簡単です。
  • Jenkinsには1000以上のプラグインがあります。 プラグインが利用できない場合は、簡単にコーディングできます。
  • Jenkinsは無料です。
  • JenkinsはJavaで構築されています。 したがって、すべての主要なプラットフォームに移植可能です。

また読む: Jenkinsプロジェクトのアイデアとトピック

最後の言葉

Jenkinsは、継続的インテグレーションに広く使用されている堅牢なJava記述自動化ツールです。 Jenkinsを使用すると、記述された内容を使用してソフトウェアプロジェクトを継続的に構築およびテストすることが容易になります。 これは、多数のテストおよび展開テクノロジーと統合することにより、常にソフトウェアを提供するための究極のツールです。

ソフトウェア開発の学習–upGradを使用したDevOps

upGradは、ソフトウェア開発のエグゼクティブPGプログラム– DevOpsの専門分野を提供しており、組織内で非常に高速にアプリケーションとサービスを提供する方法を学びます。 upGradの教員は、DevOpsのすべての詳細と、それを学ぶことがあなたにとって有益なキャリアになる理由を教えてくれます。

DevOpsプログラムのソフトウェア開発スペシャライゼーションにおけるupGradのPGディプロマのハイライト:

この延長された12か月のオンラインコースは、次の機能を提供します。

  • ライブレクチャーによる知識豊富なオンラインセッション
  • データサイエンスと機械学習の貴重なコンテンツに無料でアクセス
  • 7つ以上のライブプロジェクトと割り当てに取り組んでいます
  • 10のプログラミング言語とツールを学ぶ
  • 保証された配置保証
  • 仕事支援による360°キャリアサポート

ソフトウェア開発コース

DevOpsで高度な証明書プログラムを申請する