らくがきちょう

なんとなく

Amazon Linux2 に Nginx フロントエンド構成で GitBucket をインストールする

Amazon Linux2 に GitBucket をインストールする手順をメモしておきます。

Java のインストール

GitBucket の公式ページには下記の記載があります。

GitBucket requires Java8. You have to install it, if it is not already installed.

試しに amazon-linux-extras にある Java11 でチャレンジしてみたのですが、やはり GitBucket が起動しませんでした。 ここは素直に Java8 をインストールしていきます。 Java8 であれば Amazon Linux の標準リポジトリからインストール出来ます。 現時点でインストール可能なバージョンは 1.8.0.201.b09 でした。

# yum info java-1.8.0-openjdk
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
Available Packages
Name        : java-1.8.0-openjdk
Arch        : x86_64
Epoch       : 1
Version     : 1.8.0.201.b09
Release     : 0.amzn2
Size        : 259 k
Repo        : amzn2-core/2/x86_64
Summary     : OpenJDK Runtime Environment 8
URL         : http://openjdk.java.net/
License     : ASL 1.1 and ASL 2.0 and BSD and BSD with advertising and GPL+ and GPLv2 and GPLv2 with exceptions and IJG and LGPLv2+ and MIT and
            : MPLv2.0 and Public Domain and W3C and zlib
Description : The OpenJDK runtime environment.

インストールします。

yum -y install java-1.8.0-openjdk

Tomcat のインストール

次は Tomcat をインストールします。 Tomcatamazon-linux-extras からインストールします。

amazon-linux-extras enable tomcat8.5
yum clean metadata
yum -y install tomcat

Nginx のインストール

続いて Nginx をインストールします。 Amazon Linux 標準リポジトリにある Nginx はバージョンが古い為、Nginx 公式リポジトリからインストールします。 まず、リポジトリを定義します。 /etc/yum.repos.d/nginx.repo を以下の内容で新規作成します。

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key

Nginx をインストールします。

yum check-update
yum -y install nginx

サーバ証明書の用意

今回は GitBucket の通信を SSL/TLS で保護したい為、サーバ証明書を用意しておきます。 CA 局はお好みで良いと思いますが、Let's Encrypt で取得するのが手軽だと思います。

GitBucket のダウンロード

GitBucket は .war ファイルで提供されている為、所定のディレクトリ (Tomcat の webapps) へ配置するだけでインストール完了です。 トップディレクトリ (https://example.com/ 等) でサービスを提供出来るよう、ROOT.war へファイル名を変更しておきます。

wget -P /usr/share/tomcat/webapps/ https://github.com/gitbucket/gitbucket/releases/download/4.31.2/gitbucket.war
mv /usr/share/tomcat/webapps/gitbucket.war /usr/share/tomcat/webapps/ROOT.war

GitBucket 用 Nginx 設定ファイルの準備

GitBucket 用の Nginx 設定ファイルを用意します。 /etc/nginx/conf.d/gitbucket.conf を以下の内容で新規作成します。

upstream gitbucket {
  server localhost:8080;
}

server {
    listen       80;
    server_name  gitbucket.example.com;
    return       301 https://$host$request_uri;
}

server {
    listen              443 ssl http2;
    server_name         gitbucket.example.com;
    ssl_certificate     /etc/letsencrypt/certificatesexample.comm.crt;
    ssl_certificate_key /etc/letsencrypt/certificates/example.com.key;
    ssl_protocols       TLSv1.1 TLSv1.2;
    ssl_ciphers         'ECDH !aNULL !eNULL !SSLv2 !SSLv3';

    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-Server $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    location / {
        proxy_pass http://gitbucket;
        proxy_redirect http:// https://;
    }
}

自動起動&起動の設定

Nginx と Tomcat自動起動させます。

systemctl enable nginx tomcat
systemctl start nginx tomcat

GitBucket へアクセスする

ブラウザから GitBucket をインストールした URL (例えば https://gitbucket.example.com ) へアクセスし、以下のように GitBucket の画面が表示されることが確認出来ればインストールは完了です。

f:id:sig9:20190720122006p:plain:w800

GitBucket の初期ユーザは以下です。 パスワードが安易な為、すぐに変更することがお勧めです。

項目
ユーザ名 root
パスワード root