Jenkins だけではなく元祖の Hudson にも対応できるようにしておこうと、hudson-dev メーリング リストに参加しました。
まあ Jenkins のメーリング リストに比べると閑散としてますね。
Jenkins だけではなく元祖の Hudson にも対応できるようにしておこうと、hudson-dev メーリング リストに参加しました。
まあ Jenkins のメーリング リストに比べると閑散としてますね。
Jenkins を稼働させているアプリケーション サーバーに比較のため Hudson を追加インストールしたら、Jenkins が Hudson の ${user.home}/.hudson
を見に行っておかしくなっていた模様です。普通は自分のディレクトリ (${user.home}/.jenkins
) が既にあれば、そっちを先に見に行くものだと思うのですが、どこか間違っている気がします。
結局、アプリケーション サーバー側で JENKINS_HOME
を正しいディレクトリに設定して分離には成功しましたが、この挙動は腑に落ちません。
過去記事を調べてみたらブログには書いてなかったことに気づいたので、改めて RAD Studio Plugin を紹介しておきます。
このプラグインの機能は、RAD Studio (Delphi もしくは C++Builder) のプロジェクトを簡単にビルドできるようにするだけです。必要な環境変数の設定は RAD Studio コマンド プロンプト用のバッチファイルから読み取るので、RAD Studio 各バージョンのインストール先をそれぞれ設定しておけば、ビルドに利用するバージョンを選択して、プロジェクトファイルと MSBuild のコマンド スイッチを指定するだけで、ビルドすることができます。もうバッチ ファイルで細工する必要ありません。
もし役に立つと感じたら、フィードバックをいただけるとありがたいです。
先日の RAD Studio Plugin に続き、調子に乗って Tool Labels Plugin を公開いたしました。
このプラグインの機能は、インストール済みツールによりノードに動的にラベルを追加するというものです。ツールのインストール有無によりビルドを実行するノードを限定するのが目的で製作しました。
実を言えば、RAD Studio Plugin の新機能として企画していたのですが、他のツールにも使えることに気づいて、急遽 独立したプラグインに仕立てたものなのですけどね。例えば、RAD Studio XE7 に bds15.0
というラベルを付けておくと、インストール済みノードに動的にこのラベルが付くので、ビルドを実行するノードを限定するのに使えるようになる訳です。
便利だと感じたらフィードバックをいただけるとありがたいです。
Android Emulator でアプリの公開用スクリーンショットを撮ろうといろいろ試してみたのだが、Host GPU を使う設定にすると Android SDK の機能ではどうやっても無理という結論に到達しました。
Host GPU を使わない設定では動作しないアプリだし、高速なエミュレーターの使える x86 版も出せないので、もう残る手段はホスト上に表示されたウィンドウ画像をキャプチャするぐらいしか思いつきませんね。
BSD 系 OS や GNU/Linux 上の racoon を利用して、iPhone 等から IPSec VPN で接続可能にする設定を試行錯誤の末に発見したので公開してみます。(もしうまく接続できなければコメントで質問してください。)
[訂正] 初出時の内容に誤りもしくは不適切な部分がありましたので該当部分を訂正しました。
まず racoon.conf
の remote
ノード指定を次のように書きます。(重要部分は太字で強調してあります。またホスト名や IP アドレスは記述例ですのでお使いの環境に合わせて書き換えてください。)
remote "server"anonymous {
exchange_mode main, aggressive;
my_identifier fqdn "server.example.com";
mode_cfg on;
passive on;
generate_policy on;
nat_traversal on;
proposal {
encryption_algorithm aes;
hash_algorithm sha1;
authentication_method xauth_psk_server;
dh_group modp1024;
}
}
次に sainfo
指定を次のように書きます。(PFS は iOS では使えませんでした。)pfs_group
はお好みで追加してください。筆者は pfs_group modp1024
しか試していません。
sainfo anonymous {
encryption_algorithm aes;
authentication_algorithm hmac_sha1;
compression_algorithm deflate;
}
最後に mode_cfg
を次のように書きます。(auth_source
等はお好みで追加してください。筆者は auth_source pam
しか試していません。)
mode_cfg {
network4 198.51.100.0;
netmask4 255.255.255.0;
dns4 198.18.0.1;
split_network include 198.51.100.0/24;
default_domain "remote.example.com";
}
そしてもう一つ、psk.txt
に次の行を追加してください。
グループ名 秘密鍵
例えば次のような記述になります。
iphone opensesame
iOS の VPN 構成で IPSec を選択して各項目を次のように設定します。
psk.txt
に追加した行のグループ名を指定します。psk.txt
に追加した行の秘密鍵を指定します。以上を設定したら保存して設定完了です。
これは収益をあげる業務ではありませんが、このサイトでも使っている Pretty Permalink Filter を Maven Central Repository にて公開いたしました。
Quercus を使って WordPress を配置する際には、ぜひご利用ください。有償サポートもご相談ください。
せっかく Jenkins が復旧したことなので、このサイトで使っている GlassFish の構成を紹介してみようと思います。
まず GlassFish の「ドメイン」には管理サーバーがあるわけですが、これは表に出していません。管理サーバーとは別にクラスター インスタンスと今回新たに追加したスタンドアローン インスタンスがそれぞれ別の java プロセスで動作していています。それぞれのインスタンスには AJP (mod_jk) 対応のリスナーが追加してあり、フロントエンドの Web サーバーから間接的にアクセスするように設定しています。
結局 3 個の Java プロセスが動いているということになるわけですが、運用の勉強のつもりで動かしているクラスターは、実際にクラスターを組めるほどのインスタンス数がないので、将来的にはスタンドアローン インスタンスに一元化してしまうかもしれません。
GlassFish アップデートで障害発生から止まっていた Alfa.linuxfront.com の Jenkins がようやく復旧しました。
何が問題を起こしていたのかを簡潔に書けば、GlassFish 4.1 のクラスター インスタンスに配置していたために Jenkins が初期化に失敗していたということでした。単一のスタンドアローン インスタンスに配置替えをしたことにより初期化に失敗することもなくなり、ひとまず平常運転に戻れそうです。
不思議なのは、前バージョンの GlassFish 4.0 ではクラスター インスタンスでも動いてたってことなんですよね。4.1 で動作が変わったのでしょうか。