Redmineのインストール資料

Redmineのインストール資料

すごく丁寧に書かれていて一発でインストールできたのでメモ。

ちなみに…Redmineとは

Redmineはオープンソースのプロジェクト管理ソフトウェアです。

プロジェクトのタスク管理、進捗管理、情報共有が行えます。
SubversionやGitなどのバージョン管理システムとの連携機能も
備えており、ソフトウェア開発やwebサイト制作などのITプロジェクトで
特に威力を発揮します。

※関係者説得用資料(保守派層説得などに)
Redmineとは

■インストール参考ページ(超親切な解説)
Redmine 2.1をCentOS 6.3にインストールする手順

■初期設定(すごくわかりやすい)
Redmineを使い始めるための初期設定

Redmine入門 

ローカル環境のIRCサーバとしてngircdをインストールする

ローカル環境のIRCサーバとしてngircdをインストールする

ircd-hybridをインストールしようとしたけど設定がわからなくて挫折。
この行削除しろとか言われても・・・。
なので簡単そうなngircdをインストールすることにする。

OS:CentOS release 6.3

■普通にyumでインストールする。

# yum search ngircd
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.riken.jp
 * epel: ftp.riken.jp
 * extras: ftp.riken.jp
 * updates: ftp.riken.jp
============================================================================================== N/S Matched: ngircd ==============================================================================================
ngircd.i686 : Next Generation IRC Daemon

  Name and summary matches only, use "search all" for everything.
[root@192 ircd]# yum install ngircd
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.riken.jp
 * epel: ftp.riken.jp
 * extras: ftp.riken.jp
 * updates: ftp.riken.jp
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package ngircd.i686 0:18-2.el6 will be installed
--> Processing Dependency: libident.so.0 for package: ngircd-18-2.el6.i686
--> Running transaction check
---> Package libident.i686 0:0.32-4.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=================================================================================================================================================================================================================
 Package                                             Arch                                            Version                                               Repository                                       Size
=================================================================================================================================================================================================================
Installing:
 ngircd                                              i686                                            18-2.el6                                              epel                                            145 k
Installing for dependencies:
 libident                                            i686                                            0.32-4.el6                                            epel                                             13 k

Transaction Summary
=================================================================================================================================================================================================================
Install       2 Package(s)

Total download size: 158 k
Installed size: 437 k
Is this ok [y/N]: y
Downloading Packages:
(1/2): libident-0.32-4.el6.i686.rpm                                                                                                                                                       |  13 kB     00:00
(2/2): ngircd-18-2.el6.i686.rpm                                                                                                                                                           | 145 kB     00:00
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                                            375 kB/s | 158 kB     00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : libident-0.32-4.el6.i686                                                                                                                                                                      1/2
  Installing : ngircd-18-2.el6.i686                                                                                                                                                                          2/2
  Verifying  : libident-0.32-4.el6.i686                                                                                                                                                                      1/2
  Verifying  : ngircd-18-2.el6.i686                                                                                                                                                                          2/2

Installed:
  ngircd.i686 0:18-2.el6

Dependency Installed:
  libident.i686 0:0.32-4.el6

Complete!

■設定ファイルを一部変更

# cp /etc/ngircd.conf /etc/ngircd.conf.def
# vim /etc/ngircd.conf
# diff /etc/ngircd.conf.def /etc/ngircd.conf
47c47,48
<       Listen = 127.0.0.1 --- >       ;Listen = 127.0.0.1
>       Listen = 0.0.0.0
51a53
>       MotdFile = /etc/ngircd.motd

■ngircdの起動

# /etc/rc.d/init.d/ngircd start
ngircd を起動中:                                           [  OK  ]

インストールから起動まではこれだけでOK。
あとはLimeChatとかIRCクライアントで接続するだけ。
※あくまでローカル内の話しです。

[Global]セクションの「Password」とか「Ports」も設定したほうがいいかも。
あと「MotdFile」も作成して何かした表示用の文字を入れておくほうが
エラーでなくていいかも。

あと良くわかんないけど[Channel]セクションを定義しておくと
接続時に勝手に表示されていい感じ。

■参考URL
IRC初心者がIRCを通知ツールとして使ってみる,または個人的IRC環境のメモ

Jenkinsとかからの通知を目標にするぞ。。

LPIC レベル2 覚えられないコマンドとか色々5

■lvcreate コマンド

lvcreate [オプション] ボリュームグループ名

-L 続けてボリュームサイズを指定
-n 続けて論理ボリューム名を指定
-s スナップショットを指定

-sがサイズと思ってしまって毎度間違う。。。

■debugfsコマンド

debugfs は ext2/ext3/ext4 ファイルシステムの対話的デバッグを行うコマンド

起動すると専用の debugfs シェル画面となり、その中で使える様々なコマンドを使ってファイルシステムを調査・編集することができる。
きめ細かで高度な操作が行える反面、操作には ext2/ext3/ext4 ファイルシステムに対する十分な知識が必要なので、
e2fsck や tune2fs などの便利なコマンドで解決できる場合はまずそちらの利用を検討するべき。

■modprobeコマンド

modprobe コマンドは依存関係を自動的に解決してカーネルモジュールのロード・アンロードが行えるコマンド。

-f 強制的に操作を行う
-r ロードではなくアンロードを行う
-l ロードできるモジュールを一覧表示
–show-depends 指定したモジュールの依存関係を表示

PHPでSelenium2(WebDriver API)を使うための構成

PHPでSelenium2(WebDriver API)を使うための構成

Seleniumを使っての自動テスト環境を作るときに
いつも何がどの役割なのかわからなくなるので構築
方法をメモする。Seleniumの情報に古いのが多くて
結構はまった。

今回は簡易的なところまででJenkinsと連携して
自動ビルド&自動ユニットテスト&自動UIテストとかは
次の話しということで。
そもそもこのやり方がいいのかちょっとわからないです。。。
おかしなところあったら指摘してください。

■今回の構成

◆クライアントPC(実際にUIテストを行なうPC)

OS:Windows7 32bit
ブラウザ:IE9とFirefox16.0.2
Java:1.7.0_09
IP:192.168.1.10

◆サーバ

VMware上で。
OS:CentOS6.3
Webサーバ:Apache 2.2.15
PHP:5.4.8
PHPUnit:3.7.8
Java:1.7.0_09
IP:192.168.1.100

今回の構成ではクライアントPCとサーバの両方でselenium-server
を起動する形式にする。
selenium-serverはこちらのページの「Selenium Server (formerly the Selenium RC Server)」をダウンロードする。

※この時点でのバージョンは2.25.0

↑今回の構成図

サーバ側はSelenium Gridとして動かし分散実行にも備える。
クライアントPC側は役割をwebdriverとし、ハブとして
サーバ側で起動したSelenium Gridを指定して自身をテスト
マシンとして登録する。

■実際の実行手順

①サーバ側にselenium-serverを配置、役割をハブ(Selenium Grid)として実行。
※デフォルトは4444ポートで起動

$ java -jar selenium-server-standalone-2.25.0.jar -role hub

ブラウザでSelenium Gridの確認
http://192.168.1.100:4444/grid/console

②次にクライアントPCにselenium-serverを配置。役割をwebdriverとして起動。このときにサーバを指定。
※パスは読み替えてください。

C:\work>java -jar selenium-server-standalone-2.25.0.jar -role webdriver -hub http://192.168.1.100:4444/grid/register

この状態でサーバ側のSelenium Gridの画面を確認すると
クライアントPCが表示されているはず。

ブラウザでSelenium Gridの確認
http://192.168.1.100:4444/grid/console

ここまで設定を行えばあとはPHPUnitのテストケースで
「PHPUnit_Extensions_Selenium2TestCase」をextendsして
テストケースを作成し、実行を行えばクライアントPCで指定
したブラウザが立ち上がりテストが実行される。

記述方法はPHPUnitのページにあります。

サポートしているメソッドとか、実際の記述方法は
PHPUnit_Extensions_Selenium2TestCase のエンドツーエンドテストを確認してください。

以下実際に動かしたサンプルテストケース(SeleneseTest.php)
※seleniumのページを開いてtitleの内容をチェック。
※setHostに「192.168.1.100」、setPortに「4444」を指定する

class Selenese2Test extends PHPUnit_Extensions_Selenium2TestCase {

    protected function setUp() {
        $this->setHost("192.168.1.100");
        $this->setPort(4444);
        //$this->setBrowser("internet explorer");
        $this->setBrowser("firefox");
        $this->setBrowserUrl("https://www.google.co.jp/");
    }

  public function testMyTestCase()
  {
        $this->url('http://seleniumhq.org/');
        $this->assertEquals('Selenium - Web Browser Automation', $this->title());
  }
}

③テストケースを実行する。

$ phpunit SeleneseTest.php
PHPUnit 3.7.8 by Sebastian Bergmann.

.

Time: 14 seconds, Memory: 1.50Mb

OK (1 test, 1 assertion)

Selenium Grid経由で192.168.1.10のFirefoxが立ち上がりテストが始まる。

これで完了。
クライアントでIE9を使うとエラーが表示されるかもしれない。
こんなやつ↓
「リモートデバイスまたはリソースが接続を受け付けません」
これはブラウザの設定で「ツール」⇒「インターネットオプション」⇒「セキュリティ」で
全部のセキュリティゾーンの設定(保護モード)をそろえればいいということらしい。

Selenium2のInternetExplorerDriverでエラーになった

今回はSelenium Gridとphpunitの実行を同じサーバでおこなったけど
別に一緒のサーバでやる必要はないです。
使えるリソースが無かっただけです。。。。

■参考サイト
Selenium2.0 WebDriverで複数ブラウザのUIテスト もう一度、Selenium再入門
PHPUnit Manual 第17章 PHPUnit と Selenium
Selenium 2.0 と WebDriver
Selenium2.0ってどんなもの?とりあえず動かしてみよう!
Selenium + PHPUnitで簡単エンドツーエンドテストを実現する
Seleniumを使ったWeb UI自動テストシステムの構築でやったことまとめ
Selenium2のInternetExplorerDriverでエラーになった

LPIC レベル2 覚えられないコマンドとか色々4

全部覚えられないとか言ってる気がしてきた。。

■マルチホーム接続

マルチホーム (接続) とは、外部(インターネットなど) へ接続する際に、複数の経路を使って接続すること。
これを行うには、外部へ接続するホストに対して、複数の IP アドレスを割り当てる必要がある。

Linux システムでは、物理的に複数のネットワークインタフェースを用意し、それぞれに IP アドレスを割り当てる方法のほかに、
ひとつのネットワークインタフェースに複数の IP アドレスを仮想的に対応させる方法 (IP エイリアシング) がある。
IP エイリアシングを使い、複数の IP アドレスをネットワークインタフェースに割り当てるには・・・。

# ifconfig eth0:1 IPアドレス

eth0 の後ろに :1 という指定を付け足すことで、コロン (:) の後に続いた別名(エイリアス)に対して新たに IP アドレスを割り当てることができる。
エイリアスは任意の英数字を使えるので、「eth0:lan1」などと指定する事もできる。

■ホスト名に関連した情報を表示するためのコマンド

nslookup DNSでホスト名とIPアドレスを変換
dig nslookupより詳細な情報を表示
hostname 自ホストのホスト名を表示
hostname -d 自ホストのDNSドメイン名を表示
hostname -i 自ホストのIPアドレスを表示
hostname -f 自ホストのFQDNを表示
hostname -a 自ホストのエイリアスを表示

■GRUB Legacyの設定ファイル

/boot/grub/menu.lstの設定パラメータ

timeout メニューを表示している秒数
default デフォルトで起動するエントリ番号
splashimage メニュー表示時の背景画像
title メニューに表示させるエントリ名
root カーネルイメージもしくはOSが格納されているパーティションの指定
kernel カーネルイメージとカーネルオプションの指定
initrd 初期RAMディスクファイルの指定
makeactive ルートパーティションをアクティブ化
chainloader 指定されたセクタの読み込みと実行
hiddenmenu 起動時の選択メニューを表示しない

■GRUB2

設定ファイルは/boot/grub/grub.cfgだけどGRUB Legacyと違い直接編集はしない。
/etc/default/grubで設定を行い、update-grubコマンドで/boot/grub/grub.cfgを生成する。

GRUB2の全体的な設定は /etc/default/grub ファイルに記述する。

カーネルイメージ、ルートパーティションの指定などは /etc/grub.d ディレクトリ内のファイルで行う。

カスタムの設定を記述するファイル内で利用するパラメータ

menuentry 各設定の名前を指定する項目(GRUB Legacy の title に相当)
set root='(hdディスク番号,パーティション番号)’ カーネルイメージや初期 RAM ディスクイメージの含まれているパーティションを指定する項目(GRUB Legacy の root に相当)GRUB Legacy と異なり、パーティション番号は1から数える。
linux カーネルイメージファイルを指定する項目(GRUB Legacy の kernel に相当)
initrd 初期 RAM ディスクイメージファイルを指定する項目(GRUB Legacy の initrd と同様)

■ジャーナリング

ジャーナリングとは、実データをディスクに書き込む前にメタデータを専用の領域に書き込んでおくことで、
不正にシステムが終了してしまいファイルシステム内での整合性がとれなくなってしまう状況を防ぐ機能

ext3/ext4 以外にも ReiserFS, XFS 等、高機能なファイルシステムはジャーナリング機能を持っている。

■初期RAMディスク

初期 RAM ディスクは、システム起動時に仮の環境としてまずメモリ上にファイルシステムを展開し、そこでカーネルを
動作させてから本来のファイルシステムをルートにマウントし直す、といった段階的なブートを実現する機能。

高度な機能を使うにはまずカーネルを動作させる必要があり、仮の環境でまずカーネルを動かして、それから本来の環境をブートさせようという発想。

initrd 形式と initramfs 形式の2種類がある。

○initrd型式

作成方法 mkinitrd 出力ファイル名 カーネルバージョン
展開方法 gunzip initrd.img.gzmount -o loop  initrd.img マウント先

○initramfs形式

作成方法 mkinitramfs  -o 出力ファイル名 カーネルバージョン
展開方法 gunzip initrd.img.gzcpio -id < initrd.img

現在では cpio アーカイブを gzip で圧縮した initramfs 形式の方がよく利用されている。

■RAIDを管理・操作するコマンド

「RAID を管理・操作するコマンド」には mdadm があり、その設定ファイルは
/etc/mdadm.conf

Ping-tがなかなか倒せない。。

LPIC レベル2 覚えられないコマンドとか色々3

作成済みのファイルシステム(デバイス)を引数にとって動作するコマンド

tune2fs ext2/ext3/ext4 の設定を行う
e2label ext2/ext3/ext4 のラベルを操作
dumpe2fs ext2/ext3/ext4 の詳細を表示する
debugfs ext2/ext3/ext4 の対話的デバッグを行う
reiserfstune ReiserFS の設定を行う
debugreiserfs ReiserFS の対話的デバッグを行う
xfs_admin xfs の設定を行う
xfs_info xfs の情報を表示する

■tune2fsコマンド
tune2fs [オプション] デバイス

-c 自動fsckが行われるまでのマウント回数を設定
-i 自動fsckが行われるまでの時間を設定
-j ext2をext3に変換。ジャーナリング機能を付与
-l スーパーブロックの内容を出力
-L 続けて指定した名前でラベルをつける

■mkreiserfsコマンド
RaiserFSファイルシステムを作るコマンド
mkreiserfs [オプション] デバイス

-b 続けてブロックサイズをbyte単位で指定
-l 続けてボリュームラベル名を指定
-j 続けてジャーナルのファイル名を指定
-s 続けてジャーナルのサイズを指定

「○○の表示中に問題が発生したため、Internet Explorerは互換表示を使用してWebページを更新しました 」っていうIE9の表示について

○○の表示中に問題が発生したため、Internet Explorerは互換表示を使用してWebページを更新しました

IE9で上記のエラーが表示された。
元々なんとも無かったが、IE9のアドレスバーの互換表示を押して
しまったあとから互換表示をやめても上記エラーが出て
強制的に互換モードにされてしまった。
※開発者ツールでブラウザモードをIE9にすれば直るんだけど。

気持ち悪いので対応。
方法としては以下のサイトを参考にしてメタタグを挿入し
強制的にモードを指定するようにした。

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9"/>

IE8ではIE7互換モード、IE9は標準でレンダリングさせる方法

Internet Explorer でレイアウトが崩れる Blogger テンプレートは、IE 7 互換モードのタグを削除してみるといいかも

IE9ヤバイ。IE9の文字間隔・互換モード・DOCTYPE宣言について

ただこんなんでいいのかは謎。
「onbeforeunload」使ってるからかな?
「onbeforeunload」とIEの互換表示が相性悪い気がする。
そういえばこの前もIE9でHelvetica問題で躓いたなぁ。。

IE9でwordpressが表示されないバグ(HelveticaをインストールしているPC)

IE9のfont-familyバグ

LPIC レベル2 覚えられないコマンドとか色々2

なんだかなーおぼえられねーなー。

■カーネルパラメータ
sysctlでカーネルパラメータの操作を行う

表示する sysctl カーネルパラメータ
 変更する sysctl -w カーネルパラメータ=値
 一覧 sysctl -a

/proc/sys によるカーネルパラメータ操作
kernel.shmallが対象パラメータの場合

表示する cat /proc/sys/kernel/shmall
 変更 echo ‘2097152’ > /proc/sys/kernel/shmall

■ARP
IP アドレスと MAC アドレスの対応関係は、ARP キャッシュという
テーブルとしてシステム内に保持されているARP キャッシュに関する
操作を行うコマンドは arp です。

arp [オプション]

-i –device 続けて表示対象インターフェースを指定
-a –display  続けて表示対象のホスト名を指定
-d –delete 続けて削除対象のホスト名を指定
-n –numeric 逆引きを行わず、IPアドレスのまま表示
-s set 続けてIPとMACアドレスの対応を指定しキャッシュに追加
-f file 続けてファイルを指定し、その内容をキャッシュに追加

■mtコマンド
mtコマンドは、テープドライブを制御するコマンド。
磁気テープなどのテープデバイスを早送りしたり、巻き戻したりできる。

書式:mt -f テープデバイス 操作

テープデバイスはSCSI接続なら/dev/st0となります。
ただ、テープデバイスに/dev/st0を指定した場合、データの読み書きで
テープが自動的に巻き戻されます。
その為、複数のファイルを読み書きしたい場合などは巻き戻ししない
/dev/nst0をテープデバイスに指定します。

■カーネルのソース

/usr/src/linux 内のファイル・ディレクトリで覚えておきたいもの。

.config カーネルのビルド設定ファイル
Makefile makeの設定やカーネルのバージョンが書いてある
kernel/ カーネル本体のソースが入っている
Documentation/ ドキュメント類が入っている

 

 

LPIC レベル2 覚えられないコマンドとか色々

いやー今回はかなり覚えられないw

■namedのオプション

-t namedのルートディレクトリとするディレクトリを指定(chrootにするディレクトリの指定)
-u namedの実行ユーザを指定
-g namedの実行グループを指定

■DNSSEC
DNSSEC(DNS Security Extensions)とは、公開鍵暗号方式を用いた
電子署名により、正答なDNSサーバからのゾーン情報である事を認証し、
またゾーン情報が改竄されていないことを保証する技術。
公開鍵と秘密鍵を作成するには dnssec-keygen コマンドを使用し、
ゾーンファイルへ署名に dnssec-signzone コマンドを使用する。
ゾーン情報を暗号化する技術では無い。

■TSIG
TSIG(Transaction Signature)とは、マスターDNSサーバとスレーブDNSサーバに共通の
秘密鍵を設定する事で、DNSサーバの偽装など、なりすましを防ぐ技術。
共通鍵の作成は dnssec-keygen コマンドを使用する。
作成した共通鍵は、マスター/スレイブDNSサーバ双方の
/etc/named.conf ファイルに、keyステートメントとして設定します。

■mkisofs コマンド

mkisofs [オプション] ディレクトリ

-o 続けてイメージファイル出力先を指定する
-J Windows系拡張であるJolietフォーマットで作成
-R UNIX系拡張であるRockRidgeフォーマットで作成
-udf DVDで用いられるUDFフォーマットで作成

■modprobe
modprobe の設定ファイルでは、各カーネルモジュールのデフォルトパラメータを
指定したり(options)、カーネルモジュールに別名をつけたり(alias)、特定の
カーネルモジュールのロード時・アンロード時に実行されるコマンドを設定したり
(install, remove)できます。

■cpioコマンド
cpioコマンドもtarコマンドと同じく、複数のファイルをまとめて1つのファイル
(アーカイブ)にする、またはアーカイブを展開する際に使用するコマンド。
バックアップや初期 RAM ディスク(initramfs形式)の作成などに使用される。

-o 新しくアーカイブを作成する
-i アーカイブからファイルを展開する

■カーネルパラメータ

カーネルの動作や細かな設定値を参照・変更するための仕組み。
カーネルパラメータの多くの項目は、実行時に値を変更すること
ができ、すぐに新設定が有効になる。

/proc/sys 以下にカーネルパラメータを操作するための仮想ファイルが
存在し、仮想ファイルに対する読み書きを通じて操作することができる。

カーネルパラメータはビルド時ではなく実行中に設定を変更することができる。

新しいカーネルをインストールした際は、基本的にカーネルパラメータには
適切な値が自動的に設定されている。

パフォーマンスチューニング目的など、特に必要があって設定をする場合を
除いては、手動で設定を行わなくても問題ない。

sysctl コマンドで変更した設定は再起動時に設定が失われる。

恒久的に(再起動後も)設定を有効にするためには、起動時に自動実行される
スクリプトを編集し、起動毎に設定したい値を変更する sysctl コマンドを
実行するようにするか、/etc/sysctl.conf という専用の設定ファイルに設定を記述する。

■insserv コマンド

SUSE 系ディストリビューションで利用。
insserv コマンドは引数にサービス名だけを指定すると自動起動する設定を、
-r オプションを加えると自動起動しない設定を行う。

■update-rc.d コマンド

update-rc.d [オプション] サービス 操作 [優先度] [ランレベル]

操作

default ランレベルに応じて、SかKで始まるリンクを作る
start Sで始まるリンクを作る
stop Kで始まるリンクを作る
remove リンクを削除する(-f で強制)

自動起動設定を追加・削除することができる。
update-rc.d はその名前の通り、/etc/rc[0-6].d 内のシンボリックリンクを
操作して、サービスの自動起動設定を行うことができるコマンド。
start stop defaults でリンクを作ることも、remove でリンク削除もできる。

優先順位を指定することができる。
defaults や start, stop に続く部分に数字を書き、自動起動設定の優先度(S99local の 99 の部分)を指定することができる。