NTNX>日記

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

Nutanix CE の 3層で 2048 ゲーム。

この投稿は、Nutanix Advent Calendar 2017 の 12日目です。

Nutanix の世界では、2048 ゲームが知られています。
一般的には Prism Element(Web UI)と、VM コンソール(の OS なしブート状態)で 2048 ゲームが起動されますが、今回は Acropolis の機能を利用してゲスト OS でも 2048 ゲームを実行可能にしてみます。

2048 ゲーム

Prism Element では、「Nothing To Do?」から起動できます。

f:id:gowatana:20171212222044p:plain

VM コンソールでの 2048。

ゲスト OS での 2048 環境は、これから用意します。

今回のテーマ

  • acli を利用する。
  • VM クローンと cloud-init を利用してゲスト OS を設定する。
  • バージョン管理システムを利用する。
  • 2048 を実行する。

手順

テンプレート用 VM の作成

今回は、Oracle Linux 7.4 を利用します。
ちなみに OS は Minimal インストールにしています。

[root@ol74-cloud-init ~]# cat /etc/oracle-release
Oracle Linux Server release 7.4

cloud-init をインストールして、ゲストOSをシャットダウンしておきます。

[root@ol74-cloud-init ~]# yum install -y cloud-init
[root@ol74-cloud-init ~]# cloud-init -v
cloud-init 0.7.9
[root@ol74-cloud-init ~]# sed -i "s/ssh_pwauth:.*/ssh_pwauth: 1/g" /etc/cloud/cloud.cfg
[root@ol74-cloud-init ~]# init 0

YAML ファイルの用意

gist.github.com

YAML を読み込んだ VM クローン

CVM にログインします。そして今回は見やすいようにプロンプトを短く変更しておきます。

nutanix@NTNX-e33635fe-A-CVM:192.168.1.132:~$ PS1='CVM> '
CVM> 

Nutanix CE のCVM はたいていインターネットに接続されているので、今回の YAML は GitHub(Gist)に配置しています。

CVM> curl -s https://gist.githubusercontent.com/gowatana/1584704e51c6c5710a721fe22ad783ef/raw/ntnx-2048-ol7.yml | head -n 5
#cloud-config

disable_root: false
ssh_pwauth: true
package_upgrade: false
CVM>

「acli uhura.vm.clone_with_customize ~」といったコマンドラインで、cloud-init を利用した VM クローンをします。YAML は Gist から直接 HTTPS で取得しています。クローン直後に、acli で VM を起動します。

CVM> acli uhura.vm.clone_with_customize vm2048 clone_from_vm=ol74-cloud-init container=st-container-01 num_vcpus=1 memory=1G cloudinit_userdata_path=https://gist.githubusercontent.com/gowatana/1584704e51c6c5710a721fe22ad783ef/raw/ntnx-2048-ol7.yml
CVM> acli vm.on vm2048
vm2048: pending
vm2048: complete

このクローン処理については、こちらもどうぞ。

VM に割り当てられた IP アドレスも確認しておきます。今回は、Nutanix の IPAM 機能を利用して、DHCP でゲスト OS のネットワーク設定をしています。

CVM> acli vm.nic_list vm2048
Mac Address        IP Address      Network UUID                          Network Name
50:6b:8d:83:68:f2  192.168.13.162  83524fc1-9381-495e-b3b0-0a06d922d2e9  vlan.1013

しばらく待ちます。コンソールを開いてすこし待っていると、cloud-init の処理が流れる様子が見られます。

f:id:gowatana:20171212225226p:plain

2048 の実行

自動設定されたゲストOSの ntnx ユーザに、ほかの Linux から SSH でログインします。今回の YAML での ntnx ユーザのパスワードは、おなじみの nutanix ふぉーゆーにしてあります。

f:id:gowatana:20171212225313p:plain

2048 が起動します。

f:id:gowatana:20171212225253p:plain

操作は、vi エディタのカーソル移動とおなじで、h=←、j=↓、k=↑、l=→ です。
ゲーム終了すると、点数が表示されて自動的にログアウトされます。

以上。