さくらのVPSで動くJenkinsからビルド結果をSkypeで通知することができなかったメモ
さくらのVPS(CentOS6.3)上で動いているJenkinsに設定する。
CentOSにSkypeをインストール
ここを読みながら。
http://wiki.centos.org/HowTos/Skype
Linux版のSkypeは4がstatic版の最新なので、これをインストールする。RPMみたいな軟弱なものはない。※4.1もでてるけどstatic版がないし、いろいろ大変なので現時点では4.0系がオヌヌメ。
あとSkypeのバイナリは32bitなので、各種ライブラリは32bit対応のが必要になってくる。ウエー。
やっぱやめようかな・・・。
とにかく、ここに書いてあるRPMを心を空にしてインストールしていく。。すげー得体のしれないもんがたくさん入るけど気にしない。
yum groupinstall Desktop yum update yum install glibc.i686 nss-softokn-freebl.i686 alsa-lib.i686 libXv.i686 \ libXScrnSaver.i686 libtiff.i686 glib2.i686 libSM.i686 libXrender.i686 fontconfig.i686 yum install pulseaudio-libs.i686 alsa-plugins-pulseaudio.i686
とりあえずこれで全部らしいけど、たぶんかなりダメなんだろうな。32bitのこと何も考えてないでやってるし。
まぁいいとして、次にSkypeを/optにインストールする
cd /tmp wget http://download.skype.com/linux/skype_static-4.0.0.8.tar.bz2 cd /opt tar xjvf /tmp/skype_static-4.0.0.8.tar.bz2 rm /tmp/skype_static-4.0.0.8.tar.bz2 ln -s skype_staticQT-4.0.0.8 skype ln -s /opt/skype /usr/share/skype ln -s /usr/lib/libtiff.so.3 /usr/lib/libtiff.so.4 ln -s /opt/skype/skype /usr/bin/skype
これでSkypeのインストールは終わりだけど、CUI環境で動かすにはもう一工夫いる。
こちらを参考に。
http://d.hatena.ne.jp/moriyoshi/20100926/1285517353
Xvfbとは、その名前のvfbがvirtual framebufferから由来していることからもわかるように、フレームバッファ (画面への出力内容を蓄えておくメモリ) として、ビデオカードを使うのではなく、RAM上に確保した仮想フレームバッファを使うというXの実装です。これを使うことで、CUI環境下でXサーバを簡便に扱うことができます。
ということでXvfbをインストール。
yum install Xvfb
(EE) AIGLX error: dlopen of /usr/lib64/dri/swrast_dri.so failed
アボートしないけど、なんかエラーでてるな。。
調べてみるとmesa-dri-driversを入れればいいらしい。。
yum install mesa-dri-drivers
で起動してみる。
$ Xvfb :20 -screen 0 800x600x8 expected keysym, got XF86TouchpadOn: line 120 of inet expected keysym, got XF86TouchpadOff: line 121 of inet
ちなみにこのXvfbの引数はXのスクリーンIDと
Skypeはかろうじて画面サイズ800x600、ピクセルの深さ8で動作させることができます。
に基づいたもの。
このXvfbコマンドはブロックしちゃうので&つけてバックグラウンドで動かすのでいいのかな。。。man見てもバックグラウンド実行のオプションとかなさそうだし。
で、このXvfbにはVNCでつなぐ。VNC知らんひとはggrk。昔エスイーやってたころはよく使ったなぁ。
x11vncというのがいいらしい。インストール。
yum install x11vnc
で、上記リンク先にすてきな起動スクリプトがあるのでそれを拝借して以下の変更を加える。
- リンク先で指定されているディレクトリを作成
- DAEMON_USERをjenkinsに変更
- さっき作った書くディレクトリのパーミッションをjenkinsユーザー向けに修正
- https://wiki.jenkins-ci.org/display/JENKINS/Skype+Pluginにそうじゃなきゃダメと書いてあるから。。
- USERNAMEとPASSWORDを変更
そしてスクリプトを叩くと起動した。
次にvnc用のパスワードファイルを作る
sudo -u jenkins x11vnc -storepasswd /var/lib/jenkins/conf/vncpassfile
sudo -u jenkins x11vnc -xauth /var/run/skype/Xauthority -rfbauth /var/lib/jenkins/conf/vncpassfile -display :20
これでクライアントからVNCでアクセスすると。。。繋がらない。ポートが開いてなかった。ポートを開ける。その辺は各自で。
で、つながった!
で、話は急転直下して、ここからどうしてもうまくいかない。VNCが落ちると同時にSkype落ちるし、そもそも何をどうしていいのかがよくわからなくなった。
どなたかお優しい方、ご助言ください。冒頭におうちに帰れとか言ったことも反省してます。