- Date
- 2016-03-19
- Author
Akihiro Uchida
- tags
license
- category
memo
- slug
cla-assiatant
- lang
ja
OSS に contribution を投げていると CLA というやつを求められることがある。
CLA は Contributor License Agreement の略で contribution をプロジェクトが使う権利を明示的にもらうための同意書。
著作権の保有と譲渡 - オープンソースソフトウェアの育て方
あたりがわかりやすい。
重要な仕組みだと思う一方、個人で導入するのは大変そう。いっそサービスでもあれば、作るかと思い数ヶ月、ある日 CLA Assistant を見つけた。
SAP の github チーム が作ったとのこと、大きい企業に CLA 管理が必要というのは納得だが、サービスにする気風は素晴らしい。
このサービスは github の pull request から webhook に反応して CLA 署名の状況を表示したり、署名を求める bot として動く。
CLA は gist で管理されるので、どのバージョンに署名したのかもわかる。集めた CLA の管理は普通に考えると annoying だが、これは github アカウントで署名される、バランスがいい。
CLA の準備についての手間は残るが、そこは止むを得ないところ。そこさえ越えれば個人でもできそう。
ということで取らぬ狸の皮算用、導入して数ヶ月し、導入したのも忘れたところで
pull request が来た。
また同じような仕組みで CLAHub というのもあるよう。
- Date
- 2016-03-05 20:29
- Author
Akihiro Uchida
- tags
freebsd docker
- category
memo
- slug
simple-freebsd-docker-image
- lang
ja
FreeBSD が Docker の Experimental support をサポートしていることに気づいたので試してみました。
jail + ZFS + 64bit Linux compatibility layer を使って、既存の Linux イメージなどを動かせるようです。
2015年6月の 11-CURRENT ぐらいからサポートされてた模様。
FreeBSD 上で動かす方法は Docker on FreeBSD - FreeBSD Wiki や
FreeBSDでDockerを試す - Keep It Simle, Stupid に譲るとして
FreeBSD 上で FreeBSD の Docker イメージを作ってみました。
Docker といいつつ実態はもちろん jail なので FreeBSD のイメージを作って FreeBSD 上で FreeBSD を動かしてもいいわけです。実際 lexaguskov/freebsd や
kazuyoshi/freebsd-minimal といったイメージが Docker Hub 上に既に上がっています。ただ、これらのイメージ作成方法を探しても見つからなかったので、用意してみました。
基本的には jail なので kernel は不要で FreeBSD でのユーザランド相当、
base.txz や lib32.txz とかがあれば動きそうなので、これらを展開して
(展開までに bsdinstall jail とか使う方法とかもあります)
tar で固め直して docker import したら動くイメージが作れるようになりました。
$ mkdir docker-freebsd-10.2
$ fetch http://ftp.freebsd.org/pub/FreeBSD/releases/amd64/10.2-RELEASE/base.txz
$ tar xf base.txz -C docker-freebsd-10.2
$ fetch http://ftp.freebsd.org/pub/FreeBSD/releases/amd64/10.2-RELEASE/lib32.txz
$ tar xf lib32.txz -C docker-freebsd-10.2
$ tar -C docker-freebsd-10.2 -czpf docker-freebsd-10.2.tgz .
$ cat docker-freebsd-10.2.tgz | docker import - freebsd
$ docker run -it freebsd /bin/sh
% freebsd-version
10.2-RELEASE
ただ、この方法は展開したファイルに schg フラグがついていたりして削除が面倒だったり、
Automated build もできない。ということで公式イメージとかがよく使う手 (tar を ADD して展開させる方法) を使って Dockerfile 化。
$ fetch http://ftp.freebsd.org/pub/FreeBSD/releases/amd64/10.2-RELEASE/base.txz
$ fetch http://ftp.freebsd.org/pub/FreeBSD/releases/amd64/10.2-RELEASE/lib32.txz
$ cat Dockerfile
FROM scratch
ADD base.txz /
ADD lib32.txz /
CMD ["/bin/sh"]
$ docker build -t freebsd .
$ docker run -it freebsd /bin/sh
# freebsd-version
10.2-RELEASE
この方法で Dockerfile を github に公開して uchida/docker-freebsd
Docker Hub にも auchida/freebsd で上げてみました。
ただ kazuyoshi/freebsd-minimal はサイズ 4MB 程度なので、もっと中身を削ってサイズは縮められそう。
FreeBSD 上で FreeBSD 動かすなら jail でいいのではという気がしたりしますが、
docker-compose や docker-swarm とかと組み合わせられる点は割とメリットがあると思います。
- Date
- 2015-04-06
- Author
Akihiro Uchida
- tags
FreeBSD
- category
memo
- slug
configure-output-for-periodic-in-freebsd
- lang
ja
FreeBSD では cron から periodic(8) で定期実行タスクが実行され、その結果が root 宛にメールされます。
各 jail 上でのメールを ssmtp でメールサーバに relay するよう設定していましたが、
jail の数が多くなるにつれ、煩わしくなり periodic の設定を調整しました。
man 8 periodic や man 5 periodic.conf をみると、
/etc/periodic.conf で以下の変数を設定することで出力を調整できるようです。
<basedir>_show_success
<basedir>_show_info
<basedir>_show_badconfig
<basedir> の部分は daily weekly monthly security のいずれかです。要は /etc/periodic 以下のディレクトリですね。
periodic から呼び出される {,/usr/local}/etc/periodic/{daily,weekly,monthly,security}/ 以下のスクリプトは notable infomation が無い場合は終了コード 0 となるはずです。
ということで /etc/periodic.conf で以下のように show_success を無効とする設定をいれるようにしました。
daily_show_success="NO"
weekly_show_success="NO"
monthly_show_success="NO"
security_show_success="NO"
periodic コマンドを直接実行し、その出力を見ることで設定結果を確認できます。