vagrant + java + tomcat

ローカル環境に vagrant で仮想環境を作り、tomcat 上で java アプリケーションを動かしてみる。今の業務での開発はローカルで開発→検証環境へアップ→リリースという流れが主です。ここで、”ローカルで開発→検証環境へアップ”という部分で、そもそもローカルでも検証環境と同等の状態で開発できたら楽だし手戻り減ります。(ここで手戻りと言ったのは、ほんとごく稀に検証上げたらこの機能が動かない、文字化けしたというケースを聞いたり見たりすることがあるためです)ローカルと検証を同等の環境にし開発を進めるための一歩として、vagrant を使って環境を構築してみます。vagrant については以前記載していますのでそちらを参照ください。

jdk のインストール

以降の環境はすべて仮想環境内での操作になります。まずは java の実行環境を作るために jdk をインストールします。

sudo yum list | grep java
sudo su install java-1.7.0-openjdk.x86_64 java-1.7.0-openjdk-devel.x86_64

ここでは jdk のリストを確認し、インストールを実行しています。完了したら正しくインストールされているか確認しておきます。

java -version

"java version "1.7.0_45""のように表示されればOK。ちなみにJavaは "/usr/lib/jvm/java" にインストールされていますので確認してみてください。

tomcat のインストール

 続いて tomcat のインストールです。  tomcat はダウンロードしそれを解凍します。ダウンロードする際は wget を利用しますが、もしコマンドが使えなければ以下を実行しインストールしておきます。

sudo yum -y install wget

ダウンロードと解凍。

wget http://ftp.jaist.ac.jp/pub/apache/tomcat/tomcat-7/v7.0.53/bin/apache-tomcat-7.0.53.tar.gzomcat-7.0.50.tar.gz
tar -xzvf ~/apache-tomcat-7.0.53.tar.gz
sudo cp -rf apache-tomcat-7.0.53 /usr/local/tomcat

tomcat ユーザを作成し、権限を変更しておきます。

sudo useradd -s /sbin/nologin tomcat
sudo chown tomcat:tomcat -R /usr/local/tomcat/

tomcat のインストールは完了です。

javatomcatのインストールが完了したところで環境変数にそれぞれの設定を追加しておきましょう。tomcat.sh に以下のように記載。

sudo vi /etc/profile.d/tomcat.sh



export JAVA_HOME=/usr/lib/jvm/java

export PATH=$PATH:$JAVA_HOME/bin

export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar

export TOMCAT_HOME=/usr/local/tomcat

export CATALINA_HOME=/usr/local/tomcat

export CLASSPATH=$CLASSPATH:$CATALINA_HOME/common/lib

tomcat の起動スクリプト

最後に起動スクリプトを書けば完了です。

sudo vi /etc/rc.d/init.d/tomcat



#!/bin/bash

#

# Startup script for the tomcat

#

# chkconfig: 345 80 15

# description: Tomcat is a Servlet+JSP Engine.



# Source function library.

. /etc/rc.d/init.d/functions

source /etc/profile.d/tomcat.sh



start(){

    if [ -z $(/sbin/pidof java) ]; then

        echo "Starting tomcat"

        /usr/local/tomcat/bin/startup.sh

        touch /var/lock/subsys/tomcat

    else

        echo "tomcat allready running"

    fi

}



stop(){

    if [ ! -z $(/sbin/pidof java) ]; then

        echo "Shutting down tomcat"

        /usr/local/tomcat/bin/shutdown.sh

        until [ -z $(/sbin/pidof java) ]; do :; done

        rm -f /var/lock/subsys/tomcat

    else

        echo "tomcat not running"

    fi

}



case "$1" in

    start)

        start

        ;;

    stop)

        stop

        ;;

    restart)

        stop

        start

        ;;

    status)

        /usr/local/tomcat/bin/catalina.sh version

        ;;

    *)

        echo "Usage: $0 {start|stop|restart|status}"

esac



exit 0

これで完了です。起動したか確認。

サーバ起動。

sudo service tomcat start

起動したら8080ポートでアクセスしてください。tomcat 画面が出るはずです。

http://192.168.33.10:8080

vagrant で仮想環境構築し javatomcat をインストールし java アプリケーションを動かす環境を整えました。ローカル環境の Vagrantfile のあるディレクトリと tomcat の webappとを同期すれば簡単にデプロイできます。ちなみに jenkins を入れればローカルで CI 環境も実現できますね。