Jenkins Git統合–すべてのDevOpsプロフェッショナルに役立ちます



このブログでは、GitとJenkinsの統合について説明しています。また、デモとともにGitをJenkinsと統合することの利点についても説明します。

Jenkinsなしでは確かに不完全です。 JenkinsとGitは素晴らしい組み合わせです。したがって、この記事では、Jenkins GitIntegrationとその利点について説明します。ここで取り上げる指針は次のとおりです。

それでは、最初のトピックから始めましょう。





Gitとは–なぜGitなのか 存在するようになった?

私たちは皆、「必要性はすべての発明の母である」ことを知っています。同様に、Gitは、開発者がGitの前に直面した特定の必需品を満たすために登場しました。それでは、バージョン管理システム(VCS)と、Gitがどのように誕生したかについてすべてを学ぶために一歩後退しましょう。

Tableauのパラメータは何ですか

バージョン管理 ドキュメント、コンピュータプログラム、大規模なWebサイト、およびその他の情報収集に対する変更の管理です。



VCSには2つのタイプがあります。

  • 一元化されたバージョン管理システム(CVCS)

  • 分散バージョン管理システム(DVCS)



一元化されたVCS

一元化されたバージョン管理システム(CVCS)は、中央サーバーを使用してすべてのファイルを保存し、チームのコラボレーションを可能にします。これは、ユーザーが中央サーバーに直接アクセスできる単一のリポジトリで機能します。

CVCSのより良いアイデアを得るために、以下の図を参照してください。

上の図のリポジトリは、プログラマの各ワークステーションに直接接続されている、ローカルまたはリモートの中央サーバーを示しています。

すべてのプログラマーは抽出または 更新 リポジトリに存在するデータを含むワークステーション。また、データに変更を加えたり、 コミット リポジトリに。すべての操作はリポジトリで直接実行されます。

単一のリポジトリを維持することは非常に便利に思えますが、いくつかの大きな欠点があります。それらのいくつかは次のとおりです。

  • ローカルでは利用できないため、アクションを実行するには常にネットワークに接続する必要があります。

  • すべてが一元化されているため、中央サーバーがクラッシュまたは破損した場合、プロジェクトのデータ全体が失われます。

これは、分散VCSが問題を解決する場所です。

分散VCS

これらのシステムは、プロジェクトファイルのすべてのバージョンを保存するために必ずしも中央サーバーに依存しているわけではありません。分散VCSでは、すべての寄稿者がメインリポジトリのローカルコピーまたは「クローン」を持っています。ここでは、誰もがメインリポジトリに存在するすべてのファイルとメタデータを含む独自のローカルリポジトリを維持しています。

以下の図を参照すると、理解が深まります。

上の図でわかるように、すべてのプログラマーは独自にローカルリポジトリを維持しています。これは、実際にはハードドライブ上の中央リポジトリのコピーまたはクローンです。干渉することなく、ローカルリポジトリをコミットおよび更新できます。

「」と呼ばれる操作により、中央サーバーからの新しいデータでローカルリポジトリを更新できます。 引く 」と呼ばれる操作によってメインリポジトリへの変更に影響を与えます。 押す 」ローカルリポジトリから。

それでは、Gitの定義について知ってみましょう。

  • Gitは、高品質のソフトウェアを開発するためのデータ保証を提供することにより、分散型非線形ワークフローをサポートする分散型バージョン管理ツールです。 Gitのようなツールは、開発チームと運用チームの間のコミュニケーションを可能にします。

  • 通常、大規模なプロジェクトを開発しているときは、膨大な数の共同作業者がいます。したがって、プロジェクトに変更を加える際には、共同作業者間でコミュニケーションを取ることが非常に重要です。

  • Gitでのコミットメッセージは、チーム間のコミュニケーションにおいて非常に重要な役割を果たします。コミュニケーションとは別に、Gitを使用する最も重要な理由は、常に安定したバージョンのコードを持っていることです。

  • したがって、GitはDevOpsで成功する上で重要な役割を果たします。

ジェンキンスとは何ですか?

Jenkinsは、継続的インテグレーションの目的で構築されたプラグインを使用してJavaで記述されたオープンソースの自動化ツールです。 Jenkinsは、ソフトウェアプロジェクトのビルドとテストに継続的に使用されるため、開発者はプロジェクトへの変更を簡単に統合でき、ユーザーは新しいビルドを簡単に入手できます。また、多数のテストおよび展開テクノロジと統合することにより、ソフトウェアを継続的に提供することもできます。

Jenkinsを使用すると、組織は自動化を通じてソフトウェア開発プロセスを加速できます。 Jenkinsは、ビルド、ドキュメント、テスト、パッケージ、ステージング、デプロイ、静的分析など、あらゆる種類の開発ライフサイクルプロセスを統合します。

Jenkinsは、プラグインの助けを借りて継続的インテグレーションを実現します。プラグインを使用すると、さまざまなDevOpsステージを統合できます。特定のツールを統合する場合は、そのツールのプラグインをインストールする必要があります。たとえば、Git、Maven 2プロジェクト、Amazon EC2、HTMLパブリッシャーなど。

Jenkinsの利点は次のとおりです。

  • これは、優れたコミュニティサポートを備えたオープンソースツールです。

  • インストールが簡単すぎます。

  • それはあなたの仕事を容易にするために1000以上のプラグインを持っています。プラグインが存在しない場合は、コーディングしてコミュニティと共有できます。

  • それは無料です。

  • Javaで構築されているため、すべての主要なプラットフォームに移植できます。

これで、Jenkinsが従来のSDLCの欠点をどのように克服するかがわかりました。次の表は、「Jenkinsの前と後」の比較を示しています。

ジェンキンスの前ジェンキンスの後
ソースコード全体がビルドされ、テストされました。ビルドとテストが失敗した場合のバグの特定と修正は困難で時間がかかり、ソフトウェアの配信プロセスが遅くなります。ソースコードで行われるすべてのコミットはビルドされ、テストされます。したがって、ソースコード全体をチェックする代わりに、開発者は特定のコミットに集中するだけで済みます。これは頻繁な新しいソフトウェアリリースにつながります。
開発者はテスト結果を待つ必要があります開発者は、実行時にソースコードで行われたすべてのコミットのテスト結果を知っています。
プロセス全体は手動ですあなただけがする必要がありますソースコードへの変更をコミットすると、Jenkinsが残りのプロセスを自動化します。

JenkinsとGitが一緒に使用されるのはなぜですか?

前に説明したように、 行く ソース管理マネージャーです。ここで、時間の経過とともに発生するすべてのコード変更を追跡し、リリースの準備ができたときにバージョンのベースラインを作成するためのソースコードを保持します。

ジェンキンス 一方、は継続的インテグレーションソリューションです。新しいアプリケーションの開発中に開発者が実行する必要のあるほとんどのタスク(コード品質チェック、ビルド、ビルドアーティファクトのアーカイブ、統合テスト、さまざまな環境へのデプロイなど)を自動化するように考案されています。CIソリューションがなければ、開発者はこれらの反復的な非生産的なタスクを実行するために多くの時間を費やす必要があります。

利点:

  • GitとJenkinsはどちらも非常に強力ですが、大きな力には大きな責任が伴います。不必要な量を正当化することはかなり一般的です ビルドパイプラインの複雑化 できるからです。
  • Jenkinsは巧妙なトリックをたくさん持っていますが、Gitの機能を活用するのは簡単です。これにより、リリース管理と バグ追跡が大幅に簡単 時間とともに。
  • これを行うには、ビルドするコードのバージョンに注意し、適切にタグ付けします。これは維持します コードに近いリリース関連情報 、ジェンキンスのビルド番号や他のモニカに依存するのとは対照的に。
  • Gitブランチの保護 ヒューマンエラーのリスクを軽減します 、そして可能な限り多くのタスクを自動化することで、それらの人間を悩ませる(または待つ)必要がある頻度を減らすことができます。

例:

Webアプリケーションの新機能の例を見てみましょう。開発者が特定され、タスクに割り当てられます。たとえば、Gitなどの既存のコードベースをソース管理から取得し、変更を加え、単体テストを実行し、コードの品質を手動で確認して、新しいコードをGitにチェックインします。

次に、コードをビルドして統合インスタンスにデプロイし、統合テストを実行し、変更が満足のいくものであると思われる場合は、本番デプロイメントのリクエストを送信する必要があります。さて、このテスト、構築、品質チェック、展開のセクションを担当するミニオンがいれば、貧しい開発者は、機能のロジックの実装と改善という、自分が本当に得意なものにもっと集中できたはずです。

このミニオンはジェンキンスです。変更がソース管理(Git)にチェックインされると、これらすべてのアクティビティを実行するオーケストレーターとして機能し、開発者が行った変更が本番環境での展開に十分かどうかを迅速にフィードバックします。非常に柔軟なオープンソースであり、やりたいことのほとんどすべてを実行できるプラグインがたくさんあります。

デモ

ここでは、GitをJenkinsと統合する方法を説明します。あなたが従わなければならない5つのステップがあります:

1.サンプルプログラムを作成します。

JavaやPython、その他のプログラムなど、必要なサンプルプログラムを作成できます。ここでは簡単なものを書きます Pythonプログラム Hello、World!を出力します。

2.Jenkinsジョブを作成します。

  • ここで最初にあなたがする必要があります Jenkinsを起動します コマンドプロンプトを使用します。

  • そのためには、最初にシステム上のJenkinsの場所に移動し、コマンドを使用する必要があります java -jar jenkins.war

  • このコマンドを実行した後、Webブラウザーを開き、リンクを使用してJenkinsのホームページに移動します localhost:8080 。これはデフォルトのポート番号です。

  • Jenkinsのホームページを開く ユーザー名とパスワードを入力します。

  • プロジェクトを作成するには、をクリックします 新商品 と入力します プロジェクト名 選択します フリースタイルプロジェクト[OK]をクリックします。

3.このプログラムをGithubに追加します。

  • gitbashを開く システム上で。 ナビゲート プログラムの場所に移動します。コマンドを使用して空のリポジトリを初期化します git init

  • コマンドを使用する gitadd。 ファイルを作業ディレクトリからステージング領域に追加します。

  • 次に、コマンドを使用してファイルをローカルリポジトリに追加します git commit-m「demo.pyファイルが追加されました」

  • 今、あなたはしなければなりません 押す このファイルをリモートリポジトリに保存します。そのためには、GitHubアカウントに移動して、新しいパブリックリポジトリを作成します。次に、このリポジトリの場所をコピーして、git bashterminalに移動します。ここにコマンドを入力します git remote add origin 。これでリモートリポジトリに接続したので、コマンドを使用してコードをそこにプッシュできます。 git push-uオリジンマスター。 これを確認するには、GitHubアカウントに移動して、ページを更新します。そこに追加されたファイルが表示されます。

4.JenkinsにGitプラグインを追加します。

  • Jenkinsのホームページで Jenkinsを管理する

  • 次にクリックします プラグインを管理する 。ここで、インストールされたセクションでGitプラグインを取得したことを確認します。ここで利用できない場合は、利用可能なセクションで検索してダウンロードしてください。

5.ビルドをトリガーするようにJenkinsジョブを構成します。

  • 手順2で作成したJenkinsのプロジェクトに移動します。ここの[ソースコード管理]セクションでは、 gitを選択 手順3で作成した公開リポジトリのリンクを入力します。 ビルドトリガーセクション 、 クリック SCMオプションのポーリング 。ここで、スケジュールの部分では、スペースで区切られた5つのアスタリスクを入力する必要があります。これはあなたの仕事のためのcron構文に他なりません。これは、Jenkinsがソースコードの変更を毎分チェックし、変更がある場合はJenkinsビルドをトリガーすることを意味します。

  • クリック 適用する それから セーブ 。次に、プロジェクトのホームページでをクリックします 今すぐビルド 。これによりプロジェクトが実行され、コンソール出力で、プログラムがJenkinsジョブのステータスを出力するのを確認できます。すべてが問題ない場合は、次のように表示されます 成功

つまり、これがJenkinsGit統合の実行方法です。これで、Jenkins GitIntegrationに関するこの記事は終わりです。この記事を楽しんでいただけたでしょうか。

今、あなたは何を理解しました JenkinsGit統合 は、これをチェックしてください 25万人以上の満足した学習者のネットワークを持つ信頼できるオンライン学習会社であるEdurekaが世界中に広がっています。 Edureka DevOps認定トレーニングコースは、学習者がDevOpsとは何かを理解し、SDLCの複数のステップを自動化するためのPuppet、Jenkins、Nagios、Ansible、Chef、Saltstack、GITなどのさまざまなDevOpsプロセスとツールの専門知識を習得するのに役立ちます。

質問がありますか?コメント欄にご記入ください。折り返しご連絡いたします。