RancherでMySQLのレプリケーション構成スタックを作る(後編)


この記事は、

- [RancherでMySQLのレプリケーション構成スタックを作る(前編)](https://qiita.com/RyoMa_0923/items/794464cd8120ce2db79f)
- [RancherでMySQLのレプリケーション構成スタックを作る(中編)](https://qiita.com/RyoMa_0923/items/fb5ae819ab0e9e7937bc)

の続編です。

ということで、最後のカタログ作りについて説明します。


# 必要なファイル構成

以下の構成をもつGitHubリポジトリを準備します。

![Kobito.k47OwE.png](https://qiita-image-store.s3.amazonaws.com/0/40692/a4d495da-d7bf-8544-e6a3-45fbc5e51655.png "Kobito.k47OwE.png")


## README.mdの準備

2種類のREADME.mdが存在します。

- リポジトリのルートのREADME.md
	- 特にカタログ自体への直接の影響はありません
- MySQLReplication配下、0ディレクトリ内のREADME.md
	- カタログの詳細での説明文になります。
	- ![Kobito.b7TpCr.png](https://qiita-image-store.s3.amazonaws.com/0/40692/9c6216eb-e2d7-1588-711a-073ea85c1d0d.png "Kobito.b7TpCr.png")


## config.ymlの準備

config.ymlにはカタログ一覧での表示内容および詳細画面のカテゴリなどの記述を記載します。

```yaml:config.yml
name: MySQL Asynchronous Replication
description: "Asynchronous replication cluster of MySQL"
version: v0.1
category: "Databases"
```

上記のように記述した場合、カタログ一覧画面、詳細画面それぞれでの表示は以下のようになります。


### カタログ一覧画面での表示

![Kobito.RrtNfS.png](https://qiita-image-store.s3.amazonaws.com/0/40692/aa3fe617-959e-da5e-ffbb-7fe4eb391fd0.png "Kobito.RrtNfS.png")


### カタログ詳細画面での表示

![Kobito.dypIPa.png](https://qiita-image-store.s3.amazonaws.com/0/40692/a00f6edb-2dc4-1539-22cd-1e3809a8f6af.png "Kobito.dypIPa.png")

## catalogIcon-{Stack名}.???

カタログに付与されるアイコンの画像ファイルです。
svgがデフォルトのようですが、pngとかでも大丈夫のようです。

stack名は`MySQLReplication`、PNG形式の画像を利用するので、
ファイル名は`catalogIcon-MySQLReplication.png`になります。

これです。

![Kobito.Hot1rL.png](https://qiita-image-store.s3.amazonaws.com/0/40692/5bd7d967-3b30-efb3-a705-5005c1ab6786.png "Kobito.Hot1rL.png")

みなさんお世話になってるいらすとやさんのものです。





## docker/rancher-compose.ymlの準備

docker-compose.ymlとrancher-compose.ymlを準備します。


スタックの画面から赤ワクで囲った部分をクリックします。

![Kobito.ARb8aZ.png](https://qiita-image-store.s3.amazonaws.com/0/40692/4497fee6-3712-2a86-eaf2-ae5162433695.png "Kobito.ARb8aZ.png")


スタックを構成するためのrancher-compose.yml/docker-compose.ymlが表示されます。

![Kobito.0ZyyF0.png](https://qiita-image-store.s3.amazonaws.com/0/40692/6ab5a209-71c6-cdfe-80bb-f260087c31c7.png "Kobito.0ZyyF0.png")

これを冒頭に挙げた場所に置きます。

# カタログの読み込み

ここまで準備したカタログを下記の場所に準備しています。
https://github.com/Fufuhu/my_original_catalog
これをRancherで読み込むための手順をここでは説明します。

![Kobito.u4DoHI.png](https://qiita-image-store.s3.amazonaws.com/0/40692/74b8b506-a778-3cc2-4b7d-10481fc28888.png "Kobito.u4DoHI.png")

`ADMIN` -> `Settings`の順で選択します。

![Kobito.TIZoWR.png](https://qiita-image-store.s3.amazonaws.com/0/40692/452b20b0-8852-fd81-845f-4263a2becb52.png "Kobito.TIZoWR.png")

（１）`Add Catalog`ボタンをクリックします
（２）名前を指定します(ここでは`replication`を指定します)
（３）リポジトリをクローンするための.gitファイルのURIを指定します
（４）クローンするブランチを指定します(ここでは`master`を指定します)

ここまで設定後、`Save`ボタンをクリックして保存するとカタログに表示されるようになります。
これまでで、カタログの作成は完了です。

`Catalog`を選択すると先ほど指定した`replication`と表示されれば一旦完了です。

![Kobito.zsbHLe.png](https://qiita-image-store.s3.amazonaws.com/0/40692/fc24a0ad-89cc-ac4a-cdbd-6d02be85497b.png "Kobito.zsbHLe.png")

# まとめ

ここまででMySQLの非同期レプリケーションカタログを作るための手順を説明しました。
これで簡単にMySQLの非同期レプリケーションを実現した構成をワンクリックで作成できるようになりました。
とはいえ、まだまだ説明しきれていない部分が多々あります。
(例えばスタック作成時に任意のパラメータを指定する方法など)


カタログ作成の詳細については、

- [Rancher プライベートカタログとCompose](https://www.slideshare.net/m-daichang/rancher-compose)

にて語りつくされているのでこちらを参照いただければと思います。