Nutanix CE の VM で利用できる Custom Script(cloud-init)で、ゲスト OS で 2048 ゲームが利用できる VM を作成してみます。
この投稿は、以前の Advent Calendar での Oracle Linux 7 編の改良版です。
CentOS 7 のイメージ
あらかじめ、Image Service に CentOS 7 のイメージを登録します。今回は下記からダウンロードできる、 cloud-init が既にインストールされている「CentOS-7-x86_64-GenericCloud-1801-01.qcow2」イメージを利用します。
https://cloud.centos.org/centos/7/images/
CentOS-7-x86_64-GenericCloud-1801-01 という名前で Image Service に登録してあります。
Custom Script で指定する YAML ファイルの内容
今回の cloud-init で利用するスクリプトは下記です。
- ntnx OS ユーザを作成。パスワードは nutanix/4u で、パスワードなし sudo 可能。
- EPEL の YUM リポジトリを登録。epel-release の RPM インストールではなく、cloud-init の yum_repos モジュールを利用してみた。
- EPEL から 2048 ゲーム(2048-cli)をインストール。
- 2048 をカラーモードで起動するエイリアス(2048 -c)を設定。
VM の作成
Prism からでも実施できますが、今回も CVM の acli コマンドを利用します。
今回は、コマンドラインを見やすくするためプロンプトを「CVM>」に変更します。
nutanix@NTNX-e33635fe-A-CVM:192.168.1.132:~$ PS1='CVM> ' CVM>
「centos7-2048」という名前の VM を作成します。GitHub(Gist)に配置してある Custom Script をダウンロードしつつ、VM を作成します。
CVM> acli uhura.vm.create_with_customize centos7-2048 container=st-container-01 num_vcpus=1 memory=1G cloudinit_userdata_path=https://gist.githubusercontent.com/gowatana/8482f33178a7ffb4d8fc4e938ca499eb/raw/ntnx-2048-centos7.yml centos7-2048: pending centos7-2048: complete
Image Service の CentOS 7 ディスクイメージから、VM に vDisk を追加します。
CVM> acli vm.disk_create centos7-2048 clone_from_image=CentOS-7-x86_64-GenericCloud-1801-01 DiskCreate: pending DiskCreate: complete
VM に vNIC を追加します。ここで指定している「vlan.0」ネットワークは、あらかじめ作成してあります。このネットワークは DHCP によるネットワーク設定で、インターネットに接続できるようになっています。(EPEL からの yum install のため)
CVM> acli vm.nic_create centos7-2048 network=vlan.0
作成した VM を起動します。
CVM> acli vm.on centos7-2048 centos7-2048: pending centos7-2048: complete
確認
VM を起動して、cloud-init による自動処理の終了をしばらく待ちます。VM の IP アドレスは、192.168.1.11 が付与されました。
他の Linux から、作成された centos7-2048(192.168.1.11)に、ntnx ユーザで ssh で接続してみます。
[gowatana@client01 ~]$ ssh -o 'StrictHostKeyChecking no' ntnx@192.168.1.11 Warning: Permanently added '192.168.1.11' (ECDSA) to the list of known hosts. ntnx@192.168.1.11's password: [ntnx@localhost ~]$ [ntnx@localhost ~]$ cat /etc/centos-release CentOS Linux release 7.4.1708 (Core)
cloud-init による設定が反映されています。
[ntnx@localhost ~]$ rpm -q 2048-cli 2048-cli-0.9.1-1.el7.x86_64 [ntnx@localhost ~]$ which 2048 alias 2048='2048 -c' /usr/bin/2048
2048 ゲームを起動すると、カラーモードで起動します。
[ntnx@localhost ~]$ 2048
操作は、vi エディタのカーソル移動とおなじで、h=←、j=↓、k=↑、l=→ です。
「q」で途中終了できます。
前回の Nutanix Community Meetup 23 で、やるならせめて CentOS・・・的なことを言ったので CentOS 7 でも試してみました。
Nutanix Community Meetup 23、Nutanix Advent Calendar 2017の参加者、一言説明と賞品のUSBメモリ授与式#Nutanix pic.twitter.com/7g4BJCybgT
— 鼻からミルク a.k.a hana(ry (@hanakara_milk) 2018年1月15日
以上。