NTNX>日記

個人的な趣味による Nutanix Community Edition 日記。Japanese のみですみません。

Nested Nutanix CE と Nutanix DevStation。(Nutanix Meetup Hybrid 23.06)

Nutanix Meetup Hybrid 22.06 にて、Nested Nutanix CE 2.0 と、その環境で一緒に利用すると便利な Nutanix DevStation について紹介しました。

nutanix.connpass.com

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 など)
  • ツール開発
    • 運用チームでの自動化ツール開発
    • メーカーでの連携機能開発

ここからは、ツール開発に関連したものを紹介します。

ツール開発をする場合、(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)が利用されています。

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 の利用方法はこちらもどうぞ。

録画

録画はこちら。

www.youtube.com

以上。

 

©2023 gowatana
クリエイティブ・コモンズ・ライセンスこの 作品 は クリエイティブ・コモンズ 表示 4.0 国際 ライセンスの下に提供されています。