2014-02-16 :-)
_ [NetBSD][jenkins][pkgsrc]Jenkins をインストールしてみた
% cd /usr/pkgsrc/devel/jenkins % cmake install clean clean-depends : =========================================================================== $NetBSD: MESSAGE,v 1.1.1.1 2011/12/08 14:09:25 ryoon Exp $ To use jenkins with apache tomcat, you will need to perform the following steps. Of cource you can run jenkins with builtin winstone web server. 1. Install apache tomcat server, for example apache-tomcat7 # cd www/apache-tomcat7 # make install 2. Set jenkins location to apache tomcat $ sudo vi /usr/pkg/share/tomcat/conf/server.xml Add <Context path="/jenkins" docBase="/usr/pkg/share/jenkins" debug="0" reloadable="true"> </Context> in <Host> tag 3. Set URI Encoding as UTF-8 $ vi /usr/pkg/share/tomcat/conf/server.xml You should have URIEncoding="UTF-8" in <Connector/> tag. For example, you should have the following lines. <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/> 4. Start apache tomcat and access http://localhost:8080/jenkins/ ===========================================================================
ok
tomcat を使うらしいので上の手順どおりに作業する。
終わったら
rc ファイルをコピー。
% sudo cp /usr/pkg/share/examples/rc.d/tomcat /etc/rc.d
/etc/rc.conf に追加
tomcat=yes
起動
% sudo /etc/rc.d/tomcat start Using CATALINA_BASE: /usr/pkg/share/tomcat Using CATALINA_HOME: /usr/pkg/share/tomcat Using CATALINA_TMPDIR: /usr/pkg/share/tomcat/temp Using JRE_HOME: /usr/pkg/java/openjdk7 Using CLASSPATH: /usr/pkg/share/tomcat/bin/bootstrap.jar:/usr/pkg/share/tomcat/bin/tomcat-juli.jar Using CATALINA_PID: /var/run/tomcat/catalina.pid
http://localhost:8080/jenkins/ にアクセスしてみる。
ok
pf
当初は http://localhost:8080/jenkins/ にアクセスしてもつながらなかった。結局 pf で弾いていたからなんだけど
以下その作業ログ
タイムアウト
http://localhost:8080/jenkins/ にアクセスしてみる。
タイムアウトした。
ログを見る。
/var/log にログが見当たらない。
ログはどこだ。
/etc/rc.d/tomcat で以下のように起動している。
tomcat_start() { cd $CATALINA_HOME/logs /usr/bin/su ${tomcat_user} -c "${command} start" }
CATALINA_HOME は /usr/pkg/share/tomcat として定義されている。
移動してみる。
% cd /usr/pkg/share/tomcat/logs
いくつかファイルがある。
% ls catalina.2014-02-16.log host-manager.2014-02-16.log localhost_access_log.2014-02-16.txt catalina.out localhost.2014-02-16.log manager.2014-02-16.log
とりあえず片っ端から見る。
例外が起きてる?
% tail catalina.out at javax.jmdns.JmDNS.create(JmDNS.java:60) at hudson.DNSMultiCast$1.call(DNSMultiCast.java:32) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) at java.util.concurrent.FutureTask.run(FutureTask.java:166) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) at java.lang.Thread.run(Thread.java:722) 2 16, 2014 12:03:57 午前 hudson.WebAppMain$2 run 情報: Jenkins is fully up and running
例外が起きているものの、top を見ると java が起動している。死んでるわけではないらしい。よく分からん。
同じホスト( mogu )から http://localhost:8080/jenkins/ へアクセスしてみる。
起動してた。
ということは jenkins (のウェブサーバー)の待ち受けアドレスをどうにかすればいいのか。
どこで設定してるんだ。
grep してみる。
% cd /usr/pkg/share/tomcat/conf % sudo grep -r Listen * server.xml: <Listener className="org.apache.catalina.security.SecurityListener" /> server.xml: <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" /> server.xml: <Listener className="org.apache.catalina.core.JasperListener" /> server.xml: <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" /> server.xml: <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" /> server.xml: <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
いやー、その Listener は違うっしょ。イベントの受け口としてのリスナでしょ。
分からん。
pkgsrc でインストールしたときのログをちゃんと見てみると...おや?
To use jenkins with apache tomcat, you will need to perform the following steps. Of cource you can run jenkins with builtin winstone web server.
winstone web server is 何
公式に文書があるじゃないか。
Starting and Accessing Jenkins - Jenkins - Jenkins Wiki
The easiest way to execute Jenkins is through the built in Winstone servlet container.
「Jenkins は簡単に起動できる。そう、Winstone ならね。」
ああ、そういうこと。
FreeBSD についての文書もあったのでパクる。
FreeBSD - Jenkins - Jenkins Wiki
待ち受けアドレスとポートはデフォルトで 0.0.0.0 8080 らしいので指定しない。
% JAVA_HOME=/usr/pkg/java/openjdk7 /usr/pkg/java/openjdk7/bin/java -jar /usr/pkg/share/jenkins/jenkins.war --webroot=/usr/pkg/share/jenkins/war --prefix=/jenkins
やはり同じホストからしかアクセスできない。
ということは pf か!
とりあえず pf を停止
% sudo /etc/rc.d/pf stop
別のホストからアクセスしてみる。
ok
動作確認できたので /etc/pf.conf にポート 8080 を追加しておく。
tcp_services = "{ ssh, www, smtp, domain, munin, netbios-ssn, microsoft-ds, 6667, 8080 }"
しかし 8080 は redmine とかでも使っていたような記憶があるから 8080 から変えたほうがいいんだろうなあ。
_ [文書][ドキュメント][マニュアル]文書陳腐化問題
入門者向け文書
右も左も分からない開発者のこと。とする
チュートリアルとか get started 的なものが欲しい。
e.g.
- Getting Started - MinGW
- Clang - Getting Started
- Getting started - Grunt: The JavaScript Task Runner
- Getting Started with Android Studio - Android Developers
- Getting Started with Rails - Ruby on Rails Guides
- Getting Started - The Go Programming Language
- Getting Started with Heroku - Heroku Dev Center
中級者向け文書
右や左は分かるようになった開発者のこと。とする
何が居るだろうか。
- リファレンス?
- 内部構造?
- wiki のような散文?
- デバッグ方法?
e.g.
陳腐化
BSD BoF[ 20131221#p04 ] のときに「翻訳文書がメンテナンスされない」という話題があったけど結局 解は無かったし(無かったよね)、佐藤広生さん(FreeBSD の偉い人) は
「10年ほど観測して、自然発生的に日本語ドキュメントが書かれたりコミュニティが活発になるのを期待するのは無理だと分かった」
と言っていたし、対策として専任のライターをつける と言っていたし。
Ruby も「リファレンスマニュアル刷新計画」(るりまプロジェクト) として体制を作ってるし。
開発者たちが片手間に文書をメンテナンスするのは無理なのか。