Vagrantでjetty開発環境をつくる際の覚え書き
ネットワーク設定
vagranttestディレクトリをつくって初期化する。
$ mkdir vagranttest $ cd vagranttest $ vagrant init $ ls Vagrantfile
初期化するとVagrantfileができるので下記のようにネットワークにブリッジ接続するよう設定(コメントアウト)する。
# Create a public network, which generally matched to bridged network. # Bridged networks make the machine appear as another physical device on # your network. config.vm.network :public_network
vagrantを起動してログインする。
$ vagrant up $ vagrant ssh
iptables で外部からの通信を遮断されているので、ホスト PC から通信できるように全てのフィルタリングルールを削除する。(セキュリティ観点からは必要なポートのみ空けた方がよいが)
[vagrant@localhost ~]$ sudo /sbin/iptables -F [vagrant@localhost ~]$ sudo /etc/init.d/iptables save
OpenJDKとMavenをインストール
vagrant に OpenJDK Development Environmentをインストール
$ sudo yum -y install java-1.6.0-openjdk-devel
Mavenをインストール
$ /tmp $ wget http://ftp.meisei-u.ac.jp/mirror/apache/dist/maven/maven-3/3.1.1/binaries/apache-maven-3.1.1-bin.tar.gz $ tar zxf apache-maven-3.1.1-bin.tar.gz $ sudo mv /tmp/apache-maven-3.1.1 /usr/share $ cd /usr/share $ sudo ln -s apache-maven-3.1.1 apache-maven
/etc/profile に下記を追記する
export M2_HOME=/usr/share/apache-maven export M2=$M2_HOME/bin export PATH=$M2:$PATH
設定を反映させる
$ . /etc/profile
mvnコマンドが使用できるか試す
$ mvn --version
vagrantとホストPCでMavenプロジェクトを共有する
vagranttest ディレクトリはvagrant側の /vagrant にマウントされているので、ここにMavenプロジェクトのディレクトリを置けば共有できる。
例として jettyHello というプロジェクトをgit cloneする。
$ cd vagranttest $ git clone -b jettyHello https://github.com/yamataka548/jettyLesson1.git jettyHello
[vagrant@localhost ~]$ ls /vagrant Vagrantfile jettyHello
mvn jetty:run 実行時にリモートデバッグ接続
mvn jetty:run 実行時、リモートデバッグ接続をポート4000番で受け付けるようにするコマンド引数
[vagrant@localhost ~]$ MAVEN_OPTS="-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=4000,server=y,suspend=y" mvn jetty:run
MySQL設定
rootで入る
$ mysql -u root -p
ユーザー一覧
select Host, User, Password from mysql.user;
データベース作成
example というデータベースを作成
CREATE DATABASE example CHARACTER SET utf8;
ユーザ作成
user1 というユーザを作成。パスワードはユーザ名と同じ。
example データベース内でテーブルを自由に作れる権限を付与。
GRANT SELECT ON *.* TO user1@localhost IDENTIFIED BY 'user1'; GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, EXECUTE ON example.* TO user1@localhost;
その他
mysqlコマンドで下記のエラーが出るときは
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
下記のように mysqld を再起動するといいようだ
$ sudo /etc/init.d/mysqld restart