なんだこれは

はてなダイアリーから移転しました。

CentOS6 でも Webappsをリモートデバッグしたい

Linux上のTomcat でのWebappsをリモートデバッグするには、

/usr/share/tomcat6/bin/startup.sh を

exec "$PRGDIR"/"$EXECUTABLE" start "$@"

から

exec "$PRGDIR"/"$EXECUTABLE" jpda start "$@"

に変更するらしいのだけれども、CentOS6等で yumを使ってインストールした場合、デーモン(Windowsユーザーにとってはサーバー)仕様でインストールされてしまうため、こういったファイルはない。

それではどうやってするのか、というのを調べていたら、
ubuntuの場合、/etc/default/tomcat6 なるファイルに、

JAVA_OPTS="${JAVA_OPTS} -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"

といったふうに記載するらしい。
CentOS6では /usr/share/tomcat6/conf/tomcat6.conf が該当するファイルのもよう。
あとで試す。

それはいいとして、vagrant/ansibleではどう書くのがいいのかな?

ansible から呼出すシェルスクリプトの羃等性

ansibleから呼出すシェルスクリプトで羃等性を確保するには、実行フラグにあたるファイルをタッチする。

- name: hoge 
  shell: /vagrant/hoge.sh
  args:
    creates: /vagrant/hoge.log
#!/bin/bash
# do hoge as root 


# do something


touch /vagrant/hoge.log


このフラグファイルを共有フォルダ上にして、これで羃等性が一部確保できたが、
Vagrant destroy実行時に削除しなければならなくなってしまう、と悩んでいた。

もっとよい方法はないものかと、聞いてみると、そのフラグのファイルを仮想マシン内におけばよいとのこと。

なるほどー。