3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

AWS上にBitnamiのAMIを使ってお手軽にJenkinsサーバーを立てる

Last updated at Posted at 2017-06-28

はじめに

目的

CIはもちろん、バッチ処理のスケジュール実行用にJenkinsサーバーをサクッと作る。慣れれば20分掛けずに作れるはず。

本記事でできること

  • GitHub上のプライベートリポジトリのJenkins上でのビルド
  • GradleプロジェクトのJenkins上でのビルド

Bitnamiとは

ソフトウェアの環境構築をいい感じに設定したパッケージを配布してくれている。
パッケージの形式はコンテナやクラウド環境用のイメージやオンプレ用など様々。

We make it possible for anyone to quickly deploy software on the platform of their choice, from native installers to cloud images to containers.

詳しく知りたければ以下を参照。

参考情報

以下のパッケージを使う。執筆時点(2017/06/28)での最新バージョンは「2.46.2-0 on Ubuntu 14.04.3」。

Jenkins powered by Bitnami
https://aws.amazon.com/marketplace/pp/B00NNZUF3Q

ドキュメント
https://docs.bitnami.com/aws/apps/jenkins/

ドキュメント > ID/PASSWORD
https://bitnami.com/stack/jenkins/cloud/aws

コミュニティ(わからないことがあればここで検索)
https://community.bitnami.com/c/jenkins

手順

AMIからEC2インスタンスを作成

1.AWS Marketplace上の下記URLに遷移後、画面右の「Continue」を選択

Jenkins powered by Bitnami
https://aws.amazon.com/marketplace/pp/B00NNZUF3Q

この際、AWSに未ログインの場合はログインを促されるのでログインする。

2.「Launch on EC2:Jenkins powered by Bitnami」画面の「Manual Launch」を選択

Manual Launchを選択するのは慣れ親しんだAWS Console から作成するため(個人的理由)

3.Launch>AMI IDs>Asia Pacific (Tokyo)の 「Launch with EC2 Console」を選択

4.EC2インスタンス作成

省略するが、基本的にデフォルト設定でOK。ここで作成したキーペアを使って、あとでsshログインする。
80番ポートと22番ポートを開放する。なんらかのIP制限を掛ける。

Jenkinsにログイン ~ 初期設定

インスタンス起動後、インスタンスに割り当てられたIPの80番ポートにブラウザからアクセスする。
Jenkinsのログイン画面が表示されるのでIDとパスワードを入力。

ID: user
PASSWORD: (EC2インスタンスのシステムログより確認する。以下のURLを参照する。)

(参考) How To Find Application Credentials?
https://docs.bitnami.com/aws/faq/#find_credentials

ログイン後、特にこだわりがなければ画面に従い、オススメされるプラグインをインストールする。

サーバー時刻を日本標準時(JST)に変更

1.サーバーにsshログイン

ユーザーはbitnami。公開キーとアドレスは適宜入力する。

ssh -i path/to/keypair.pem bitnami@IPAddress

2.下記コマンドで日本標準時(JST)に変更

echo "Asia/Tokyo" | sudo tee /etc/timezone
sudo dpkg-reconfigure --frontend noninteractive tzdata

(参考) Ubuntu Time Management
https://help.ubuntu.com/community/UbuntuTime

3.Jenkinsを再起動

sudo /opt/bitnami/ctlscript.sh restart

(参考) How To Start Or Stop The Services?
https://docs.bitnami.com/aws/apps/jenkins/

GitHub連携

以下のドキュメントを参考に実施する。

How To Start With Git And Jenkins?
https://docs.bitnami.com/aws/apps/jenkins/#how-to-start-with-git-and-jenkins

事前にsshの認証キーの生成と、生成後にGithubアカウントに対応させる必要があるので、以下を参考に実施する。

sshの認証キー生成

bitnamiユーザーで以下のコマンドを実行し、tomcatユーザー用のsshの認証キーを生成する。

ssh-keygen -t rsa

この際、生成場所を聞かれるので /home/tomcat/.ssh/id_rsa にする。あとは未入力でEnter。

GitHubアカウントにsshの認証キー追加する

/home/tomcat/.ssh/id_rsa.pem の中身をまるごと、以下を参考にGithubアカウントに追加する。

Adding a new SSH key to your GitHub account
https://help.github.com/articles/adding-a-new-ssh-key-to-your-github-account/

/opt/bitnami/.gradle のパーミッションを変更

bitnamiのバグにより、gradleで使用するディレクトリのパーミッションの設定に誤りがある。
以下のように /opt/bitnami/.gradle のオーナーをtomcatに変更する。

sudo chwon tomcat:tomcat /opt/bitnami/.gradle

ビルド用JDKのインストール

Jenkinsの管理 > Global Tool Configuration > JDK より、任意のJDKをインストールする。
Oracleのアカウントが必要なので、持っていなければ無料なので作る。

スクリーンショット 2017-06-29 0.28.49.png

ここでインストールしたJDKがジョブのビルド時に使われる。複数インストールした場合、各ジョブの設定画面で使用するJDKを選択できる。

確認

GitHub上のプライベートリポジトリ内のGradleプロジェクトをビルドできることを確認します。すでに作成済みの場合は、以下の手順を実施してビルドが成功することを確認してください。

1.「新規ジョブ作成」を選択

2.入力欄に適当なジョブ名を入力し、「フリースタイル・プロジェクトのビルド」を選択し、OKボタンを押す

3.ジョブ設定画面にて以下の内容を入力後、保存ボタンを押す

ソースコード管理 >リポジトリURL

  • 対象のリポジトリURLを以下の形式で入力する
git@github.com:USERNAME/REPONAME.git

ビルド  > Invoke Gradle script > Use Gradle Wrapper

  • 「Make gradlew executable」 にチェック

  • Tasksに実行するGradleタスクを設定する (例)「build」

4.「ビルド実行」ボタンを押し、ビルドが成功することを確認する

3
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
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?