この投稿は、Nutanix Advent Calendar 2017 の 12日目です。
Nutanix の世界では、2048 ゲームが知られています。
一般的には Prism Element(Web UI)と、VM コンソール(の OS なしブート状態)で 2048 ゲームが起動されますが、今回は Acropolis の機能を利用してゲスト OS でも 2048 ゲームを実行可能にしてみます。
2048 ゲーム
Prism Element では、「Nothing To Do?」から起動できます。
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 ファイルの用意
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 の処理が流れる様子が見られます。
2048 の実行
自動設定されたゲストOSの ntnx ユーザに、ほかの Linux から SSH でログインします。今回の YAML での ntnx ユーザのパスワードは、おなじみの nutanix ふぉーゆーにしてあります。
2048 が起動します。
操作は、vi エディタのカーソル移動とおなじで、h=←、j=↓、k=↑、l=→ です。
ゲーム終了すると、点数が表示されて自動的にログアウトされます。
以上。