はじめに
大量の仮想マシンをvSphere環境上で稼働させるテストをしたり、HCX vMotionで仮想マシンを距離が離れたvSphere環境に複数VM移行をする検証を行なったりする際に、軽量の仮想マシンを利用したいケースがあるかと思います。
今回はその要件を満たすTiny Core Linuxの現行版であるVersion 12.0を利用してOVFテンプレートの作成を行います。
目次
Tiny Core Linux
Tiny Core Linuxは、Linuxディストリビューションの1つであり、大きな特徴は、そのサイズの小ささにあります。Tiny Core Linux 自身(Core)は11MBしかなく、デスクトップ向け Linux としてはもっとも小さい部類に入ります。
実行に必要なメモリも少なくて済む一方で例えばcurl、wget、など良く利用する機能を追加したり、OpenSSHサーバを起動したり、VMware Toolsをインストールする事もできます。
一つのESXi上に大量のVMを起動したいといったケースや軽量の仮想マシンを使ってvMotionをしたいといったケースに正に合致しますね。
Tiny Core Linuxを仮想マシンとしてインストールする
この記事では、Tiny Core LinuxのOVFテンプレートを作成する手順をまとめます。
まず、Tiny Core ISOをこちらからダウンロードします。
仮想マシンに使用した設定は以下の通りです。
項目 | 設定値 |
---|---|
VM ハードウェアバージョン | 11 — ESXi 6.0 以降との互換性 |
ゲスト OS ファミリ | Linux |
ゲスト OS バージョン | その他の Linux 3.x 以降(32 ビット) |
CPU | 1 |
メモリ | 256MB |
ハードディスク | 64MB ※ 仮想デバイス ノードを IDE 0に変更し、 仮想デバイスノードを IDE 0:0に設定 |
CD/DVD メディア | 仮想デバイスノードを IDE 1:0 に変更 |
CD/DVD ドライブにダウンロードしたISOファイルをマウントして仮想マシンを起動します。
WEBコンソールを開き、起動オプションはBoot Core Plus with default FLM topside.を選択しました。
Applications -> tc-installを選択します。
以下の通りの設定を選択して、Proceedをクリックします。(詳細なインストール手順については、こちらのガイドを参照して下さい。)
マウスが動作しなかったのでタブキーとスペースキー、カーソルキーを使ってこの画面まで辿り着きました。。
以下の通り、インストールが完了したので再起動(Crtl + Alt + Delete)をします。
以下の通りDHCPからIPアドレスが取得できています。
tc@box:~$ ifconfig
eth0 Link encap:Ethernet HWaddr 00:50:56:BE:74:CE
inet addr:192.168.80.173 Bcast:192.168.80.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:6815 errors:0 dropped:10 overruns:0 frame:0
TX packets:68 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:437482 (427.2 KiB) TX bytes:11298 (11.0 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
tc@box:~$
まずtcユーザーのパスワードの設定を行います。
tc@box:~$ passwd
Changing password for tc
...
tc@box:~$
次に、必要なパッケージと拡張機能をインストールします。(このタイミングではまだSSH接続できないのでWEBコンソールで手打ちする必要があります。。)
tc@box:~$ tce-load -wi pcre.tcz curl.tcz wget.tcz open-vm-tools.tcz openssh.tcz
onboot パッケージリストは以下のようになります。
tc@box:~$ cat /etc/sysconfig/tcedir/onboot.lst
pcre.tcz
curl.tcz
wget.tcz
open-vm-tools.tcz
openssh.tcz
tc@box:~$
SSH サーバーを設定して有効にします。
cd /usr/local/etc/ssh
sudo cp ssh_config.orig ssh_config
sudo cp sshd_config.orig sshd_config
sudo /usr/local/etc/init.d/openssh start
ここでようやくリモートからSSH接続できるようになり、WEBコンソールでの操作から解放されました!(今回はEC2から接続をしています)
[ec2-user@ip-XX-XX-XX-XX ~]$ ssh tc@192.168.80.173
The authenticity of host '192.168.80.173 (192.168.80.173)' can't be established.
ECDSA key fingerprint is SHA256:.................
ECDSA key fingerprint is MD5:9b:86:fe:76:06:b2:01:0b:30:76:52:05:9e:XX:XX:XX.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.80.173' (ECDSA) to the list of known hosts.
tc@192.168.80.173's password:
( '>')
/) TC (\ Core is distributed with ABSOLUTELY NO WARRANTY.
(/-_--_-\) www.tinycorelinux.net
tc@box:~$
次に、すべての設定を保存し、再起動後も永続化する為に起動スクリプト (bootlocal.sh) に追加します。
sudo su
echo '/opt/interfaces.sh' >> /opt/.filetool.lst
echo '/usr/local/etc/ssh' >> /opt/.filetool.lst
echo '/etc/shadow' >> /opt/.filetool.lst
echo '/opt/interfaces.sh' >> /opt/bootlocal.sh
echo '/usr/local/etc/init.d/open-vm-tools start &> /dev/null' >> /opt/bootlocal.sh
echo '/usr/local/etc/init.d/openssh start &> /dev/null' >> /opt/bootlocal.sh
最後にすべての設定をバックアップします
root@box:/home/tc# filetool.sh -b
Backing up files to /mnt/sda1/tce/mydata.tgz /
これで、仮想マシンを安全に再起動できます。
再起動後、vCenterからIPアドレスとVMware Toolsのバージョンが確認できるようになります。
OVFテンプレートのエクスポート
最後に仮想マシンをシャットダウンして、OVFテンプレートにエクスポートします。
まとめ
仮想マシンとしてインストールするには少しクセがありますが、一回インストールしてテンプレート化してしまえば、軽量で検証の際に非常に有効に利用する事ができます。
i3en.metalの2ホストSDDCをデプロイしてみる(VMware Cloud on AWS)でもこのTiny Core Linuxのテンプレートを利用して大量の仮想マシンを短時間で作成を行いました。