Vagrantとは
最近は、Vagrantという仮想環境のセットアップを自動化してくれるツールが流行しています。
私も最近触り始めたのですが、これからの開発環境にはなくてはならないと断言できるようなポテンシャルを秘めているツールだと思いました。
昔のようにApacheとMySQLだけがあれば開発できるような時代であれば、そこまで有用ではなかったのかもしれません。しかしながら、昨今では開発を行う上で、DBサーバの選択肢もWebサーバの選択肢もアプリケーションサーバの選択肢も、さまざまなものがあり複雑化しています。
大規模なチーム開発を行う場合、それらの開発環境を構築する手順を各個人にやってもらうと、ちょっとした手順のミスなどにより、プログラムが動かなくなったりします。
さらに、無意識的にプラグインなどを投入するなどして、「私の環境だと動くのに。。。」といった不具合も発生します。
このような問題を、美しく解決してくれるためのツールがVagrantです。
本稿の目的
Vagrantの入門的な内容は、さまざまな記事がありますので、本稿では触れません。
本稿では、「Vagrantでこんなことしたいんだけど?」といったピンポイントな目標に対して、実際に動作するサンプルを記述することで、同じ内容で困っている人の助力になることを目的としています。思いつきベースですが、VagrantのちょっとしたTipsをどんどん追加していきたいと思います。
Tips
Vagrant Tips#1 ローカルにあるboxをVagrantfileから自動的に読み込む
Vagrantfileにて、http経由でboxを取得するのではなく、ローカルに存在するboxや共有サーバなどにあるboxを自動的に取り込む場合のサンプルを記述しました。
詳細はコチラ
Vagrant Tips#2 Oracleのjdkをインストールさせる
Vagrantにopen-jdkではなく、Oracle純正のjdkを自動的にセットアップしたい場合のサンプルを記述しました。
詳細はコチラ
Vagrant Tips#2’ Oracleのjdkをインストールさせる(jdk8系)
jdk8をセットアップしたい方はコチラ
Vagrant Tips#3 rbenvを使ったRuby環境をセットアップする(centos)
いろんなバージョンのRubyを使う必要がある場合には、rbenvが便利です。Vagrantにrbenv&Ruby 2.1.2のインストールを自動的にさせるサンプルを記述しました。
詳細はコチラ
Vagrant Tips#4 puppetのmanifestファイルを階層的に読み込む
vagrantのプロビジョニングにpuppetを利用している場合、default.ppに全てを書くのは嫌ですよね。。。そんな場合には、puppetのmanifestファイルを階層化して目的ごとに管理してしまいましょう。
詳細はコチラ
Vagrant Tips#5 boxのメモリをVagrantfileで変更する(VirtualBox限定)
ProvisionerとしてVirtualBoxを利用している場合限定ですが、VagrantfileにてVMのメモリーをチューニングしたいという場合のサンプルを記述しました。
詳細はコチラ
Vagrant Tips#6 JavaのWebアプリ実行用にTomcat7環境をセットアップする
Vagrant環境にjdkとTomcat7を自動的にセットアップするサンプルを記述しました。
詳細はコチラ
Vagrant Tips#7 Javaのビルド環境としてmaven3の環境をセットアップする
自動的にgitやSVNからプログラムを取得してコンパイルしたいというケースがあるかと思います。Javaではmavenでコンパイルすることがトレンドになっていますので、maven環境を自動的にセットアップするサンプルを記述しました。
詳細はコチラ
Vagrant Tips#8 gitをソースからコンパイルして利用する(centos)
gitの最新版は、yumではインストールすることができないため、ソースから自動的にコンパイルするようなサンプルを記述しました。
詳細はコチラ
Vagrant Tips#9 スクラップ&ビルドできるmysql5.6を構築する(centos)
そろそろ安心して使えるようになってきたMySQL5.6を勉強したい人のために、MySQL5.6を自動的にセットアップするサンプルを記述しました。
ホストマシンからアクセスできるように、MySQLの接続ユーザも作成するようにしています。