CI/CDとJenkins

2888 ワード

Jenkinsについて

  • CI/CDパイプラインの基本概念
  • 基本操作環境(DEV、QA、[PROD 140])がどのように構成・運用されているかを知る
  • Jenkinsの基本概念
  • Jenkins基本的な配置ライン構築
  • AWSベースのクラウド環境でのJenkinsの使い方
  • 以下、上記の内容を順番に書きます.

    CI/CDとは?


    CI (Continuous Integration)


    Continuous Integration..? これは何を統合することを意味しますか?これは、「コード」が複数の開発者のコードライブラリである「コード」を統合することを意味します.複数の開発者が生産してきたコードを統合してCIと呼ぶ.

    CD (Continuous Delivery)


    では、CDの「Delivery」とはどういう意味なのでしょうか.ずっと物を送っています.
    ここでの配信とは、製品またはサービスをユーザに継続的に配信することを意味する.これは、統合開発者が生成したコードを統合し、常に導入可能な状態を維持することを意味します.
    あるいは、CDは「連続配置」とも呼ばれます.これは、使用可能な環境でのコード・ライブラリの導入を自動化することを意味します.
    まとめると、CI/CDは、開発者ごとに開発された環境を利用可能なサービスとしてユーザーに提供するすべてのプロセスを持続可能な方法で行い、可能であれば開発者とユーザーの差を自動的に解消すると言える.これらのプロセスには、コードの構築、テスト、および導入のアクティビティが含まれます.

    CI/CDが必要


    [コンテンツが必要]

    Jenkinsの登場



    Jenkinsと言えば思い出すこのおじさん.一度見たことがあるはずだ執事の格好には理由がある私たちはソフトウェア開発において、主な開発のほかに、これらのJenkinsが担当している雑用がたくさんあります.
    デフォルトでは、JenkinsはJava Runtime上で実行される自動化サーバであり、すべてのコンテンツを自動的に構築、テスト、導入できます.

    Jenkinsの基本概念

  • Java Runtime Environmentでの動作
  • 複数のプラグインを使用して自動化タスクを処理できます.
  • Pipelineは一連の自動化操作の集合であり、CI/CDパイプラインの構築に利用できる.
  • Jenkinsのプラグイン


    Jenkinsのプラグインは本当に多いです典型的なプラグインは次のとおりです.
  • 資格証明プラグイン:導入に必要な各種リソース(クラウドリソース、ssh資格証明、AWS Token等)を管理するためのプラグイン
  • Git Plugin:Gitのコードなどをインポート・構築する
  • Pipeline:Jenkinsコア機能Pipelineを管理するためのプラグイン
  • Docker Plugin and Pipeline
  • 最初は、推奨するパイプラインをインストールするだけで、適切なパイプラインを構築できます.

    Pipeline?


    パイプラインは、ジェンキンスでCI/CDパイプラインを実装するためのプラグインのセットと構成です.すなわち、これらのパイプラインで複数のプラグインを使用して定義することで、サービスはこれらのパイプラインを介して導入されます.

    Pipeline Syntax


    パイプラインには複数の部分があります.
  • Agent section
  • Post section
  • Stages section
  • Steps section
  • それは4つの部分から構成されていて、大体次のようになっています.
    Agent section
    Agentセクションでは、複数のJenkinsインスタンスでどのJenkinsを動作させるかを決定します.複数のslaveノードを動作させるか、jenkinsノード管理の新しいノードまたはdockerイメージで処理できます.
    Post section
    Postセクションでは、ステージ終了後の結果に応じて後続の措置をとることができます.各段階が終わると、成功したり、失敗したりしたら、何かをします.そうしましょう.
    post {
    	// If maven was able to run the tests, even if some of the test failed, record the test results and archive the jar file.
        success: 
        	echo 'success'
         }
    成功すると、コンソールで任意の操作を実行したり、パンツチャンネルでメッセージを送信したりできます.
    Stages section
    Stagesセクションでは、どのようなことを処理するかを決定する一連のフェーズを定義します.実際には、コンストラクションスクリプトの内容をここに説明し、コンストラクションを順番に行う主な部分と見なすことができます.
    Steps section
    Step Sectionは、一連のステップの一部をステージに表示します.
    Declaratives
    上記のセクションに加えて、環境変数、パラメータなどの変数、またはいくつかの条件を組み合わせた概念と見なすこともできます.次のように宣言します.
  • 環境:任意のパイプラインまたはstage scopeの環境変数を設定する
  • Parameter:パイプライン運転時受信パラメータ
  • Triggers:どのような形でトリガー
  • When:いつ運転する
  • などなど.
    次の記事では、サーバーにジェンキンスを実際にインストールし、簡単なプロジェクトのCI/CDを構築します.