Vagrant用のバッチファイルを作ってみた

公開日時 作成者 たけコメントする

Vagrant+Virtualboxの環境で、ワンクリックで仮想マシンが立ち上がるというバッチファイルを作りました。作ったのはずいぶん昔なのですが、手直しして公開します。手軽に仮想環境を作りたい人やLinuxを学んでみようと思う人、Vagrant触ってみたけど黒い画面が苦手な人向けになる……といいなぁ。

★機能

バッチファイルを実行するだけで仮想OSが立ち上がります。
CentOS6(32bit、64bit)、CentOS7から選択でき、Vagrantfile は自動で作成されます。

特に用途として想定しているのは複数の初学者に教える講師用です。
昔経験したことがあるのですが、複数の受講者ひとりひとり仮想環境を用意するのはかなり手間でした。各自VirtualboxとVagrantさえインストールしてくれれば後はこのバッチひとつでログイン画面までは飛ばすことができます。

★動作環境

Windows 10 Pro で動作確認していますが、おそらく7でも動くと思います。

★ダウンロード

VagrantAutoSetup

★使い方

  1. Virtualboxをダウンロード&インストール
  2. Vagrantをダウンロード&インストール
    ※インストールディレクトリはデフォルト状態を想定しています
  3. バッチファイル一式をダウンロード&解凍
  4. setup.batを実行
    (IPアドレス、32bit or 64bitなどの設定のためエンターキーを何度か叩く必要はあります)

SSHはVagrantのデフォルトの通りです。IPアドレスはバッチファイルでの案内通り 192.168.33.10 です。
ユーザー名:vagrant
パスワード:vagrant
管理者:root
パスワード:vagrant

★構成と各ファイルの役割

Readme.txt
setup.bat 仮想マシン立ち上げ用
[_files]
├0_setup.bat 初期設定用
├1_start.bat 起動
├2_shutdown.bat 停止
├8_vbguest.bat
│ ※ゲストOSとホストOSのファイル共有ができなくなったときの修正用
├9_destroy.bat 仮想マシン破棄
├startup.sh 初回起動時に実行されるスタートアップスクリプト
├[startup] スタートアップスクリプトの格納ディレクトリ
├[vagrant_log] vagrant実行ログ格納ディレクトリ
└[www] ゲストOSとホストOSのファイル共有用ディレクトリ

仮想マシン上の /var/www と C:\HashiCorp\setup\20160420\www の中身が共有されます。( 2016_0420 の部分は任意の名前にできます)

setup.batを実行すると、_files フォルダの中身をC:\HashiCorp\setup\2016_0420 にコピーし、 0_setup.bat に処理を引き継ぎます。0_setup.bat は C:\HashiCorp\setup\opscode_centos-6.7_chef-provisionerless.box の有無を確認し、なければ落としてきます。
落とし終わればvagrant box add や vagrant up を自動的に実行して仮想マシンを立ち上げます。

初回起動以降は C:\HashiCorp\setup\2016_0405\ 内の 1_start.bat を叩けば起動します。破棄する場合は 9_destroy.bat を実行してディレクトリは消しても構いません。

バッチファイルとか bash はあんまり詳しくないので、あちこちのサイトを参考にさせて頂いています。記述がおかしければ教えてください。
なお、わたしは Docker とか chef もまだよく分かっていません。もしかしたらそっちの方が簡単にできたりするのかも?

★ 参考URL

Windowsにてシェルスクリプトで頑張るVagrant(CentOS)
http://algo13.net/vagrant/
Vagrant 起動時に1回だけ実行するスクリプトを設定する
http://blogs.zealot.co.jp/archives/176
vagrantでmountエラーの解決方法
http://qiita.com/osamu1203/items/10e19c74c912d303ca0b


カテゴリー サーバ

たけ

Web屋さんでWordPressを使ったWebサイト構築やLinuxサーバ構築とかしています。 ラノベ・アニメ好きのインドア派です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA