2013-01-01から1年間の記事一覧
G* Advent Calendar 2013の19日目です。Gradleでビルドスクリプトを書いていると、他でも再利用できるタスクや関数が出てくることがあります。ビルドスクリプトの一部をプラグインに切り出すことで、他のGradleプロジェクトで再利用できます。bluepapa32さん…
MuninでJMX経由でJava VMを監視する方法のメモ。 前提 muninが正しく動いていること。 監視対象サーバでmunin-nodeが正しく動いていること。 監視対象サーバでJMXが正しく設定されていること。jconsoleでヒープ状況などが表示されるか確認しておきます。 方…
G* Advent Calendar 2013の5日目です。今日はGradleを開発プロジェクトで使う時に考えることを書いてみます。いわゆるビルド職人の仕事をゆるふわに考えてみたいと思います。対象はJVMベースのWebアプリとバッチアプリとします。記述言語はJavaを想定してい…
gitコマンドからGitHubにアクセスするにはSSHやHTTPSが使えますが、プロキシがアレな環境ではHTTPSを使う場合もあると思います。HTTPSではパスワード認証が必要ですが、GitHubのログインパスワードとは違うものを使う方法に今さら気づいたのでメモしておきま…
ビルドツールのGradleでSSHを使うためのプラグインを作っています。ちょっと前にバージョン0.1.9をリリースしたので、宣伝のエントリを残しておきます。https://github.com/int128/gradle-ssh-pluginこのプラグインの主な用途はやはりデプロイでしょう。アプ…
Linux を使って別の PC に Linux をネットワークインストールする方法はよく知られていますが、Mac OS X を使って別の PC に Linux をネットワークインストールする方法は情報が少ないのでまとめてみました。本稿は Proxy DHCPによるネットワークインストー…
テスト対象コードにスリープが含まれていると、テストに時間が掛かってしまいます。いわゆるスローテストの問題です。そのため、スリープを無害なモックに置き換えることでテストの時間を短くする工夫がよく行われます。Groovyでは meta class でスリープメ…
Spockでテストを書いている時に Closure のコールバックをどうやってテストするか調べたのでメモ。例えば Hoge#process(Closure) というメソッドがあるとします。何かを処理したら結果が Closure に渡される仕様とします。 class Hoge { /** * ほげを処理し…
Jenkinsはジョブを実行するだけでなく、結果を集計する機能にも優れています。Jenkinsには標準でJUnitの結果を集計する機能が付いており、これを応用すると、複数サーバで実行したジョブの結果を分かりやすく表示するといったことが簡単にできます。複数サー…
Active Directory認証を使うと、IDやパスワードを入力せずにWebアプリにログインできるようになります。すなわち、自動的にActive Directoryのユーザとしてログインした状態になります。シングルサインオンにより、利用者の負担を軽減できる、不正利用を抑止…
統合Windows認証という便利な仕組みがあります。これを使うと、IDやパスワードを入力せずにWebアプリにログインできるようになります。Active Directoryのユーザとしてログインした状態に自動的になります。WebサーバがWindowsである必要はなく、Linux上のAp…
Windowsの世界にはActive Directoryという優れた仕組みがありますが、Linuxでもその恩恵を受けることが出来ます。LinuxサーバがActive Directoryと連携することで、以下のようなメリットがあります。 管理者はユーザ情報を一元管理できるので、手間が減る。…
OpenLDAP 2.3以降では slapd.conf の代わりにディレクトリ上で設定を管理する仕組みが用意されています。ずっと前に作ったディレクトリを触っていたら訳が分からなくなったので、自分用メモを残しておきます。 dc=example,dc=com のツリーに通常のディレクト…
RHEL6系のディストリビューション(CentOS, Scientific Linux等)で Apache httpd 2.4.x, PHP 5.4.x を使う場合のメモです。前提条件 Apache httpd は自前でビルドする。 epel を有効化する。 remi を有効化する。ただし、PHP, MySQL のみに使う。 mod_php …
ソフトウェア工学が何を失敗しているかというと、その学問自体の認知度が低すぎることです。 ソフトウェア工学がどのような問題を扱う学問かが知られていない。どのような問題を扱う学問か知られていないので、その問題に直面している人がソフトウェア工学の…
Play for ScalaでJSONを読み書きする方法について書きます。ドキュメントではReads/Writes/Format combinatorsを定義する方法が書かれています。 val customReads: Reads[(String, Float, List[String])] = (JsPath \ "key1").read[String](email keepAnd mi…
Gradleでビルドした成果物をMaven Central Repositoryにリリースする方法を説明します。成果物の公開にあたってはSonatype OSSRHで申請が必要です。こちらのイケメンな記事が大変参考になります。こちらの記事ではMavenを使っていますが、本稿ではGradleを使…
id:mi_kattun / Cookbookを完全にGitで管理するのであれば、サーバにgitやデプロイツールでCookbookをコピーしてchef-solo実行するほうがシンプルな気がするけどChef Serverを使うメリットは何なんだろう。一覧性かな http://b.hatena.ne.jp/entry/d.hatena.…
Chefはリポジトリをバージョン管理する仕組みを持っていますが、チームでの協調作業を考えるとバージョン管理システムを使う方が運用しやすいと考えます。本稿では、GitとJenkinsを使ってChefを運用するための1つのパターンを考えます。以下があることを前提…
動体検知アプリケーションmotionのログをZabbixで監視してみました。参考になりましたら嬉しいです。 基本的な考え方 motionのイベントが発生するとログファイルにJSONを書き出します。そのログファイルをfluentdで監視し、Zabbixに通知します。具体的には、…
ディストリビューションで用意されていないパッケージをデーモン化したい場合、supervisorが便利です。init scriptを書くという面倒な作業をやらなくても簡単にデーモン化できます。それだけでなく、プロセスが終了してしまった場合に自動的に起動したり、一…
以前にはまったので備忘録として。 HTTPSをプロキシする場合はトンネリングとなる*1。 AllowCONNECT でトンネリングを許可するポートを指定する。 <Proxy> を使ってアクセス制御できる。 <Proxy> にはトンネリング先のIPアドレス:ポートを書く。 Deny/Allow を書くと、アク</proxy></proxy>…
開発チームの情報共有にSharePointを使っているケースでは、何かのバッチで項目を追加したいことがあります。例えば、自動テストの結果を記録したり、インスペクションに引っかかったモジュールを記録したりといった使い道が考えられます。SharePointのリス…
(追記) この記事は公開から時間が経っており、内容が古くなっています。本稿では、すでにプライベートなWebサーバを運用している人向けにGitサーバの構築方法を説明します。ひと手間をかけるだけでGitサーバを構成できます。Webサーバがない人はGitHubでプラ…
RHEL系を使っていて、yumで取得できないバージョンのパッケージを使いたい場合、一般に以下の選択肢があります: 他ディストリビューションのSRPMをビルドしてRPMを生成する。 配布元のtar ballをビルドしてRPMを生成する。 配布元のtar ballを /usr/local …
RHEL系で動体検知アプリケーションの motion を構築する手順のメモです。なお、Gentoo LinuxやDebianでは公式パッケージが用意されているのでもっと簡単です。 前提 Scientific Linux 6.3 x86_64 USBカメラが接続されていて /dev/video? が存在する。 /usr/l…
あけましておめでとうございます。元日からさっそくLinuxをインストールしておりますが、今年もよろしくお願いします。さて、DVDを使わずにLinuxをネットワークインストールする方法をメモしておきます。 前提 DVDを使わずにインストールしたい。DVDドライブ…