VMwareのコンテンツライブラリを使用して複数環境でテンプレートを共有してみた

#はじめに

vSphere6.0以降には「コンテンツライブラリ」という機能が実装されています。これは、複数のvCenterやクラスターを跨いでテンプレートやISOファイルをまとめて管理し、別環境からでも利用できるようにするという大変優れた機能です。

たまたま環境を増強する機会があり、新しい環境から以前の環境で利用していたテンプレートを利用したいと思いました。しかしテンプレートを既存環境のデータストアから新環境のデータストアに移行させるのも大変です。
そこで、このコンテンツライブラリという機能を用いて既存環境で作成したテンプレートを新環境と共有してみたいと思います。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103277/22046ab4-c119-427d-58f5-c7ffea2c813f.png)



vSphereは両環境で6.5、インフラには[IBM Cloud](https://www.ibm.com/cloud/)を利用しました。
IBM CloudはすぐにVMwareの環境を立ち上げることができるので便利ですね！！

こんなハンズオンもやってるんだ・・・行ってみよう！！(通年で開催しています)
[始めてみよう！「VMware on IBM Cloud」体験セミナー（無償ハンズオン）](https://www.ibm.com/cloud-computing/jp/ja/community/cloud-service.html)


#利用する前に(ネットワークの要件)

要件というほどではないのですが、コンテンツライブラリを同期するためにHTTPを利用してvCenter同士がやりとりします。そのため、ポート443を開けておく必要があります。
また、同期はFQDNを用いて行われるため、**両方の**vCenterのDNSに対向のvCenterのレコードを登録しておく必要があります。



#コンテンツライブラリの作成

まずは**既存環境の**vSphere Web Clientにログインし、ホームの「コンテンツライブラリ」を選択します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103277/102945fe-6ae3-2cc6-fda5-60b231863e70.png)

「新しいコンテンツライブラリを作成します」をクリックします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103277/4395fd0c-8079-a455-bf77-c64c8441c9a4.png)

コンテンツライブラリの名前や詳細、配置するvCenterを入力し、「次へ」をクリックします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103277/2e1cac9f-2ffe-3bcd-cdeb-73c686d66b4c.png)


今回は新規で作成するため、「ローカルコンテンツライブラリ」を選択します。また、別環境から利用するため、「外部に公開」にチェックを入れてください。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103277/bfd095eb-55d4-8abc-69eb-3a2308885a30.png)

次に、ストレージを選択します。ここで注目すべきは、**コンテンツライブラリを作成することで、サーバーのローカルストレージにファイルを保存した場合でもテンプレートやISOファイルを外部に公開し、他の環境と共有できる点**にあると思います。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103277/eea91ebe-8bf8-b03d-32ca-c6111c1dc08f.png)


完了をクリックしてライブラリの作成は完了です！
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103277/fc2cca2b-d8d9-7e01-c19b-e852bfba2571.png)

#テンプレートをライブラリへ追加

コンテンツライブラリが作成できたので、作成したライブラリにテンプレートファイルを追加していきます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103277/378bd8e7-ea69-7f1d-6c88-6e032c1000f3.png)

ファイルの追加は非常に簡単です。Web Clientで「仮想マシンおよびテンプレート」を開きます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103277/c88c33fc-4232-2d8b-7e01-ab53527ea4d9.png)

ライブラリに追加したいテンプレートを右クリックし、「ライブラリにクローン作成」をクリックします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103277/3132b684-d8ee-fd67-c2af-87edaf2e9e6e.png)


先ほど作成したコンテンツライブラリを選択して、完了です。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103277/0fe662a7-ce1d-1510-7066-ca215fcf5f41.png)

##ISOファイルなどの追加

ちなみに、テンプレート以外のファイル(ISOファイル、OVFパッケージなど)をコンテンツライブラリに追加する場合はコンテンツライブラリのメニューから行います。
Web Clientの「コンテンツライブラリ」から作成したコンテンツライブラリを選択して「アクション」->「アイテムのインポート」をクリックします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103277/da2f6f33-7f34-98a6-652b-c448a5a69a92.png)

ファイルのURLを入力、もしくはローカルからアップロードすることでライブラリに追加することができます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103277/ec89e711-8ddc-e7e5-9106-5bed1190c57f.png)


#コンテンツライブラリに追加したテンプレートの利用

では、早速コンテンツライブラリに追加したファイルを利用して仮想マシンを作成してみたいと思います。


##既存環境からの利用

本題に入る前に既存環境からの利用方法ですが、新規仮想マシンの作成時に「ライブラリから仮想マシンを新規作成」を選択することでコンテンツライブラリからデプロイすることが可能です。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103277/f8240765-4cb4-02e1-97aa-f858944e204e.png)


テンプレートファイルを選択し、後は通常の仮想マシンの作成と変わりません。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103277/9c5b2dbc-1e4a-e650-05e5-c91424ddf266.png)

##新環境からの利用

では本題です。既存環境に作成したコンテンツライブラリ内のテンプレートから仮想マシンを作成してみます。
新環境からコンテンツライブラリを利用する場合、既存環境で作成したコンテンツライブラリを読み込む必要があります。

**既存環境**のWeb Clientから「コンテンツライブラリ」で作成したコンテンツライブラリを選択してください。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103277/ecd62d88-734e-bc83-22e7-afe8b2d29f16.png)

「設定」の「サブスクリプションURL」をコピーします。ここに新環境からアクセスすることでコンテンツライブラリを読み込むわけです。そのため、新環境から既存環境にポート443でアクセスすることができる必要があります。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103277/87fb6d60-281a-149b-c33d-98f41a3597d4.png)


では、新環境のvCenterから読み込みます。**新環境の**vCenterにWeb Clientでログインし、「コンテンツライブラリ」を選択します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103277/78360f67-f79d-7fa2-ea69-d31efc2091c8.png)

先ほどと同様に新しいコンテンツライブラリを作成します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103277/d6de3473-cd14-4e63-5deb-0a3943d5809b.png)

新環境ではわかりやすいように名前を「content library 2」としています。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103277/c7997507-bcfc-7614-e5d9-14af057f37be.png)


手順はほとんど同じなのですが、設定時に今回は「購読済みコンテンツライブラリ」を選択し、先ほどコピーしたサブスクリプションURLを入力します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103277/3b0219c5-9d75-d795-4b2c-cc7c509b909f.png)

vCenter間で名前解決ができていない場合は下記のエラーが出る場合があります。新環境のvCenterからこのサブスクリプションURLにアクセスできることを確認してください。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103277/f6d5415e-bed8-9a90-92b5-2a1976bc4635.png)


SSL認証のエラーが出た場合は「はい」を選択します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103277/a8f673e3-bcc4-13fc-3f1a-3a4960d387b9.png)

うまくURLが読み込めた後はコンテンツライブラリを作成するストレージを選択し、作成を完了します。

既存のライブラリから新環境のコンテンツライブラリを作成できました！
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103277/bc4fcb97-227b-6b5b-5ec1-d91f92b640b1.png)

先ほどライブラリに追加したテンプレートが新環境でも表示されています！
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103277/50782f0d-93ed-1ac4-2993-49b5c736c281.png)

このテンプレートを新環境で利用する場合は同期を行う必要があります。
初期設定では自動で同期されますが、同期されていないようであれば「アイテムの同期」を選択し、既存環境との同期を行なってください。(同期されていない場合は「ローカルに保存されたコンテンツ」が「いいえ」になっています。)
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103277/d11976cb-c4dc-96a5-3c4a-1cd069f1113c.png)
ちなみにこの同期は**既存環境のvCenterから新環境のvCenterへの名前解決ができてないとうまくいきません。**
同期がうまくいかない場合はDNSなども確認してみてください。


ではこのテンプレートを利用して仮想マシンを作成してみます。
仮想サーバーの新規作成時に「ライブラリから仮想マシンを新規作成」を選択します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103277/cbb0f0d8-0b10-a435-7cce-705e688ff4bb.png)

先ほどのテンプレートを選択し、場所や名前を設定し、展開します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103277/ebe5b6ea-d79f-569d-eef7-5c674dee036a.png)


仮想マシンが作成されました！
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103277/31f8c875-d04d-1916-edf9-b440971a7360.png)

#まとめ

今回はコンテンツライブラリを利用して既存のテンプレートを新環境から利用し、仮想マシンを作成しました。

テンプレートのファイルやISOファイルをわざわざ共有ストレージに入れたりする必要はなく、ローカルのストレージに置いたまま他の環境と共有できる大変便利な機能です！

是非IBM Cloudで利用してみてください！！