Rancher 2.3 で Redmine を立ち上げる on GKE

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/92726/0ed0ff31-d045-3dac-b4ed-c4f9ad75edf5.png)

こんにちは、TOPGATE でインフラエンジニア兼プロジェクトマネージャをやっています堤です。

前回の記事に引き続き Rancher を取り上げたいと思います。

[【前回】Rancher 2.3 を使って GKE を構築してみた](https://qiita.com/maro_kt/items/2a19547e85dc4b908216)

今回は表題の通り、プロジェクト管理ツールである Redmine を Rancher を使って GKE 上に構成したいと思います。

Rancher には、Catalog という機能があります。こちらは、Kubernetes のパッケージ管理システムの一つである [Helm](https://helm.sh/) を用いてアプリケーションのデプロイを行います。この機能を用いることで、メジャーな OSS のアプリ（WordPress、Nginxなど）なら、簡単に GKE 上にデプロイすることができます。

# 1. Project/Namespace

アプリケーションをデプロイする前に、デプロイ先の Project と Namespace を設定します。これは必須の設定ではありませんので、すぐに試したい方は、読み飛ばしてい頂いて結構です。

Namespace（名前空間）とは、 Kubernetes 機能の一つです。簡単にいうと、ひとつの物理的な Kubernetes クラスタ上に、仮想的なクラスタを作って、分割・グルーピングするための機能です。Namespace ごとにアクセスできるユーザを設けたり、 リソース（CPU,メモリなど）のクオータを設定することもできます。詳細は以下を御覧ください。

https://kubernetes.io/ja/docs/concepts/overview/working-with-objects/namespaces/

あと、Project は、Rancher 特有の機能です。 上記の Namespace を複数束ねる機能といった機能と考えてください。Namespace と同様に、ユーザの紐付けやリソースのクオータの設定もできます。この記事では詳細は触れません。[※参考：Projects and Namespaces
](https://rancher.com/docs/rancher/v2.x/en/cluster-admin/projects-and-namespaces/)

## Project の追加

Project を一つ追加します。今回は例として、 `Osaka` という名前で作ります。

![rancher-pj01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/92726/d0c9a602-db3a-323b-527d-24df567a4440.png)

![rancher-pj02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/92726/bf8633d0-27d2-c69b-c379-e6973bca50f9.png)


## Namespace の追加

次に、 Namespace を追加します。今回は `Redmine` という Namespace を作ります。今回は、特にクオータの設定などは行いません。

![rancher-pj03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/92726/43037d0d-f99f-82a6-9b22-9c183e02f401.png)

![rancher-pj04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/92726/b3a553f6-1325-88b9-1d7a-7cecd08a0e1e.png)

 
# 2. Catalog の設定

次に Catalog の設定を行います。Rancher 構築直後は、Redmine が含まれている　helm　が無効になっているので有効にします。ついでに、helm-incubator も有効にします。

* helm: helm が作成した Chart 安定版
* helm-incubator: helm が作成した Chart 非安定版

![rancher-app02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/92726/64b5ce92-a9a7-5115-1d85-3602fc7ece13.png)

![rancher-app03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/92726/754a5513-8e6a-3ae5-64dc-dca897d81b81.png)

# 3. アプリケーション（Redmine）のデプロイ

## 3-1. カタログより Redmine を起動させる

Catalog の設定が完了したら、アプリケーションのデプロイに入りましょう。アプリケーションのデプロイはとても簡単です。`【 クラスタ名 】→【 プロジェクト名 】→【 Apps 】`のメニューを開き、Launch を押します。

次に一覧から Redmine を選択します。

<img width="1263" alt="ScreenShot 2019-11-13 18.18.04.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/92726/1a90a31a-4cb4-b198-fb0b-2d25838782e2.png">


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/92726/9e407e6f-3582-dcf6-ec74-be549843377a.png)

すると、以下のページが表示されます。`Detailed Description` を開くと、アプリの概要やパラメータの意味が書かれていますので、一読しておきましょう。

<img width="1258" alt="ScreenShot 2019-11-13 18.19.37.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/92726/ab89778d-de73-61df-a5f7-3a5cefb57f1f.png">

今回は、Redmine を日本語で入れたいので Answers のところで、「redmineLanguage」を「ja」に設定します。その他は、デフォルト値のままでデプロイします。そして、「Launch」を押して Redmine のデプロイを開始します。

<img width="1273" alt="ScreenShot 2019-11-13 18.19.54.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/92726/5d77611c-d95b-583c-7b3a-b27efdad0ffb.png">

しばらくすると（1〜2分程度）、以下の画面のようにデプロイが完了し Active となります。

<img width="1269" alt="ScreenShot 2019-11-13 18.54.10.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/92726/8a1d9f81-43d4-79e5-ab8f-a355f7f2f86f.png">

## 3-2. Redmine へのログイン

### 接続先情報（ユーザ名、パスワード）

`【 クラスタ名 】→【 プロジェクト名 】→【 Appｓ 】→【 Redmine 】`を開きます。一番上の `Notes` を開くと、説明書きが書かれています。

<img width="1242" alt="ScreenShot 2019-11-13 18.26.35.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/92726/290692ab-c025-32a4-0d5b-c013ae6cdb9d.png">

ユーザ名は user と設定されており、パスワードはランダムな文字列が設定されております。パスワードを取得するには、Notes にかかれている通りのコマンドを実行する必要があります。

``` console
echo Password: $(kubectl get secret --namespace redmine redmine -o jsonpath="{.data.redmine-password}" | base64 --decode)
```

コマンドの実行は、実は Rancher の UI を使って実行することができます。`【クラスタ名】→【Cluster】`の画面に移動すると、右上に `Launch kubectl` ボタンがあるので、これを押すと CLI 画面が出てきます。そこに、上記のコマンドを実行するとパスワードが表示されます。

<img width="1264" alt="ScreenShot 2019-11-13 19.03.34.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/92726/e65044df-63df-9715-6723-9dd293b0f947.png">


<img width="1291" alt="ScreenShot 2019-11-13 18.30.08.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/92726/50275678-e494-dfba-dd0a-69fdcf46c111.png">

### サーバ IP アドレスの取得

`【 クラスタ名 】→【 プロジェクト名 】→【 Apps 】→【 Redmine 】`を開きます。 Endpoints にサーバのIPアドレスが表示されていますので、これで接続すると Redmine に接続できます。

<img width="1256" alt="ScreenShot 2019-11-13 19.06.40.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/92726/f2885d28-ea0e-625b-42cf-5809ef8954e1.png">

### Redmineにログイン

ログイン画面を立ち上げます。

<img width="1383" alt="ScreenShot 2019-11-13 19.09.13.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/92726/2de2d7e2-8ac6-9f0e-b5a2-7a1c887e914e.png">

そして先程取得したアカウントでログインすると以下のようになります。user アカウントは、初期値の言語が英語になっているので、ログインすると英語になってしまいます（笑

<img width="1383" alt="ScreenShot 2019-11-13 19.10.11.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/92726/123b3c0d-167d-201c-d335-c951f2222f2f.png">

以上です。

Rancher の雰囲気は伝わったのではないかと思います。

今後も、Rancher を積極的に使って、気づいたことがあれば Qiita に投稿していきたいと思います。最後まで読んでいただきましてありがとうございます。