コミュニティテンプレートを使ってみよう

[IDCフロンティア Advent Calendar 2015](http://qiita.com/advent-calendar/2015/idcfrontier)の最終日は、12/22にリリースされたばかりの[コミュニティテンプレート](http://www.idcf.jp/cloud/spec/template.html?cl=cl_tbnr_comutemp)を紹介します。

これまでIDCFクラウドでは構築・設定した仮想マシンをテンプレート化できるマイテンプレート機能を提供してきました。テンプレート化することで同じ構成の仮想マシンを簡単に素早く作成することができるため、負荷によって台数が増減するサーバーをテンプレート化して準備しておく、バックアップとして定期的に仮想マシンのスナップショットを取得しテンプレート化しておくといった使い方ができます。

マイテンプレート機能は便利な機能ですが、作成したテンプレートはアカウント内でしか使用することができず、「よくある構成だからテンプレートを使って構築したい・・・」、「便利なテンプレートを作ったのでみんなに使って欲しい・・・」といった要望に応えることは難しいという課題がありました。

コミュニティテンプレートのリリースでテンプレートをアカウント間で共有することができるようになり、これらの課題が解決されます。

例えば、WordPress等のテンプレートを探して仮想マシンを作成すれば、自分で作業することなく簡単にブログを構築できます。
また、自分で構築・設定した仮想マシンをテンプレートとして公開し使ってもらうこともできます。

以下では、コミュニティテンプレートから仮想マシンを作成する方法、マイテンプレートをコミュニティテンプレートとして公開する方法をみていきます。

## コミュニティテンプレートから仮想マシンを作成する

コミュニティテンプレートのリリースにより、他のアカウントが公開している
テンプレートから仮想マシンを作成することが可能になりました。

すでに、プライム・ストラテジー様から超高速WordPress 環境「KUSANAGI」の
テンプレートが公開されています。今後も各社からテンプレートが公開される
予定です。

[「KUSANAGI for IDCFクラウド」を無償提供開始 | プライム・ストラテジー株式会社](https://www.prime-strategy.co.jp/wp/information/release_idcf/)

コミュニティテンプレートから仮想マシンを作成するのは非常に簡単です。

まず、コミュニティテンプレートの一覧から使用するテンプレートを選択します。
コミュニティテンプレートの一覧は、左側のメニューから「テンプレート」を開き、右上の「コミュニティテンプレートへ」をクリックすると表示されます。

<img width="1266" alt="テンプレートを探す01.png" src="https://qiita-image-store.s3.amazonaws.com/0/15114/c87a0344-289e-7dd3-1fa8-f75bbadcbf94.png">

<img width="1261" alt="テンプレートを探す02.png" src="https://qiita-image-store.s3.amazonaws.com/0/15114/64b96558-f323-3f45-9844-0c6616b4389a.png">

テンプレートを選択し「公開情報」をクリックすると詳細情報が表示されます。
発行者、使い方、利用条件などをよく確認しましょう。

<img width="914" alt=テンプレートの公開情報.png" src="https://qiita-image-store.s3.amazonaws.com/0/15114/6d71494a-ee06-3f2a-9ec3-e47421591a53.png">

「公開情報」に問題がないことを確認したら、「仮想マシン作成」を選択します。
「ゾーン」から仮想マシンを作成するゾーンを選択し、規約を確認しチェックを入れて、
「仮想マシン作成画面へ」をクリックします。
（[有効化されていないゾーン](http://www.idcf.jp/cloud/faq/mzn_001.html)、[テンプレートがコピーされていないゾーン](#テンプレートをコピーする)は選択できません。）

<img width="913" alt="テンプレートから仮想マシン作成01.png" src="https://qiita-image-store.s3.amazonaws.com/0/15114/4011c455-89de-6354-2737-080b73a95dce.png">

おなじみの仮想マシン作成画面に遷移します。
ここからは通常仮想マシンを作成する場合と同様です。
マシンタイプやマシン名を設定して仮想マシンを作成します。

<img width="771" alt=テンプレートから仮想マシン作成02.png" src="https://qiita-image-store.s3.amazonaws.com/0/15114/be0092f2-6a75-6200-4ede-83da148c824e.png">

## テンプレートを公開する

マイテンプレートを他のユーザーに公開することができます。
自慢のテンプレートを公開してたくさんのユーザーに使ってもらいましょう。

公開方法を説明する前にいくつか注意点があります。

* 公開したテンプレートは容量の課金が無償になります
* テンプレートを全てのゾーンに対して公開するにはコピーを実行する必要があります
* 公開できるテンプレート数は1リージョンにつき5つまでです
    * コピーされているテンプレートはまとめて1つとカウントします
* 一度公開したテンプレートを非公開に戻すことはできません
    * 公開を停止するには削除する必要があります

公開によって料金が発生することはありませんが、公開してはいけない情報の
入ったテンプレートを誤って公開しないように注意しましょう。

### テンプレートを用意する

まずは、公開するテンプレートを用意します。
作成方法は通常のテンプレートと同じです。
OVAをインポートして公開することもできます。

公開前に一度仮想マシンを作成して問題なく使えることを確認しておきましょう。
例えば、以下の点を確認します。

* パスワードがリセットできるか？
* SSH鍵が仮想マシン作成時に選択したものになるか？
* 仮想マシンからインターネットに接続できるか？
* ホスト名が仮想マシン作成時に設定したものになるか？

OSによっては仮想マシンをそのままテンプレートにすると、正常に動かないことが
あります。現時点で注意できる点をいくつか挙げておきます

* CentOS6.Xでは`/etc/udev/rules.d/70-persistent-net.rules` を消しておく
* CentOS7.Xでは`/var/lib/NetworkManager`、`/var/lib/dhclient` 下のファイルを消しておく

ログやコマンドの履歴も不要であれば削除しておきましょう。

### 発行者情報を登録する

テンプレートを公開するためには、利用者に公開者の情報を示すための情報を
事前に登録しておく必要があります。

アカウント設定から「発行者情報」を選択すると、発行者の一覧が表示されます。
右上の「新規追加」から発行者を追加することができます。
（発行者情報の登録はマスターユーザーのみ可能です。）

<img width="1268" alt="発行者情報登録01.png" src="https://qiita-image-store.s3.amazonaws.com/0/15114/101515dd-5417-7a79-d999-0988f424d015.png">

発行者名、連絡先等を入力し「作成」をクリックします。

<img width="688" alt="発行者情報登録02.png" src="https://qiita-image-store.s3.amazonaws.com/0/15114/fa0905fb-a9c6-3291-97e0-a29efbe575ce.png">

個人の方は「発行者名」や「発行者について」にどのような情報を書けば良いか迷うかもしれません。
特に決まりはないので自由に書いて構いませんが、TwitterやGitHub等のソーシャルアカウントの
情報を書いておくとユーザーからわかりやすいと思います。

* 発行者名
    * ニックネームでOK
* 連絡先
    * メールやTwitterアカウントなどテンプレートについて問い合わせできる連絡先（現在はユーザーに非公開）
* 発行者URL
    * ホームページやTwitter・GitHub等のアカウントのURL
* 発行者について
    * 自己紹介
        * 公開するテンプレートの傾向がわかる情報も書いておくと良いでしょう
            * OS・ディストリビューション、ソフトウェアなど

登録に成功すると、一覧に発行者が追加されます。

<img width="1264" alt="発行者情報登録03.png" src="https://qiita-image-store.s3.amazonaws.com/0/15114/b448630c-e511-c1a7-5e96-64a56a18a862.png">

### テンプレートを公開する

公開したいテンプレートの詳細画面を開き、「公開」タブを選択します。
（テンプレートの公開はマスターユーザーのみ可能です。）

<img width="479" alt="テンプレートを公開する.png" src="https://qiita-image-store.s3.amazonaws.com/0/15114/b9af3c80-238e-d8b1-09cf-c7c2588f92e5.png">

登録した発行者を選択し、公開時のテンプレートの名前、アイコンなどを設定します。

テンプレートを利用するユーザーのために使い方や利用条件を「説明」に書いておきましょう。
会社のHPなど他のページに情報がある場合にはリンクを張っても構いません。

情報を入力したら規約を確認しチェックをいれて「公開する」を押します。
**一度公開すると非公開に戻せないので、念のためもう一度確認しましょう。**

### テンプレートをコピーする

他のゾーンのユーザーがテンプレートを使えるようにテンプレートをコピーします。

**公開したテンプレートは容量の課金が無償になるため、コピーによって料金が上がることはありません。**

「コピー」タブからコピー先のゾーンを選択し「コピーする」をクリックします。

![テンプレートをコピーする.png](https://qiita-image-store.s3.amazonaws.com/0/15114/86792cd1-fc94-f554-f91a-2dcf20caef35.png)

全てのゾーンに対して公開するには、全ゾーンに対して同じ操作を繰り返します。

リージョンが異なる場合はコピーできないので、「エクスポート」タブから一度OVAをダウンロードして、
「テンプレート作成」で対象リージョンにインポートします。

コピーが終わったらコミュニティテンプレートの一覧から公開したテンプレートを選択し、「仮想マシン作成へ」タブで期待通りゾーンが選択できるか確認します。

## 最後に

コミュニティテンプレートについて説明しました。

公開されているテンプレートを使うだけでも便利だと思いますが、
ぜひ自慢のテンプレートを公開して他のユーザーやコミュニティ間での
ナレッジ共有にご活用ください。