ircサーバの構築

環境

インストール

# rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm

/etc/yum.repos.d/epel.repoのenabled=1をenabled=0に変更

# yum --enablerepo=epel install ircd-hybrid
# mv /etc/ircd/ircd.conf /etc/ircd/ircd.conf.org
# cp /usr/share/doc/ircd-hybrid-7.2.3/simple.conf /etc/ircd/ircd.conf
# service ircd start

ViewGitのインストール

本家: http://viewgit.sourceforge.net/

環境

インストール

最新版はhttp://sourceforge.net/project/showfiles.php?group_id=232733で確認する。

# wget http://nchc.dl.sourceforge.net/sourceforge/viewgit/viewgit-0.0.4.tar.gz
# tar vzxf viewgit-0.0.4.tar.gz
# mv viewgit-0.0.4 /mnt/drbd/www/viewgit ※インストールディレクトリは適当に読み替える
# chown apache.apache -R /mnt/drbd/www/viewgit

localconfig.phpの作成

# cd /mnt/drbd/www/viewgit/inc
# mv example-localconfig.php localconfig.php
# vi localconfig.php
適当な名前を付けてgitのリポジトリを指定する
$conf['projects'] = array(
        'base' => array('repo' => '/mnt/drbd/www/git/projects.git'),
);

apacheの設定

# cd /etc/httpd/conf.d/
# vi viewgit.conf
Alias /viewgit /mnt/drbd/www/viewgit

認証の設定とか必要なら適当にlocationとかで書くいて。apacheのリロードを実行

# /etc/init.d/httpd reload

オレオレ証明書をJavaのkeystoreにimportする

on mac

$ sudo keytool -import -file ~/Desktop/server.crt -keystore "/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home/lib/security/cacerts"
Password:
キーストアのパスワードを入力してください:  changeit
所有者: EMAILADDRESS=yam.kazuki@gmail.com, CN=yamkazu.org, O=yamkazu.org, L=Hachioji, ST=Tokyo, C=JP
実行者: EMAILADDRESS=yam.kazuki@gmail.com, CN=yamkazu.org, O=yamkazu.org, L=Hachioji, ST=Tokyo, C=JP
シリアル番号: 0
有効日: Mon May 04 02:27:32 JST 2009 有効期限: Thu May 02 02:27:32 JST 2019
証明書のフィンガープリント:
         MD5:  E3:9E:1F:B7:38:D6:04:C6:21:EB:4E:81:D6:D6:3A:6C
         SHA1: 85:28:6F:4F:72:6D:57:05:92:16:21:01:01:6A:37:FC:70:47:F3:FD
この証明書を信頼しますか? [no]:  yes
証明書がキーストアに追加されました。

GitリポジトリをWebDAV(+https)経由で公開する

色々やったけどこれで出来た。

環境

  • サーバ: CentOS 5.3
  • クライアント: Mac

インストール

# yum -y instal git-core

WebDAVの設定

  • /mnt/drbd/www/gitをwebdavで公開する
  • htpasswdは/mnt/drbd/www/.htpasswdにあるのが前提
  • apachewebdavの環境構築済みであるのが前提
# vim /etc/httpd/conf.d/git.conf
Alias /git /mnt/drbd/www/git
<Location "/git">
    DAV on
    SSLRequireSSL
    AuthType Basic
    AuthName "Git"
    AuthUserFile /mnt/drbd/www/.htpasswd
    <Limitexcept GET HEAD PROPFIND OPTIONS REPORT>
        Require valid-user
    </LimitExcept>
</Location>

設定したら反映

# /etc/init.d/httpd reload

Gitリポジトリの作成

# cd /mnt/drbd/www/git/
# mkdir projects.git
# cd projects.git
# git --bare init
# vim description 
適当にdescriptionを書く
# echo "https://yamkazu.org/git/projects.git" > cloneurl
# printf "[gitweb]\n\towner = Kazuki YAMAMOTO\n" >> config
# chmod +x hooks/post-update
# git update-server-info
# cd ..
# chown -R apache.apache projects.git

クライアントの準備

httpsを使うにはcurlにオプションつけてインストールしないとダメなので、つけてない場合は一度アンイストール。

# sudo port uninstall git-core
# sudo port uninstall curl
httpsアクセスの為の設定
# sudo port edit curl
configure.argsのwithout-sslをwith-sslに変更
インストール
# sudo port install curl
# sudo port install git-core

オレオレ証明書はGIT_SSL_NO_VERIFY=1をつけないと認証が通らない。毎回つけるのが面倒なのでaliasに設定してしまう。

# vim ~/.bashrc
以下を追加
alias git='GIT_SSL_NO_VERIFY=1 git'
認証情報の設定
# vim ~/.netrc
machine yamkazu.org
login <ユーザー名>
password <パスワード>

パーミッションも変更

# chmod 600 ~/.netrc
動作確認
# git clone http://yamkazu.org/git/projects.git
# cd projects
# touch README.txt
# git add README.txt
# git commmit -m "test"
# git push origin master

push出来ているか確認する為、適当な場所でcloneする。

# git clone http://yamkazu.org/git/projects.git
# ls projects

さっきcommitしたREADME.txtがあればOK。

drbdのインストール

on centos5.3

DRBD用のパーティションの作成

# fdisk /dev/sda

このディスクのシリンダ数は 32635 に設定されています。
間違いではないのですが、1024 を超えているため、以下の場合
に問題を生じうる事を確認しましょう:
1) ブート時に実行するソフトウェア (例. バージョンが古い LILO)
2) 別の OS のブートやパーティション作成ソフト
   (例. DOS FDISK, OS/2 FDISK)

コマンド (m でヘルプ): m
コマンドの動作
   a   ブート可能フラグをつける
   b   bsd ディスクラベルを編集する
   c   dos 互換フラグをつける
   d   領域を削除する
   l   既知の領域タイプをリスト表示する
   m   このメニューを表示する
   n   新たに領域を作成する
   o   新たに空の DOS 領域テーブルを作成する
   p   領域テーブルを表示する
   q   変更を保存せずに終了する
   s   空の Sun ディスクラベルを作成する
   t   領域のシステム ID を変更する
   u   表示/項目ユニットを変更する
   v   領域テーブルを照合する
   w   テーブルをディスクに書き込み、終了する
   x   特別な機能 (エキスパート専用)

コマンド (m でヘルプ): n
コマンドアクション
   e   拡張
   p   基本領域 (1-4)
p
Selected partition 4
最初 シリンダ (912-32635, default 912): 
Using default value 912
終点 シリンダ または +サイズ または +サイズM または +サイズK (912-32635, default 32635): 
Using default value 32635

コマンド (m でヘルプ): p

Disk /dev/sda: 268.4 GB, 268435456000 bytes
255 heads, 63 sectors/track, 32635 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes

デバイス Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14         650     5116702+  83  Linux
/dev/sda3             651         911     2096482+  82  Linux swap / Solaris
/dev/sda4             912       32635   254823030   83  Linux

コマンド (m でヘルプ): w
領域テーブルは交換されました!

ioctl() を呼び出して領域テーブルを再読込みします。

警告: 領域テーブルの再読込みがエラー 16 で失敗しました: デバイスもしくはリソースがビジー状態です。
カーネルはまだ古いテーブルを使っています。
新しいテーブルは次回リブート時に使えるようになるでしょう。
ディスクを同期させます。

再起動する

DRBDのインストール

# yum -y install drbd82 kmod-drbd82

DRBDの設定

# vim /etc/drbd.conf
global {
    dialog-refresh 0;
}

common {
  syncer {
    rate 10M;
  }
}

resource r0 {
  protocol C;

  net {
    cram-hmac-alg sha1;
    shared-secret "FooFunFactory";
  }

  on centos01.yamkazu.org {
    device     /dev/drbd0;
    disk       /dev/sda4;
    address    192.168.75.101:7788;
    meta-disk  internal;
  }
  on centos02.yamkazu.org {
    device    /dev/drbd0;
    disk      /dev/sda4;
    address   192.168.75.102:7788;
    meta-disk internal;
  }
}

詳細は

# man drbd.conf

ファイアーフォールの設定

事前に使用するポートで通信できるように設定しておく。

メタデータ領域の初期化

# drbdadm create-md r0
失敗する場合は作り直す

ディスクを初期化するので注意して実行

# dd if=/dev/zero of=/dev/sda4 bs=1M count=1000
# drbdadm create-md r0

DRBDの起動

# /etc/init.d/drbd start
初回実行時にはsyncが走る
# /etc/init.d/drbd status
drbd driver loaded OK; device status:
version: 8.2.6 (api:88/proto:86-88)
GIT-hash: 3e69822d3bb4920a8c1bfdf7d647169eba7d2eb4 build by buildsvn@c5-x8664-build, 2008-10-03 11:30:17
m:res  cs          st                 ds                     p  mounted  fstype
0:r0   SyncSource  Primary/Secondary  UpToDate/Inconsistent  C
...    sync'ed:    4.0%               (195703/203841)M

VMWare ESXi を USBメモリにインストールする

# mkdir /mnt/misc
# mount -o loop VMware-VMvisor-InstallerCD-3.5.0_Update_4-153875.i386.iso /mnt/misc
# tar zxvf /mnt/misc/install.tgz
# bzip2 -d usr/lib/vmware/installer/VMware-VMvisor-big-3.5.0_Update_4-153875.i386.dd.bz2
# dd if=usr/lib/vmware/installer/VMware-VMvisor-big-3.5.0_Update_4-153875.i386.dd of=/dev/sdb bs=1M

/dev/sdb は環境に応じて読み替える。USBメモリ差したあとに/var/log/messagesで/devのどこにあるか確認出来る。

Galileoのプラグイン

3.5M6M7版限定

共通

  1. [help]-[Install New Software...]を選択

WTP

  1. Work withからhttp://download.eclipse.org/releases/galileoを選択
  2. [Web Developer Tools]を選択
  3. 適当に次へ
  4. 再起動
  1. Work withからhttp://download.eclipse.org/releases/galileoを選択
  2. [Java EE Developer Tools]を選択
  3. 適当に次へ
  4. 再起動

Subversive

  1. Work withからhttp://download.eclipse.org/releases/galileoを選択
  2. [Subversive SVN Team Provider (Incubation)]を選択
  3. 適当に次へ
  4. 再起動
  1. [add]でhttp://www.polarion.org/projects/subversive/download/eclipse/2.0/update-site/を追加。
  2. [SVNKit 1.2.2 Implementation (Optional)]を選択
  3. 適当に次へ
  4. 再起動

※Suversion1.5.x系を使っている場合は1.2.2、1.6.x系を使っている場合は1.3を選択

FindBugs

  1. [add]でhttp://findbugs.cs.umd.edu/eclipseを追加
  2. [FindBugs Feature]を選択
  3. 適当に次へ
  4. 再起動

Checkstyle

  1. [add]でhttp://eclipse-cs.sf.net/update/を追加
  2. [Eclipse Checkstyle Plug-in]を選択
  3. 適当に次へ
  4. 再起動

Viplugin

  1. [add]でhttp://www.viplugin.com/を追加
  2. [Statusbar Feature][viPluginFeature]を選択
  3. 適当に次へ
  4. 再起動するまえにviPlugin.licenseをインストールディレクトリ直下にコピー
  5. 再起動

QuickJunit

  1. [add]でhttp://quick-junit.sourceforge.jp/updates/current/を追加
  2. [Quick JUnit Plugin]を選択
  3. 適当に次へ
  4. 再起動

Open External

  1. [add]でhttp://update.eclipsegeek.comを追加

2009/05/01現在使用不可

EGit

  1. [add]でhttp://www.jgit.org/update-siteを追加
  2. [Eclipse Git Plugin - Release Build]から[Eclipse Git Feature]を選択
  3. 適当に次へ
  4. 再起動

QuickREx

  1. [add]でhttp://www.bastian-bergerhoff.com/eclipse/featuresを追加
  2. [QuickREx]を選択
  3. 適当に次へ
  4. 再起動