Jenkinsとgitlabで基本的なCI-CD設定方法を説明します

この記事では、CI-CDの使用法に精通し、CI-CDの概念を理解し、基本的なCI-CDの設定方法を解説します具体的には、この記事では、AWSとJenkinsでCI/CDの設定を作成して、コードのデプロイプロセスを自動化する方法について説明します。
## [CI-CDとは](https://onetech.jp/blog/what-is-ci-cd-in-software-development-12724)?
CI/CDはContinuous Integration、通称CIと、Continuous Delivery、通称CDを合わせたもので、日本語では継続的インテグレーション／継続的デリバリーといいます。

CIとCDをセットで使用することによって、作業からテスト、そして公開までの流れを自動化によって効率よく迅速且つ継続的に実施することができます。

このツールを利用すれば、よりユーザーのニーズに応えやすくなり、バグの改善にも早く対応することができます。

##JenkinsのCI-CD
Jenkinsは、自動化操作を構築するオープンソースのCI-CDです。 この記事では、Jenkinsとgitlabで基本的なCD設定方法を説明します。

![set-up-a-basic-CICD-in-Jenkins-and-gitlab](https://onetech.jp/wp-content/uploads/2021/11/set-up-a-basic-CICD-in-Jenkins-and-gitlab..jpg)
_[ENKINSでCI-CDの設定方法](https://onetech.jp/blog/how-to-set-up-ci-cd-on-jenkins-13815)_

### ステップ1：サーバーでキーを生成する
-デプロイするサーバーにアクセスし、新しいフォルダーを作成します：/ home / centos / temp

-新しく作成されたフォルダーに移動し、次のコマンドを使用してjenkinsキーを生成します。

ssh-keygen -f jenkins_id_rsa

-キーを作成した後、次のコマンドを使用して公開キーファイルの内容を表示します。

– このキーファイルをコピーして保存します。

### ステップ2：公開鍵ファイルをgitlabのプロジェクトにインポートします
-プロジェクトにアクセスして、gitlabでCDを構成する必要があります

-ナビゲーションバーで、[設定]-> [リポジトリ]-> [キーの展開]を選択します

-[キーの展開]セクションで、上記の手順で作成したタイトルと公開キーファイルを入力し、[キーの追加]を選択します

![Jenkins-deploy-tokens](https://onetech.jp/wp-content/uploads/2021/11/Jenkins-deploy-tokens.jpg)

### ステップ3：gitlabでプロジェクトのクローンを作成して、サーバーで構成する
– 次のコマンドを使用して、/ home / centos / tempフォルダーにアクセス許可を付与します。

chown -R centos：root / home / centos / temp

-フォルダ/ home / centos / tempに移動し、プロジェクトのクローンを作成します

![chown--R-centos](https://onetech.jp/wp-content/uploads/2021/11/chown-R-centos.jpg)

– / home / centos / tempフォルダーにpull.shファイルを作成します。ファイルの内容は次のとおりです。

eval`ssh-agent`

ssh-agent $(ssh-add /home/centos/temp/jenkins_id_rsa; git fetch; git pull)

![ssh-agent](https://onetech.jp/wp-content/uploads/2021/11/ssh-agent.jpg)

### ステップ4：Jenkinsの構成設定する
Jenkinsにアクセスし、ナビゲーションバーで[Jenkinsの管理]-> [管理]を選択します

Credentials -> global -> Add Credentials

![Add-Credentials](https://onetech.jp/wp-content/uploads/2021/11/Add-Credentials.jpg)

– クレデンシャルの追加ページで、JenkinsがデプロイするサーバーにSSHで接続できるようにパラメーターを入力します

![](https://onetech.jp/wp-content/uploads/2021/11/SSH-Jenkins-Private-key.jpg)
-Jenkinsに移動し、ナビゲーションバーで[Jenkinsの管理]-> [ノードとクラウドの管理]-> [新しいノード]を選択します

-新しいノードページで、ノード名を入力し、[永続エージェント]にチェックマークを付けて、[OK]をクリックします。
![](https://onetech.jp/wp-content/uploads/2021/11/Jenkins%E3%81%AE%E7%AE%A1%E7%90%86.jpg)

このステップでは、名前、リモートルートディレクトリ、およびSSHパラメータをサーバーに入力します

![およびSSHパラメータをサーバーに入力します](https://onetech.jp/wp-content/uploads/2021/11/%E3%81%8A%E3%82%88%E3%81%B3SSH%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF%E3%82%92%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%AB%E5%85%A5%E5%8A%9B%E3%81%97%E3%81%BE%E3%81%99.jpg)

-[保存]を押して、[エージェントの起動]を選択します

-エージェントが正常に接続すると、新しく作成されたノードサーバーがJenkinsでオンラインになります

![Jenkins-server-OT](https://onetech.jp/wp-content/uploads/2021/11/Jenkins-enter-item-name.jpg)

### ステップ5：JenkinsでCDを実行するプロジェクトを作成する
-Jenkinsにアクセスするには、ナビゲーションバーで[新しいアイテム]を選択します

-[新しいアイテム]ページで、作成するアイテムの名前を入力し、[フリースタイルプロジェクト]を選択して、[OK]を選択します


古いビルドを破棄する(Discard old builds)：Max# of builds to keepにて15を入力する


「This project is parameterized」をチェックする

![This-project-is-parameterized](https://onetech.jp/wp-content/uploads/2021/11/This-project-is-parameterized.jpg)
 

-[パイプラインスクリプト]セクションに、スクリプトの内容を入力します。

```Code:qiita.rb
currentBuild.result = “SUCCESS”
stage(‘Start service’){
node(‘Server-OT’){
echo “start pull”
sh ‘cd /home/centos/temp/jenkins && sh /home/centos/temp/pull.sh  || true’
echo “Deployment is completed”
}
}
```

![Deployment-is-completed](https://onetech.jp/wp-content/uploads/2021/11/Deployment-is-completed.jpg)

ここで、nodeはノード名を設定し、ファイルpull.shは上記で作成した情報です。

ステップ6：Jenkinsでデプロイコードを実行する
Jenkinsに移動し、[ダッシュボード]セクションで、上記の手順で作成したプロジェクトを選択します。

-プロジェクトページのナビゲーションバーで、パラメータを使用してビルド(Build with parameters)を選択します

![Build-with-parameters](https://onetech.jp/wp-content/uploads/2021/11/Build-with-parameters.jpg)

Jenkinsでgitlabからサーバーに正常にプルされたコードの結果
![Build-with-parameters-Stage-view](https://onetech.jp/wp-content/uploads/2021/11/Build-with-parameters-Stage-view.jpg)

Source: [https://onetech.jp/blog/how-to-set-up-ci-cd-on-jenkins-13815](https://onetech.jp/blog/how-to-set-up-ci-cd-on-jenkins-13815)