こまぶろ

技術のこととか仕事のこととか。

EC2 Amazon Linux に Java(OpenJDK) / Tomcat / GitBucket / gitbucket-label-kanban-plugin をインストールする

思うところあり掲題の構成でサーバを立てたので、メモを残す。

  • EC2のAmazon Linuxインスタンスを作成し、
  • OpenJDKをインストールし、
  • Tomcat 8 を立て、
  • GitBucket を構築し、
  • gitbucket-label-kanban-plugin を導入

する手順。環境構築苦手マンなので、Unix系OSのコマンドの基本的な部分の補足も含む。間違っているところ、不要な手順があったらご指摘ください。

環境

  • macOS Mojave
  • バージョン 10.14.1

EC2インスタンスの作成

AWS コンソールからインスタンスを作成する。

f:id:ky_yk_d:20181129001638p:plain

AMI は、下のものを選択してみる*1

Amazon Linux AMI 2018.03.0 (HVM), SSD Volume Type - ami-063fa8762cdc9a5a6

AMIの選択以降は、デフォルトで進める。インスタンスを作成する直前に、キーペアを作成させられるため、pemファイルをダウンロードして適当なところに配置しておく(SSHアクセスする際にこのファイルへのパスを指定することになる)。

セキュリティグループの設定

セキュリティグループを新たに作成。インバウンドのルールを下記のように設定した。

タイプ プロトコル ポート範囲
HTTP TCP 80
SSH TCP 22
HTTPS TCP 443
カスタムTCPルール TCP 8080

※ソースは今回は自分のPCからのみのアクセスとしたいため「マイIP」で設定。

今回は、SSHmacのTerminalからのアクセス)、カスタムTCPルール(Tomcatのデフォルトポート)しか利用していないので、HTTPとHTTPSは要らないかもしれない。

Elastic IP の割り当て

発行して割り当てる。インターネット経由でアクセスしたいため。AWSコンソールからボタン数回で。

SSHでサーバにアクセス

sshコマンドでアクセスする。

webkaru.net

-i オプションは、秘密鍵ファイルを指定するもの。

$ ssh ec2-user@[Elastic IP] -i [秘密鍵のパス] 
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '[秘密鍵のパス]' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "[秘密鍵のパス]'": bad permissions
ec2-user@[Elastic IP]: Permission denied (publickey).

秘密鍵の権限が広すぎると怒られている。

yachibit.hatenablog.jp

たまにしかサーバを触らないので毎回忘れるパーミッションの表記をまとめておく。

数字 二進数 英字 意味
7 111 rwx 読・書・実行
6 110 rw- 読・書
5 101 r-x 読・実行
4 100 r--
3 011 -wx 書・実行
2 010 -w-
1 001 --x 実行
0 000 --- なし

上の表に従えば、0644はグループと他人に読み取りの権限がある。これがダメっぽいので600にする。あとで出てくる755と合わせてまとめておく。

数列 本人 グループ 他人
644 rw- r-- r--
600 rw- --- ---
755 rwx r-x r-x
$ chmod 600 [秘密鍵のパス]

再度SSH接続を試みる。

$ ssh ec2-user@[Elastic IP] -i [秘密鍵のパス] 

無事、アクセスできた。

f:id:ky_yk_d:20181128232649p:plain

Open JDK 1.8.0 のインストール

今回のインスタンスにはデフォルトで1.7.0系がインストールされている。

$ java -version
java version "1.7.0_191"
OpenJDK Runtime Environment (amzn-2.6.15.4.82.amzn1-x86_64 u191-b01)
OpenJDK 64-Bit Server VM (build 24.191-b01, mixed mode)

1.8.0が欲しいのでyumでインストールする。-y オプションは、すべての質問にyesと応答するもの。

$ sudo yum -y install java-1.8.0-openjdk-devel 

新たにインストールしたJavaを利用するように変更する。下記を参考に。

graziegrazie.hatenablog.com

$ sudo update-alternatives --config java

f:id:ky_yk_d:20181128233047p:plain

使用するJavaのバージョンが変更されていることを確認する。

$ java -version
openjdk version "1.8.0_191"
OpenJDK Runtime Environment (build 1.8.0_191-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)

Tomcat のインストール

特に意味はないが、8.5.x の最新である 8.5.35 をインストールした。ちなみに最新版は 9.0.13 である。

Apache Tomcat® - Apache Tomcat 8 Software Downloads

下記の記事を参考にした。

qiita.com

ただし、Amazon Linux は sytemd ではなく init を使用することになるため、「初期設定 & 起動」以降の手順には従っていない。

qiita.com

$ cd /usr/local/src 
$ sudo mkdir tomcat
$ cd tomcat
$ sudo wget http://ftp.riken.jp/net/apache/tomcat/tomcat-8/v8.5.35/bin/apache-tomcat-8.5.35.tar.gz # 公式ミラーサイトから取得する
--2018-11-28 13:56:07--  http://ftp.riken.jp/net/apache/tomcat/tomcat-8/v8.5.35/bin/apache-tomcat-8.5.35.tar.gz
ftp.riken.jp (ftp.riken.jp) をDNSに問いあわせています... 134.160.38.1
ftp.riken.jp (ftp.riken.jp)|134.160.38.1|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 9642757 (9.2M) [application/x-gzip]
`apache-tomcat-8.5.35.tar.gz' に保存中

apache-tomcat-8.5.3 100%[===================>]   9.20M  27.8MB/s    in 0.3s    

2018-11-28 13:56:08 (27.8 MB/s) - `apache-tomcat-8.5.35.tar.gz' へ保存完了 [9642757/9642757]

www.atmarkit.co.jp

ダウンロードしてきたものを解凍する。

$ sudo tar zxvf apache-tomcat-8.5.35.tar.gz
$ ls
apache-tomcat-8.5.35  apache-tomcat-8.5.35.tar.gz

/opt/配下に移動し、tomcatユーザに権限を与える。

$ sudo mv apache-tomcat-8.5.35 /opt/
$ sudo useradd -s /sbin/nologin tomcat
$ sudo chown -R tomcat. /opt/apache-tomcat-8.5.35 
$ sudo ln -s /opt/apache-tomcat-8.5.35 /opt/tomcat # シンボリックリンクの作成

下記の内容をファイルに書き込む。

export CATALINA_HOME=/opt/tomcat

$ cd /etc/profile.d
$ sudo vi tomcat.sh

tomcat を立ち上げてみる。

$ sudo -u tomcat /opt/tomcat/bin/startup.sh
Using CATALINA_BASE:   /opt/tomcat
Using CATALINA_HOME:   /opt/tomcat
Using CATALINA_TMPDIR: /opt/tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar
Tomcat started.

http://[Elastic IP]:8080 にアクセスする。

f:id:ky_yk_d:20181128234015p:plain

アクセスできるようになった。

Gitbucket のインストール

下記をインストールしたい。

github.com

下記を参考にする。

qiita.com

インストールする。

$ cd /opt/tomcat
$ sudo chmod webapps 755 # tomcat ユーザーにしかRead権限がない状態(drwxr-xr-x)ので、権限を追加
$ sudo wget https://github.com/takezoe/gitbucket/releases/download/4.29.0/gitbucket.war -O gitbucket.war
$ sudo -u tomcat /opt/tomcat/bin/startup.sh # tomcat を再起動する

http://[Elastic IP]:8080/gitbucket/ にアクセスする。

f:id:ky_yk_d:20181129000014p:plain

アクセスできた。

Kanban プラグインのインストール

下記をインストールする。

github.com

GitHubのREADMEには下記のようにある。

Download jar file from the release page and put it into GITBUCKET_HOME/plugins.

GITBUCKET_HOMEは、GitBucketを動かしているユーザのホームにある.gitbucketディレクトリらしい。移動する。

$ cd /home
$ sudo chmod 755 tomcat
$ cd tomcat
$ sudo chmod 755 .gitbucket
$ cd .gitbucket
$ sudo chmod 755 plugins 
$ cd plugins # ここが `GITBUCKET_HOME`/plugins
$ sudo wget https://github.com/kasancode/gitbucket-label-kanban-plugin/releases/download/2.0.3/gitbucket-label-kanban-plugin_2.12-2.0.3.jar 
$ sudo -u tomcat /opt/tomcat/bin/startup.sh # tomcat を再起動

root/rootでログインして、リポジトリを作ると、サイドバーに「Kanban」が現れている。クリックするとアクセスできる。

f:id:ky_yk_d:20181129001218p:plain

Kanbanをためす

Label に TODO と DOING を作成し、サンプルの Issue を作って動かしてみた。

f:id:ky_yk_d:20181129012307g:plain

ぬるぬる動く。

ちなみに、Gif画像の作成は下記の記事を参考にした。便利な世の中。

qiita.com

感想

取り組み始めてみればそこまで難しくはなかった。新しいツールを自力で導入できることは、プロセス改善のためには必須スキルなので、少しずつ磨いていきたい。

また、Trello などのクラウドのツールを使えない現場で働くみなさんは、GitBucket + gitbucket-label-kanban-plugin でカンバン生活を始めてみてはいかがだろうか。。

カンバン仕事術

カンバン仕事術

*1:Javaが入っているというのに惹かれての選択だが、入っているのが1.7.0系だったため結局入れ直すことになった。