root権のない一般ユーザーでも開発環境でCI(Jenkins/PHPUnit/Phing)してみたい (前編)
JenkinsやPHPUnitやPhingの導入についてのありがたいまとめはいっぱいあります。
世の中のJenkins/PHPUnitのインストール情報はroot権ある人用 (当たり前)
レガシーな開発環境にはPHPUnitなんぞ入ってなかったりします。
そのわりにポートはしっかり閉じられててJenkins起動しても8080で接続できないとか。
- 仕方ないのでローカルのWindowsPCにJenkinsとか入れて、レガシーコードの方をWindowsPCに落としてきたけどまともに動かない
- しょうがないのでサンプルスクリプトでちょこっといじって終了
一般ユーザー権だけでJenkins/PHPUnit/Phingしたい
でも実際に業務で触ってるものに対してPHPUnitでテスト書いて、JenkinsとPhingでCIしてみたい。
sudoできる人たちに「努力の方向が間違ってる」といわれそうですが。
でもいいんです。持つものには持たざるものの気持ちなど分からんのです。
ということで以下、一般ユーザーでJenkins/Phing/PHPUnitでCIする説明。
Jenkins インストール
落としてきて起動する。簡単。
$ mkdir jenkins $ cd jenkins $ wget http://mirrors.jenkins-ci.org/war/latest/jenkins.war $ java -jar jenkins.war --prefix=/jenkins > jenkins.log 2>&1 & # もしくは nohup java -jar jenkins.war --prefix=/jenkins > jenkins.log 2>&1
ブラウザからアクセス
http://hoge.example.com:8080/jenkins/ (開発環境ドメインがhoge.example.comの場合)
これでJenkinsさんが出てくればOK。出ない場合は↓に続く。
開発環境にポート8080でアクセスできない場合
jenkinsは動いてるのにローカルPCのブラウザからのアクセスが通らない。
ポート閉じられてる場合の対応。
方法1 ポートかえる
あいているポートがあるならJenkins起動時のオプションに --httpPort=XX つけてそっちにアクセスすればいいかも。
やったことない。
方法2 Apacheを通してアクセスする
設定をいじれる場合(.htaccess不可)に限りますが、プロキシしてあげればいけます。
LoadModule proxy_module modules/mod_proxy.so ProxyPass /jenkins http://localhost:8080/jenkins ProxyPassReverse /jenkins http://localhost:8080/jenkins
http://hoge.example.com/jenkins/ にアクセスすればご対面。
方法3 SOCKS Proxyする
個人用のhttpd.confが割り当てられてたりwebサーバー再起動したりできるケースは少ないと思うのでこちらで。
ブラウザからのアクセスをSSHでプロキシしてもらう方法。
と設定して開発環境に接続します。立ち上がったターミナルはそのまま。
この状態で、
http://localhost:8080/jenkins にブラウザからアクセスすればご対面。