Jenkins + Backlog + ElasticBeanstalk 連携

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308256/f24c2191-9132-224e-064c-dbac8d3af1c0.png)


# はじめに
JenkinsにてRuby on Railsアプリケーションのテスト、デプロイの自動化を実施しました。
そのときに勉強になったことをまとめたいと思います。
ここでは、Jenkins + Backlog + ElasticBeanstalk の連携方法について細かいところまでまとめられているものがありませんでしたのでまとめました。

ノウハウのようなもので知っていれば時間がかからないのですが、知らなければめちゃくちゃ時間がかかってしまいます。。
（自分は1週間くらい検索を駆使しながらトライアンドエラーを繰り返して見つけました。）

黒塗り部分が多く何を入れればいいか分からない場合は、コメントなどに残していただければできる範囲で説明いたします。
気軽にコメントください。


#### 関連リンク
関連リンクを下記に載せておくので、必要であれば参考にしてください。。

* Jenkins ふんわり概要
    * https://qiita.com/syukan3/items/9f43931988841c2fe343
* EC2 で Jenkins 構築する時にやったこと (Railsアプリケーション)
    * https://qiita.com/syukan3/items/cd3b10e469f22147d537
* ElasticBeanstalk Blue-Green Deployment
    * https://qiita.com/syukan3/items/28eba7462c26409773e6

# Jenkins + Backlog 連携

## ビルド 設定
### General 設定

* Backlog URL 
  * project のトップのURL
* ユーザーID
  * Backlog ログイン時に仕様しているもの
* パスワード
  * Backlogの個人設定->2段階認証 のところにあるキー
* APIキー
  * Backlogの個人設定->APIキー のところにあるキー

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308256/be7c4240-dac9-49f2-b762-b09ff227efc2.png)



### ソースコード管理 設定

* リポジトリURL
  * ソースコードが入ってる git の URL
* 認証情報
  * 追加 -> Jenkins
    * ユーザー名 : Backlog ログイン時に仕様しているもの
    * パスワード : Backlog 個人設定->2段階認証 のところにあるキー
    * ID : 空欄
    * 説明 : なんでも
* ブランチ指定子
  * そのままで ok
* リポジトリ・ブラウザ : Backlog
  * リポジトリ名 : *****

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308256/13af0e65-736a-89e5-198c-890804affd9d.png)
<img width="1251" alt="jenkins_backlog_3.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308256/2cf165c1-0f09-9c9a-b9a9-6d164decc27c.png">


# Jenkins + AWS ElasticBeanstalk 連携
## プラグインインストール
下記2つの Jenkins 上のプラグインをインストールする。

* AWS Elastic Beanstalk Deployment
* HTML5 Notification Configuration

## ビルド設定
### General 設定
これは Jenkins + Backlog 連携の時と同じ設定。

* Backlog URL 
  * project のトップのURL
* ユーザーID
  * Backlog ログイン時に仕様しているもの
* パスワード
  * Backlogの個人設定->2段階認証 のところにあるキー
* APIキー
  * Backlogの個人設定->APIキー のところにあるキー

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308256/be7c4240-dac9-49f2-b762-b09ff227efc2.png)


### HTML5 Notification Configuration
添付画像の通りパラメータを設定することで、AWS Elastic Beanstalk のプラグインへパラメータを送ってくれる？

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308256/9588c332-08e3-49db-0bfa-6f8d47b49de0.png)


### ソースコード管理
これは Jenkins + Backlog 連携の時と同じ設定。

* リポジトリURL
  * ソースコードが入ってる git の URL
* 認証情報
  * 追加 -> Jenkins
    * ユーザー名 : Backlog ログイン時に使用しているもの
    * パスワード : Backlog 個人設定->2段階認証 のところにあるキー
    * ID : 空欄
    * 説明 : なんでも
* ブランチ指定子
  * そのままで ok
* リポジトリ・ブラウザ : Backlog
  * リポジトリ名 : *****

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308256/13af0e65-736a-89e5-198c-890804affd9d.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308256/c64b7667-05a8-1d11-1d6a-804dace715b7.png)


### AWS Elastic Beanstalk
* 下記のように入力する。パラメータは上記のHTML5のところで設定する。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308256/2eea31e0-c2bc-1267-e217-400f0f970484.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308256/967a1a23-f1c9-79d9-e35a-e2176d0a43b7.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308256/7165d6d4-4d8d-8e9c-daf6-5995a7d6b13c.png)

# まとめ
知っていれば時間はかからないのですが、知らなければ時間がいくらあっても分からない部分だと思います。
（自分は1週間くらい検索を駆使しながらトライアンドエラーを繰り返して見つけました。）
Jenkinsを初めて導入し、Backlog / ElasticBeanstalk で運用したいという方の参考になればなと思います。

---
### 会社紹介

**株式会社 Mosaica**  
最先端テクノロジーで社会課題を解決し、持続可能な未来を創造する IT カンパニー。
AI ソリューション、クラウド統合、DX 推進、経営コンサルティングなど包括的なサービスでビジネス変革を支援しています。  

詳しくは [公式サイト](https://mosaica.co.jp/) までお気軽にご相談ください。
公式サイト： https://mosaica.co.jp/