Wildflyを起動するVagrantfile作りました
「さくっとvagrant upでJavaEEアプリ動かせたらいいなー」
という電波をキャッチしたので作ってみました。
作ってみましたと言っても、Chefのコミュニティcookbookを持ってきて使うようにしただけですが :)
以下、使い方です。
CentOS6のBoxファイルを準備
まず、CentOS6のBoxファイルを準備してください。
Boxファイルを持ってない人は @hnakamur2 さんがPackerテンプレートを公開してくださってるので、
PackerとこのテンプレートでBoxファイルを作ってください。
OSXでpackerでCentOS6.4のVirtualBox VMを作成する
GitHub hnakamur/my-packer-template-files
僕はCentOS6.5用のテンプレートでBoxファイルを作りました。
vagrant box add
名前はcentos6.5にしておいてください
変えたい場合は、この後git cloneするVagrantfileの config.vm.box
と合わせてください
vagrant box add centos6.5 /path/to/boxfile
vagrnatとプラグインをインストール
vagrant-omnibusはBoxファイルにChefがインストールされているのならインストール不要です。
vagrant-berkshelfは2.0.1以上をインストールしてください。
vagrant-berkshelfは既にオワコンらしいのですが、
vagrant upするだけでコミュニティcookbookを取ってきてプロビジョニングしたい場合、
今のところ他に選択肢がないのかなと思います。
vagrant plugin install vagrant-omnibus vagrant plugin install vagrant-berkshelf --plugin-version ">= 2.0.1"
Windowsをお使いの場合は以下も参照してください。
vagrant-berkshelf 2.0.1がwindows 7 64bitでインストール出来ない問題とその解決法
Vagrantのファイル一式を入手
以下のページに必要なファイルを置いてますので、 git cloneなどで取ってきてください。
Vagrantfileの内容を適宜修正
Vagrantfileにポートフォワーディングされるホスト側のポート番号、メモリやCPUの割り当てを書いています。
必要であれば、自分の環境に合わせて修正してください。
config.vm.network :forwarded_port, guest: 8080, host: 18080
config.vm.network :forwarded_port, guest: 9990, host: 19990
config.vm.provider "virtualbox" do |vb|
vb.customize ["modifyvm", :id, "--memory", "2048"]
vb.customize ["modifyvm", :id, "--cpus", "2"]
end
インストールするJavaを変更する
OpenJDK7やOracle Java7で動かしたい場合はVagrantfileの設定を変更してください。
:java => {
# OpenJDK7
# :install_flavor => "openjdk",
# :jdk_version => "7",
# Oracle Java7
# :install_flavor => "oracle",
# :jdk_version => "7",
# :oracle => {:accept_oracle_download_terms => true}
# Oracle Java8
:install_flavor => "oracle",
:jdk_version => "8",
:oracle => {:accept_oracle_download_terms => true}
}
使用しているコミュニティcookbook
Berksfileを見るとわかりますが、以下のコミュニティcookbookを使用しています。
- java
- wildfly
ただし、opscodeのサイトにアップされているcookbookは少し古いので、
インストールされるソフトが古かったり、自動起動がうまく動かなかったりしました。
GitHubのリポジトリを参照するようにしています。
また、vagrant-berkshelfを使っている関係上、自作のcookbookのパスをBerkfileに定義しました。
source 'https://api.berkshelf.com'
cookbook "java", git: "git@github.com:socrata-cookbooks/java.git"
cookbook "wildfly", git: "git@github.com:bdwyertech/chef-wildfly.git"
cookbook 'base', path: "site-cookbooks/base"
※注意
Windowsを使ってる人は、コマンドラインのgitをインストールし、GitHubへのssh鍵認証が通る状態にしてください。
それが出来ていない場合は、vgrant up時にコミュニティcookbookの取得が出来ずにエラーになります。
vagrant up
vagrant upすると仮想マシンが起動して、JavaとWildFlyのインストールのインストールまで自動で行われます。
ブラウザでWildFlyの管理コンソール(http://localhost:19990) にアクセスすると管理画面が開くと思います。
user: wildfly password: wildfly
以上です。開発する時や、勉強会などで使うと便利かも知れません。
みなさん、良いJavaEE7生活をお送りください!