5
3

More than 3 years have passed since last update.

Jenkinsの基礎知識

Posted at

Jenkinsとは

CI/CDを構築するためのオープンソースツールの1つ。
Javaが動く環境であればLinuxでもWindowsでも動作させることができる。

Jenkinsの構成例

マスタ/スレーブ構成

2種類のJenkinsサーバ(マスタ/スレーブ)を立てて運用する場合は以下のような構成になる。
ここではGitLabで資材を管理し、Jenkinsでビルドを行った後にAmazon S3またはNexus Repositoryへ資材をデプロイする例とする。

Jenkinsの構成例.png

作業者がGitLabへ資材をプッシュしたことをJenkinsが検知し、まずマスタサーバがGitLabから資材を取得する。
その後マスタサーバからスレーブサーバへ資材が連携され、スレーブサーバでビルドが実行される。
スレーブサーバは空いているノードが優先的に使用される。(Jenkinsの設定によって、GitLabリポジトリごとに使用するノードを分けることも可能。)
スレーブの設定方法については、こちらの記事を参照。

CodeBuildと連携する構成

JenkinsをAWSのCodeBuildと連携することもできる。
ここではGitLabで資材を管理し、JenkinsとCodeBuildでビルドを行った後にAmazon S3またはNexus Repositoryへ資材をデプロイする例とする。

JenkinsとCodeBuildの連携.png

作業者がGitLabへ資材をプッシュしたことをJenkinsが検知し、まずJenkinsがGitLabから資材を取得する。
その後JenkinsがCodeBuildを呼び出し、CodeBuildでビルドが実行される。
JenkinsとCodeBuildの連携方法については、こちらの記事を参照。

Jenkinsfile

Jenkinsで実行される処理はJenkinsfileというファイルに定義する。
ここではJenkinsfileの基礎知識を紹介する。

記法の種類

Jenkinsfileの記法には、DeclarativeScriptedの2種類が存在する。
Declarativeの方が後発であり、柔軟で読み書きしやすい。
詳細はこちらのガイドを参照。

どちらの記法で記載されているかは、開始タグで見分けることができる。

記法 開始タグ
Declarative pipeline
Scripted node

記載方法

ここではDeclarativeの記載例を示す。
以下のように、ステージごとにブロックを分けて処理を定義していく。

pipeline {
    agent any

    stages {
        stage('Build') {
            steps {
                echo 'Building..'
            }
        }
        stage('Test') {
            steps {
                echo 'Testing..'
            }
        }
        stage('Deploy') {
            steps {
                echo 'Deploying....'
            }
        }
    }
}

記載方法の詳細は以下を参照。
https://www.jenkins.io/doc/book/pipeline/jenkinsfile/
https://qiita.com/dublog/items/38831adf42e3cfeed66a

5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3