読者です 読者をやめる 読者になる 読者になる

VirtualBoxにCentOSを自動で100個入れる方法

その他


仮想化ソフトVirtualBoxCentOSを自動で100個入れる方法の説明です。
最近、不景気でどうにもこうにも世知辛い世の中になっているのでせめて仮想空間だけでも気前よく生きたいってことで、VirtualBoxに自動でCentOSを100個入れてみました。
以下その方法の説明です。

テンプレートとなる仮想マシンVirtualBoxに作成

まずは一つだけテンプレートとなる仮想マシンを作成しておきます。
今回はネットブートなCentOSをインストールして、「sudo yum update」で最新の状態にしておきました。
ネットブートの方法などはこちらの記事を参考にしてくださいませ。
facebookやmixiで有名なSNSを自前でインストールする方法

コマンドライン仮想マシンを作成

VirtualBoxは元がLinux系だったらしくコマンドラインCUI)で制御することが可能です。

$ VBoxManage

テンプレートな仮想マシンの「vdi」ファイルを使いまわして仮想マシンを次々と新規作成していきます。

$ VBoxManage clonevdi --format VDI from.vdi to.vdi

PHPプログラム

自動で仮想マシンを作ってくれるPHPなプログラムは以下になります。
基本的にVBoxManageを使うだけなので、PHP以外な言語でもプログラムを作成できるかと思います。
index.php

<?php
$vmArr = array(
               "vm01",
               "vm02",
               "vm03",
               "vm04",
               "vm05",
               "vm06",
               );
foreach( $vmArr as $vm ){
    mkdir( "{$vm}" );
    exec( " VBoxManage clonevdi --format VDI template_centos64/entos.vdi {$vm}/{$vm}.vdi " );
    exec( " VBoxManage createvm --name {$vm} --ostype RedHat_64 --register " );
    exec( " VBoxManage modifyvm {$vm} --memory 512 --vram 8 --hwvirtex on --cpus 1 --scsi on --scsiport1 {$vm}/{$vm}.vdi " );
    exec( " VBoxManage startvm {$vm} --type headless " );
}
?>

VBoxManageのオプションとかはちょっと詳しくないのでその辺の詳しい説明は「VBoxManageコマンド | VirtualBox Mania」などをを参照してくださいませ。

実行

ブラウザからファイルを叩いてもいいですが、以下のようにコマンドラインでもOKです。

$ php index.php

だいたい1仮想マシンが10分程度で作成されます。
1台 Core i7SSD なマシンを買って研究室でカスタマイズされた仮想マシンを使うといろいろとおもしろいかなぁ〜って思います。
ffmpegOpenCVがインストールされたものなど。
MySQLと連携すれば、新しい新入生が来たときに自動で作成することも可能です。
GSessionなどとも連携すれば、スムーズに行くでしょう。
あとごめんさい。CentOS 100個入れてないです。多分メモリ足らないんじゃないかな(汗

補足

仮想マシンIPアドレスでアクセス設定する方法ですが、下記画像のようにすれば、OKとのこと。



インターネット共有のチェックもいるかも?

参考になる本

はじめてのCentOS5 Linuxサーバ構築編 (TECHNICAL MASTER)

はじめてのCentOS5 Linuxサーバ構築編 (TECHNICAL MASTER)

ゼロからわかる PHP超入門

ゼロからわかる PHP超入門