tanacasinoのメモ

what are you waiting for ?

安堂ロイド と Eclipse

どうでもいい話なんですが、今DIGAちゃんの録画で安堂ロイドを見てたら、大島優子Eclipseでプログラムを書いていたのでニヤニヤしてしまったという話。 一瞬しか映らないのでEclipseっぽい!?とおもった瞬間に巻き戻ししてまで見てしまった。。。病気だわ。。。反省。。。

Jenkins と SSH と SELinux に気をつける

Jenkinsチームが提供する rpm パッケージを使用して CentOS 6.4 にJenkinsをインストールし、slaveをSSH経由で起動する場合に、SSHの公開鍵認証で躓いたのでメモ。

先にまとめると

  • rpmでjenkinsをインストールすると jenkinsユーザが作成される
  • jenkinsユーザのホームディレクトリは /var/lib/jenkins なので、 SSHの公開鍵を設定するファイルは /var/lib/jenkins/.ssh/authorized_keys となる
  • SELinuxの設定で、sshd は、/home/USERNAME/.ssh/authrozied_keys にはアクセスできるけど、 /var/lib/jenkins/.ssh/authorized_keysには、アクセス出来ないので、公開鍵認証に失敗する

SELinuxをdisableにしてもいい環境の人はそうすればいい。最近は誰かに謝る必要があるらしい。

CentOS 6.4 に Jenkinsをインストールする方法

slaveや SSH認証の設定

以下を見ればだいたい同じ。

ざっくり概要

  • slaveは jenkinsサービスが自動起動すると困るので chkconfigでオフにする
  • jenkinsユーザのログインシェルは /bin/false になっているので、 /bin/bash にする
  • jenkinsユーザのホームディレクトリ /var/lib/jenkins
  • ログインする側は、 /var/lib/jenkins/.ssh/id_rsa 作っておいておく
  • ログインされる側は、 /var/lib/jenkins/.ssh/authorized_keys 作っておいておく
  • Jenkinsのmaster側WUIから、ノードの管理でノード追加する

公開鍵認証が通るように SELinuxの設定を変更する

設定ファイル /etc/selinux/targeted/contexts/files/file_contexts.homedirs に以下の2行を追記する。

/var/lib/jenkins/.+ unconfined_u:object_r:user_home_t:s0
/var/lib/jenkins/\.ssh(/.*)?      system_u:object_r:ssh_home_t:s0

追記後に、.ssh ディレクトリ以下のファイル等を作れば問題ないんだけど、あとで設定した場合は、以下のコマンドを打っておくべし。

# root権限で実行する
$ restorecon -R -v /var/lib/jenkins

私の環境ではこう設定して直したけど、SELinuxのことがよくわからんので、正しい設定方法が知りたいなぁとか思ったり・・・

Mac OSX で長いジョブが完了した時にnotificationで通知する

忘れるのでメモ。

GitBucketの作業をしている時にwarファイル作るのにantを叩くのだけど、時間がかかるので終わった時に通知したいと思っていた時にできるって記事をみたので助かった。

参考

$ osascript -e 'display notification "Job completed" with title "sbt"';

f:id:tanacasino:20131031225624p:plain

さすがに使うときはスクリプトかaliasにしてないと覚えれない。

$ ./sbt.sh test; osascript -e 'display notification "Job completed" with title "sbt"';

aliasで十分だけど、UbuntuFedoraでも使えると便利なので、スクリプトにしてOSにごとにnotificationできるようにしようかなと考える。

Cygwinの SSHが $HOME/.ssh/config を見てくれない件

表題の通りの自称に遭遇した。 どうも、Windows側の環境変数のHOMEを設定して、cygwinのデフォルトのホームディレクトリでない場所をディレクトリにしている場合に発生する模様。

今のところホームディレクトリを変えてもうまく動かないのはsshだけなので、以下で暫定対処した。

$ mkdir -p /home/USERNAME/
$ ln -sf $HOME/.ssh /home/USERNAME/.ssh