お疲れ様です!Rancher を使っているとカタログにないものや自分で作成したテンプレートを使いたくなりますよね。そこで自分で作成したテンプレートをカタログに表示してみます。ここでは Rancher 1.4.0 を使います。

git リポジトリの作成

カタログとして登録するには git clone によってハンドルされる URL が必要とのことなので git 系にリポジトリを作成します。今回は GitHub に作成しました。 miyabis/rancher-catalog

テンプレートの作成

テンプレートフォルダの作成

今回は GitBucket のテンプレートを作成してみます。
Rancher 公式の Creating Private Catalogs を参考にします。
最初にどのオーケストレーションのテンプレートを作るかでフォルダを分けます。
今回は Rancher 標準の Cattle 用なので templates フォルダを作成します。

  • Cattle : templates フォルダ
  • Kubernetes : kubernetes-templates フォルダ
  • Swarm : swarm-templates フォルダ
  • Mesos : mesos-templates フォルダ

サービスフォルダの作成

次に作成対象となるサービスの名称でフォルダを作成します。
今回は GitBucket フォルダを作成します。
このフォルダにはカタログに表示する情報の定義 config.yml と アイコンファイルを置きます。

バージョンフォルダの作成

次はそのサービスに対してのバージョン別となるフォルダを0からの追番で作成します。
今回は2バージョン作成することにしたので0、1フォルダを作成します。
各0、1フォルダには docker-compose.yml と rancher-compose.yml のセットで作成していきます。

-- templates
  |-- GitBucket
  |   |-- 0
  |   |   |-- docker-compose.yml
  |   |   |-- rancher-compose.yml
  |   |-- 1
  |   |   |-- docker-compose.yml
  |   |   |-- rancher-compose.yml
  |   |-- catalogIcon-GitBucket.png
  |   |-- config.yml
...

config.yml の作成

name: GitBucket
description: "GitHub Clone"
version: v1.0.0
category: "Versioning"
maintainer: MiYABiS
license:
projectURL: https://github.com/miyabis/rancher-catalog

docker-compose.yml の作成

Compose file version 2 reference | Docker Documentation この辺を参考に作成します。
今回は私が作った miyabis/gitbucket と busybox を使う定義をしました。

version: '2'
services:
  gitbucket-primary:
    image: miyabis/gitbucket:latest
    environment:
      DB_URL: ${db_url}
      DB_USER: ${db_user}
      DB_PASSWORD: ${db_password}
    volumes_from:
    - gitbucket-datavolume
    ports:
    - ${ssh_port}:29418/tcp
    - ${public_port}:8080/tcp
    labels:
      io.rancher.sidekicks: gitbucket-datavolume
      io.rancher.container.hostname_override: container_name
  gitbucket-datavolume:
    image: busybox
    volumes:
    - /var/gitbucket:/gitbucket
    labels:
      io.rancher.container.start_once: 'true'

rancher-compose.yml の作成

テンプレートとして表示する内容を定義します。
入力項目もここへ定義します。

version: '2'
catalog:
  name: "GitBucket"
  version: "v4.26.0"
  description: ""
  questions:
      - variable: "public_port"
        label: "Public Port"
        description: "Public listening port"
        type: "int"
        required: true
        default: "8200"
      - variable: "ssh_port"
        label: "SSH Port"
        description: "SSH listening port"
        type: "int"
        required: true
        default: "29418"
      - variable: "db_url"
        label: "DB URL"
        description: "DB URL"
        type: "string"
      - variable: "db_user"
        label: "DB USER"
        description: "DB USER"
        type: "string"
      - variable: "db_password"
        label: "DB PASSWORD"
        description: "DB PASSWORD"
        type: "password"
services:
  gitbucket-primary:
    scale: 1
    start_on_create: true
    health_check:
      healthy_threshold: 2
      response_timeout: 2000
      port: 8080
      unhealthy_threshold: 3
      interval: 2000
      strategy: recreate
  gitbucket-datavolume:
    scale: 1
    start_on_create: true

全て作成し終えたら git にあげます。

Rancher カタログへ追加

管理者 => 設定 メニューを表示します。
カタログのところの カタログを追加 リンクをクリックして行を追加し、名称、URL、ブランチを入力します。

名称:MiYABiS
URL:https://github.com/miyabis/rancher-catalog.git
ブランチ:master

メニューへ反映させるために一度 F5(Command+R) でリフレッシュします。

カタログから GitBucket を追加

カタログ => MiYABiS メニューを表示します。

GitBucket の詳細を見るリンクをクリックします。

テンプレートバージョンを選択します。

今回はデフォルトのまま起動をクリックして作成します。
ポートの変更や外部のDBを使う時はここで指定します。
しばらくすると起動するのでメニューの スタック => ユーザー で確認します。

GitBucket をクリックします。
ポート:8200 のリンクをクリックすると GitBucket が表示されます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*