Nutanix Meetup Hybrid 22.06 にて、Nested Nutanix CE 2.0 と、その環境で一緒に利用すると便利な Nutanix DevStation について紹介しました。
Nutanix CE は、ネスト環境でも構築可能です。 動けばよい程度の Nutanix であれば、物理マシンの場合より簡単に用意できます。
そして Nutanix CE の環境は、製品試用 / Nutanix 連携ツール開発などで利用できます。そこで、今回はツール開発環境である Nutanix DevStation も紹介します。
今回の内容です。
前半) ネステッド Nutanix CE の紹介
ネステッド Nutanix CE とは、仮想マシンに Nutanix CE をインストールするものです。土台となるハイパーバイザーには AHV や ESXi が利用できますが、私の自宅ラボでは ESXi を利用しています。
ネステッド Nutanix CE on ESXi(vSphere)では、下記のように仮想マシンが Nutanix ノードになります。
ネステッド Nutanix CE の利点には次のようなものが挙げられます。
- 仮想マシンにインストールすることでハードウェア差異を吸収できるので、インストールの失敗を減らせる。
- VM スナップショットで環境保全しやすく、特定時点のラボ環境を保持できる。リトライが簡単。
- 少ない物理マシン台数で、3 or 4 ノード Nutanix CE クラスタを作成できる。
ただし、物理サーバには十分なリソース(CPU、メモリ、ストレージ)が必要。 - Nutanix ノードのハードウェア構成(ディスク数/容量、NIC ポート数 など)が自由に構成できる。
ESXi での Nested Nutanix CE 2.0 の環境構築については下記をどうぞ。
ネステッド Nutanix CE の実体は、ゲスト OS が AHV(カスタマイズされた CentOS 7 KVM)の仮想マシンです。物理 Nutanix CE との差異となる、ネステッド環境ならではの構築ポイントをまとめておきます。
仮想スイッチの設定
- プロミスキャス モード & 偽装転送 / MAC ラーニング
- VLAN を利用する場合は、VLAN Trunk(0-4094 など)または 4095
仮想マシンの設定
- ゲスト OSの種類: CentOS 7 (64 bit)
- vCPU: ハードウェア アシストによる仮想化をゲスト OS に公開
- disk.enableUUID = True(複数ノードの Nutanix クラスタを構築する場合)
ゲスト OS(AHV)内部での設定
- VMware Tools は VMwareTools-xxxx.tar.gz ファイルからインストール
(open-vm-tools の RPM が AHV パッケージとファイル競合しているため)
PowerCLI を利用できる場合は、Nutanix CE VM を作成する自作スクリプトがあるので、機会があればどうぞ。
ただし、最初の1台を作成したらクローンできるので、スクリプトを作成してみたものの効果は薄いかなと思いました。
ネステッド環境えあれば、手順の要所でスナップショット取得できます。
たとえば、下記のような時点でスナップショット取得やクローン作成をしておくことで、効率よく環境を利用できます。
- 仮想マシン作成(CE 導入前)時点で、クローン or スナップショット取得
- 失敗しやすいポイントの前でスナップショット取得
ネステッド Nutanix CE ユースケースとしては、下記のようなものが挙げられます。
- Prism のデモ / 操作手順体験
- HCI としての VM / ストレージ サービスの操作
(Snapshot / Volumes / Files など) - Prism Central / Prism Central を利用する機能
(X-Play / NKE / Flow / Calm など)
- HCI としての VM / ストレージ サービスの操作
- ツール開発
- 運用チームでの自動化ツール開発
- メーカーでの連携機能開発
ここからは、ツール開発に関連したものを紹介します。
ツール開発をする場合、(Prism Central さえ起動できれば)リソース的にはネステッド Nutanix CE で十分なケースが多いかなと思います。その一方で、各種クライアント CLI や自動化ツールなどの開発環境は、がんばって準備する必要があります。
後半) Nutanix DevStation
Nutanix DevStation とは
Nutanix DevStation は、各種ツールが含まれているコンテナを Visual Studio Code(VS Code)から利用するもので、GitHub で公開されています。ちなみに、DevStation は Nutanix CE に限らず、商用 Nutanix 環境でも利用できます。
Nutanix Dev Station の GitHub リポジトリ
NUTANIX.DEV での紹介ブログ
Microsoft Dev Containers(旧 Remote Containers)が利用されています。
- https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers
- https://containers.dev/overview
Nutanix DevStation のイメージ
DevStation では、Nutanix から提供された設定ファイルをもとに、各種ツールがインストールされたコンテナが起動されます。そして、VS Code からリモート接続されます。
開発者が作成するコードや自動化ツールの構成ファイルなどが含まれる作業用フォルダは、Dev Container 経由で開かれます。
VS Code でエクスプローラを見ると、Dev Container の設定ファイルである「.devcontainer」ディレクトリと、VS Code で編集するコードが含まれることがわかります。
VS Code でターミナルを開くと、コンテナ経由で開かれた作業フォルダがカレント ディレクトリとなります。
DevStation には、現時点では、下記のツールが含まれています。
- Python v3.11.x
- Calm DSL v3.6.1
- Ansible v2.14.3 (pip v7.3.0)
- Terraform v1.4.6
- PowerShell v7.3.3
- Packer v1.8.6
- Kubectl v1.26.2
- Helm v3.11.2
- minikube v1.29.0
- Kubectl-karbon v0.9.6
- OpenShift CLI (oc) v4.12.6
- OpenShift Install CLI v4.12.6
- Clusterctl v1.3.5
- k9s v0.27.3
- Cookiecutter v2.1.1
- GitHub CLI v2.25.1
DevStation の利用方法
DevStation の利用方法の概要です。
事前準備としては、下記が必要です。
- VS Code のインストール + Dev Containers Extension のインストール
- Docker Desktop のインストール
もう少し詳細な DevStation の利用方法にいては、こちらをどうぞ。
Dev Containers Extension は、VS Code の拡張機能としてインストールします。
VS Code で .devcontainer ディレクトリを配置した作業フォルダを開くと、「コンテナーで再度開く」(Reopen in Container)が表示されるので、クリックして VS Code を開き直します。
これで、開発コンテナー(Dev Container)が開始されます。このとき、「ログの表示」をクリックすると、コンテナ起動処理の様子がわかります。
コンテナ イメージのダウンロードやツールのインストールが実施されるので、初回は数分かかります。
コンテナの起動が完了すると、VS Code 画面左下から開発コンテナに接続されていることがわかります。
DevStation の様子
起動された Dev Container の様子です。今回は Windows で DevStation を利用しており、Docker(WSL2)で Debian をベースとした Linux コンテナが起動されています。
PowerShell コンソールの docker コマンドや Docker Desktop の GUI でも、コンテナが確認できます。
ターミナルでは、DevStation に含まれるツールがすぐに利用できます。たとえば、Terraform や Ansible もすぐに利用できます。
kubectl だけでなく、Nutanix Kubernetes Engine(NKE)を操作する kubectl-karbon プラグインも含まれています。
PowerShell Core(pwsh)を起動すると、Nutanix コマンドレット(v2.0)も利用できます。
なんと、OpenShift のクライアント(oc)と IPI インストーラ(openshift-install)も含まれています。
ということで Nutanix CE の環境が用意できたら、一緒に DevStation もどうぞ。
再掲ですが、もう少し詳細な DevStation の利用方法はこちらもどうぞ。
録画
録画はこちら。
以上。