NutanixのSSP（Self Service Portal）再入門（その2）

![image.png](https://qiita-image-store.s3.amazonaws.com/0/84474/d441f906-e9bc-116d-ba5f-ae7020c38577.png)

本記事は、Nutanix Advent Calendar 2018，2枚目の24日目、12月24日分としての投稿になります。
https://adventar.org/calendars/3174

**本記事の内容は、この日付時点の情報（AOS 5.10/Prism Central 5.10）に基づいています。そのため，今後新しいバージョンが提供された場合に，当該記載と矛盾が生じる場合がありますのでご注意ください。**

#はじめに
この記事ではNutanixをシステム管理者以外のユーザーとして利用する際に利用可能なセルフサービスの機能であるSSPについて、[NutanixのSSP（Self Service Portal）再入門（その1）](https://qiita.com/hanakara_milk/items/4491c26a58402135868f)で改めて紹介してきましたが、その続きとなります。

前回、その1ではSSPの成り立ちや概要までを紹介してきましたが、今回その2では実際にSSPをどのように利用していくのか、特にVM回りの操作が中心となるSSPにおいて、ユーザーがSSPを利用するにあたってシステム管理者が何をしなければいけないのか、またシステム管理者とSSPユーザーでVMの作成、削除、更新、参照（利用）の操作がどのように違うのかを中心に紹介していきます。

#SSPユーザーがSSPを利用してVMを操作するために必要な準備
前回、その1では、システム管理者が行うべき準備の中で、主にSSPの環境全般の準備について触れてきました。ディレクトリサービスを利用したユーザーの認証設定やSSP管理者、プロジェクトの作成やプロジェクトが利用可能なインフラストラクチャの設定などです。もう一度おさらいしておくと、SSPの利用に当たってシステム管理者は以下の準備が必要です。

* ディレクトリサービスの設定
* SSP管理者の設定
* SSPユーザーの設定
* プロジェクトに所属するSSPユーザーのためRBACの確認又は設定
* プロジェクトの作成とユーザーの設定及び利用可能なネットワークリソースの設定
* プロジェクトのクォータの設定
* カタログの準備

今回、その2ではSSPにおけるSSPユーザーのVMの作成、削除、更新、参照（利用）を中心に紹介していく訳ですが、次に特にこの操作において非常に重要な位置付けとなるカタログの準備についてもう少し詳細な解説を行っていきます。

##カタログについて
カタログは、SSPのみで登場する概念で、SSPを利用せずPrism ElementやPrism Centralをシステム管理者のみが操作する場合には利用されることはありません。カタログは一言で言ってしまうと、SSPユーザーのためのVMのテンプレートやISOディスクイメージ置き場となります。すべてのSSPユーザーは、このカタログを通じてVMの作成を開始します。IaaSと言う視点で見ると、AWSで言うところのAMI、Azureで言うところのAzure Imageに近しいものとなります。

通常、Prism ElementやPrism Centralをシステム管理者で利用する場合は、VMの作成方法は複数の方法を選択できます。最もオーソドックスなのは、NutanixのImage Serviceを利用して、Image Serviceに登録されているISOファイルをVMにマウントし、VMをスクラッチでインストールしていく方法ですが、それ以外にも以下のような方法でVMを構成することができます。

* Image Serviceに登録したOSインストーラーISOからのVMのスクラッチ作成
* Image Serviceに登録したディスクイメージからのVM作成
* 既存のVMからのクローン（及びクローン時のカスタマイズ）
* スナップショットからのリストア時のクローン（及びクローン時のカスタマイズ）
![image.png](https://qiita-image-store.s3.amazonaws.com/0/84474/b8c1e0ab-03f2-0e8b-8bbc-2a2132050486.png)

それとは異なりSSPユーザーがVMの作成を開始する際に利用可能なリソースはカタログのみとなっています。そのためカタログに登録されていないVMテンプレートやISO、ディスクイメージに含まれるOSやVMについては一切、作成するこはできません。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/84474/bb4ad7a5-fe38-f293-da0b-f78e9b794399.png)

AMIやAzure Imageと運用面で大きく異なるところは、SSPユーザーは、一切カタログへの登録を行うことができないところです。AMIやAzure Imageはユーザーが独自のカスタムAMIを登録したりすることが可能ですが、SSPにおいてカタログへの登録行為が可能なのはPrism Centralのシステム管理者かSSPの管理者（SSP Admin）のみです。

##カタログの作成スキーム
上記のとおり、カタログ作成はPrism Centralのシステム管理者かSSPの管理者（SSP Admin）のみが可能ですが、実際カタログの登録は以下のような形で行います。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/84474/d7a37f21-ce12-bd35-1d44-9d31043681e0.png)

このように、カタログの追加はPrism Centralのシステム管理者またはSSP Adminのみ可能で、SSPユーザは、唯一権限次第で、Image Serviceに好みのイメージを追加することだけは可能ですが、Image Serviceからのカタログ追加は、Prism Centralのシステム管理者またはSSP Adminに依頼して行う必要があります。

ともすると大きな制約にも見えますが、IaaSにおいてシステム管理者の許可したイメージのみを利用可能とする思想から、このような形をとっています。そのため、運用開始するに当たってまたは運用開始後にSSPユーザーが個別に利用したいカタログを追加する場合では、多少面倒でも以下のようなステップを踏む必要があります。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/84474/739f2f7f-726f-0007-7fe9-60c34f89e5a7.png)

##カタログに登録可能なイメージの種類
その1でも触れているとおりカタログにはVMのテンプレートやディスクイメージだけでなくOSインストール用のISOファイルも登録可能で、SSPのカタログに登録可能なイメージを以下のとおりです。

- VMテンプレート
- ディスクイメージ
- ISOイメージ

この3つは単にイメージの種類が異なると言うだけではなく、SSPユーザーがVMを作成する上において、選択したイメージの種類によってVM作成の操作が大きく異なります。SSPユーザーの視点で見ると、VMをどのような形で構成したいかによって、選択するイメージが異なってきます。

VMテンプレートを利用すると最も短時間でVMを作成し利用を開始することができますが、SSPユーザーが自分好みにVMの構成をカスタマイズしたい場合にはVMテンプレートは向いていません。そのため、そういった場合には、ISOイメージを選択してフルスクラッチでOSのイニシャルインストールから開始します。

パブリッククラウドのIaaSなどでは、主にひな形からの利用のみを許可することで、一定の制約はあるものの、より手軽にそしてシンプルに利用することを前提としていますが、パブリッククラウドなどにおいて、よりステートレスにVMに状態やデータをあまり持たせないアプリケーションの作りを前提としているに対して、オンプレミスの製品ではどちらかと言うとVMを永続的に利用する傾向があるため、NutanixのSSPでは少しオンプレミス寄りなインフラストラクチャ利用を想定してISOからのOSインストールについても可能としています。この辺は、どちらが良い・悪いではなく思想の違いやオンプレミス、Nutanixの利用者傾向などによる違いと考えておけばよいでしょう。

##カタログ追加・作成操作
ここから、カタログの追加や作成の操作について見ていきます。ここまで何度もお話しているとおり、このカタログ操作はPrism Centralのシステム管理者かSSPの管理者（SSP Admin）で行います。今回は、SSP Adminで操作を行っていきます。SSP（Prism Central）にSSP Adminでログインします。左上の横棒が4本並んでいるメニューで`Virtual Infrastructure > Catalog Items`を参照するとこの時点ではまだカタログには何も登録されていません。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/84474/6611882e-3bbd-5569-ed6c-9594ab72e8dd.png)

ここでは、最もSSPユーザーが簡単にVMを利用可能なVMテンプレートをカタログに登録していきます。左上の横棒が4本並んでいるメニューボタンで`Virtual Infrastructure > VMs`を参照し、ひな形とするVMを選択するためにVMの一覧を表示します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/84474/5387fb99-be19-212a-f15a-ed854d722aaa.png)

ひな形となるVMを選択してVMの詳細画面を表示し、`... More > Add to Catalog`を選択するか、またはVM一覧画面でチェックボックスにチェックを入れて、`Action > Add to Catalog`を選択します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/84474/db97bbdd-af84-8f99-9ee3-ac30b62dfaa9.png)

ここでカタログに登録する際の名称やカタログの説明を記載しておきます。これでSaveホタンを押して保存することで、すぐにSSPユーザーが利用可能なVMテンプレートをカタログに登録することが可能です。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/84474/73ece6f1-5cc6-d823-7ed1-d3705a906715.png)

しかし、もう少し詳細にカタログの制御を検討する場合SSPの管理者としての操作は、他の多くのIaaSと同様に少し手間が必要となります。VMのテンプレート、ひな形を利用するに多くのケースで見られるのが、VMの汎用化（Generalize）です。もっと分かりやすい言葉で言うのならWindowsで言うところのsysprepやLinuxでVMの汎用化によく利用されるCloud initなどに代表されるスクリプト処理などです。VMのホスト名やログインユーザー名等について、特にユーザー個別のカスタマイズの必要性がない場合は不要な処理ですが、SSPユーザーごとにログインユーザー名やパスワードを変更したいと言った場合には、これらVMの汎用化を行います。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/84474/5704493e-b2a7-458a-9b9e-58d8667e69c8.png)

現在、登録しようとしているのはWindowsのVMテンプレートですが、例えばLinuxのVMをテンプレート化する場合にCloud initを利用する場合や既に存在するスクリプトを利用する場合は、以下のような画面で管理が可能です。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/84474/265436b6-16d1-be0e-4882-972d59c36b0f.png)

**<font color="Red">残念なことに、今日時点で言語環境等の問題やSSPのバージョン（Prism Centralのバージョン）によって、こちらのVMの汎用化がうまく動作しないことが確認されていますのでご注意下さい。</font>**

今回は、VMの汎用化を行わずにカタログ登録するためSaveボタンを押してカタログを追加します。左上の横棒が4本並んでいるメニューで`Virtual Infrastructure > Catalog Items`を参照すると以下のように先ほど登録したVMテンプレートが表示されています。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/84474/dcc0be9f-093f-2ced-8d04-32403ac73a1f.png)

ディスクイメージの登録やISOファイルの登録もVMテンプレートと基本的には考え方は変わりませんが、既にVMが構成されているものをひな形として登録する場合と異なり、Image Serviceから単に登録操作を行うのみとなります。左上の横棒が4本並んでいるメニューで`Virtual Infrastructure > Images`を参照し、カタログに追加したいISOファイルやディスクイメージのチェックボックスにチェックを入れ、`Actions > Add Image to Catalog`の操作でイメージをカタログ追加できます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/84474/64094717-ceca-ba2c-8eb7-a581e1202748.png)

ここまで完了すると、SSPユーザーがSSPにログインして、セルフサービスでVMを作成したり、作成したVMの利用や構成変更などが可能になります。

#まとめ
ここまでで、SSPの利用において非常に重要な位置付けにあるカタログの概要やカタログ登録方法について見てきました。

* SSPユーザーは常に「カタログ(Catalog Items)」に登録されたデータからのみVMを作成することが可能
* 逆説的に言うのならカタログにさえ追加しておけば、ISOであろうがディスクイメージであろうが、VMテンプレートであろうが扱える
* IaaSにおいてシステム管理者の許可したイメージのみを利用可能とする思想
* カタログの追加はPrism Central AdminまたはSSP Adminのみ可能
* SSPユーザはImage ServiceにISOやディスクイメージの追加は可能だがカタログには追加操作ができないためカタログ追加依頼をAdminに依頼する

少し冗長な記載もありますが、カタログの考え方はSSPを理解する上で重要であるため、少し時間を割いて解説してきました。カタログの位置づけを理解することで、システム管理者としては、SSPの利用開始のために何を準備すれば良いのか、また運用開始後も引き続き行うべき作業は何かを理解し、一方でSSPのユーザーは、システム管理者としてPrism CentralやPrism Elementを利用していた場合と違い、非常に限定された操作やリソースからのみVMを作成可能であると言ったことを理解することで、SSPをスムースに利用することができるでしょう。

Nutanix Advent Calendar 2018の中では完結できませんでしたが、次回の、その3では、カタログの追加が終わったところでSSPユーザーでSSP（Prism Central）にログインし、システム管理者との画面の見え方の違いや実際にVMを作成していく操作について見ていきます。

#POST SCRIPT
普段、仕事の関係上、基本的にシステム管理者としてPrism CentralやPrism Elementを利用することがほとんどであるため、恥ずかしい話しですがSSPユーザーのカタログを中心としたVMの操作を理解するまでに時間を必要としました。しかしNutanixだけでなく、パブリッククラウドのIaaS（AWSやGCP）等を利用することで、SSPの思想や考え方をより理解できるようになったと感じている今日この頃です**（個人の感想です）**。

さて、明日も私の担当分ですが、ここまでのAdvent Calendar担当回では基本的にSSPやKarbonなどプロダクトを中心とした内容ばかりで、Nutanix Community Editionを題材にした投稿がないため、明日は、NutanixのSSP（Self Service Portal）再入門（その3）ではなく、少し趣を変えて「Nutanix Community Edition用の機材について考えてみた2019年版」的なものを書いてみたいと思っています！（すいません、時間なかったらSSPのその3になってるかも）