2012年10月1日月曜日

gut push でメールをとばす

git push でリポジトリが更新されたときに、commitの内容をメールで送信する方法。


ディストリビューションにもよるが、メール送信スクリプトは
/usr/share/git-core/contrib/hooks/post-receive-email
に普通インストールされていると思うので、これをそのまま使うこととする。

送信には sendmail を使用しているので、まずは sendmail ができるようにならないといけない。


MTA の設定はあまり詳しくないが、、、
とりあえずUbuntu でやってみた。

$ sudo apt-get install postfix
でインストール。
途中で選択肢が出てくるので、「インターネットサイト」を選択。

自宅のマシン場合、特に設定なしでも、そのまま使えた。
以下でちゃんとメールが届けばOK。

$ sendmail my.address@gmail.com
To: my.address@gmail.com
From: my.address@gmail.com
Subject: test
test
.


会社の場合、ファイアウォールの問題で、このままだと配送できなかったので、relayhostを設定。

/etc/postfix/main.cf を編集し、
relayhost のところに中継サーバーのIPアドレスを指定する。
IPアドレスで指定しないといけないみたいなので、
会社からこれを使え、と言われているSMTPサーバ名から nslookup で引く。

$ nslookup my.office.smtp.server
で Address : xxx.yyy.zzz.www
みたいにIPアドレスが返ってくるので、
relayhost = xxx.yyy.zzz.www
と指定するとOK。



sendmail が動くようになったので、続いて git の設定。

/usr/share/git-core/contrib/hooks/post-receive-email
にやり方が全部書いてあるので、この通りやるだけですが。。

post-receive-email に実行権限を与える
$ sudo chmod a+x /usr/share/git-core/contrib/hooks/post-receive-email

設定したいgit リポジトリへ移動
$ cd  /my/git/repogitory.git/hooks

post-receive-email へ post-receive という名前でシンボリックリンクをはる。
$ ln -s /usr/share/git-core/contrib/hooks/post-receive-email post-receive

送りつけたい宛先を config に設定
$ git config hooks.mailinglist "address@you.want.to.send"

とりあえずこれで送信されます。

あと、お好みでやっておく設定

メールのタイトルが 「UNNAMED PROJECT」になっているので、description にプロジェクト名を記載。

送信元アドレス指定
$ git config hooks.envelopesender do_not_reply_this@foo.org

メール最大行数を指定
$ git config hooks.emailmaxlines 500


Ubuntu 12.04 on RAID5 トラブルシューティング

先日の記事
「Intel RST 設定画面の入り方」
「Linuxインストール on RAID5 (Intel RST)」
に書いたやり方で、SSD 4 台でRAID5を組み、Ubuntu 12.04.1 LTS (alternate install)
をインストールして使い始めた。

使って数日目、以下のようなメッセージを出して起動しなくなった。
udevd[164]: inotify_add_watch(6, /dev/dm-1) failed: No such file or directory
udevd[163]: inotify_add_watch(6, /dev/dm-2) failed: No such file or directory
udevd[163]: inotify_add_watch(6, /dev/dm-1) failed: No such file or directory


とりあえず、エラーメッセージで検索してみると、Ubuntu関連でいろいろヒットした。

試行錯誤の後、とりあえず起動するようになった。


(1) 起動直後に、シフトキーを押しっぱなしにして、grub の画面を出す。
(2) 「Ubuntu, with Linux 3.2.*-**-generic (recovery mode)」を選択。
(3) 「Resume」を選択。
(4) デスクトップまで起動する。
(5) このままだと、再起動後、同じ現象で起動しなくなる。
そこで
$ sudo apt-get install cryptsetup
として、再起動すると、ちゃんとブートするようになった。

cryptsetup のインストールは、検索で出てきた通りやってみたら運良く直ったということなので、理屈は理解していません。

2012年9月27日木曜日

自分的 Ubuntu 12.04 LTS を入れて最初にやること

Linuxインストール on RAID (Intel RST)

2012年9月26日水曜日

Intel RST 設定画面の入り方

2012年9月18日火曜日

Linux ハードディスク 障害

2012年9月10日月曜日

Subversion の proxy 設定