Redmine 導入メモ! その1 3


さて、やり直してる間に、Redmine導入メモ!

といっても、今回はちょっと実践的に色々やるシステムの構築なので、余り当てにならないかもです。

今回の目標システム!!!!

  • OS: CentOS 5.5 X86_64
  • 導入する主なデーモン
    • ApacheWebServer
    • MySQLDatabase
    • Postfix
    • Dovecot
  • 構成するサービス
    • Redmine (Apache + Passengerで動作)
    • Subversion
    • Git
    • npca’s Web Site (PHP)
    • メールサービス

特にたいしたシステムじゃないけど苦労してる・・・・・エンジニア失格orz

ただ、今回、一番大きな課題は

Hyper-V上で稼働させること

これが何を意味するかは
【連載】仮想化の教室 [第3回] 仮想マシンの限界 ~Linuxゲストの時計が狂う!?~ : Windows Server – Computerworld.jp
をご覧いただけば分かると思うが、

普通に入れただけではものすごい時間がずれる!

しかも、パーセンテージにして10%ほどもずれることもある。
正直、実用レベルではない
後からログの確認すらままならない状態になる。

では、CentOSをインストールしよう!

と、ちょっと仮想マシンを作るときに注意点

ネットワークアダプタは「レガシーネットワークアダプター」の方を使いましょう

Hyper-V統合ツールがない環境だと認識されません。

その後は普通にHyper-VでCentOSのディスクが・・・・

二枚です

はい、なぜか5.5の64bitはDVD二枚なのですw
というわけで 1of2 の方を先に入れてそこからブート、デフォルト設定で突っ走ります。
あ、念のためUTCはオフにしましょう!

で、途中でディスクを入れろと言われたら、入れ替えます

ちょっと、ブログに書く&説明省略のため、今回はインストール時にはSELinuxとファイアウォールを無効にします。

運用するときはかならず両方オンにしましょう!

とまあ、時刻に関してはNTPを以下のような設定にしてみます。

※すいません!画像の下の方のntpサーバーは消します!!!!

そして、その後はユーザー登録をして、再起動

さて、ログインしたら、まずはSSHの立ち上げを行います

デスクトップを右クリック→端末を開く

でシェルを開きます。

su –

vim /etc/ssh/sshd_config

とやってsshの設定を開きます

ここでは最低限の設定項目しか書かないため、皆さん、自分で細かい設定は行ってください。

一番設定しないといけないのはrootでのログインを禁止すること

というわけで

#PermitRootLogin yes

PermitRootLogin no

とします。
では、上書きして、sshを再起動

/etc/init.d/sshd restart

OKと出れば問題なし

はて、ここからは基本的にリモート・・・・・と行きたいですが、その前にネットワークの設定を行いましょう。

設定項目としては

  • IPアドレス
  • ネットワークマスク
  • デフォルトゲートウェイ
  • DNSサーバー

というのが一般的ですが、今回はちょっと背伸びして、Hyper-V統合ツールforLinuxの Linux IC 2.1を導入する

というわけで、

ダウンロードの詳細 : Linux Integration Components

から、ダウンロードする。これはホストOS側で行う。
とりあえず、実行していくと、ISOディスクイメージが出てくるので、それをCentOSのVMにマウント

ついでに、私はHyper-V Serverを使っているため、こちらで共有フォルダを作り、Hyper-V Serverのコマンドプロンプトで

net use z: \\共有パス

で、z:にマウント。そこからコピーした

普通にやれば /media/CDROM にマウントされるため、 /root なりにフォルダを作りコピー

mkdir /root/LinuxIC

cp -rf /media/CDROM/* /root/LinuxIC

では、中身を見て見る

ls /root/LinuxIC

ぱっと目に付くのは Makefile これでインストール方法はmakeだと分かる。では

cd /root/LinuxIC

make

エラー・・・orz

さて、慣れている皆さんはおわかりだろう

コンパイラ入れてません☆

yum groupinstall “Development Tools”

はい、一発
割とダウンロード量は多いので少し待ちます
回線にもよりますが、最近のブロードバンドならたいした問題にはならないでしょう(といっても10分ぐらいは見といた方が良いかも)

途中でGPGキーの取り込みをするかどうかを聞かれるのでyを入力

これで思うのが、

yumって意外と強い

まあ、他のでも出来るとか言われるとそれで終わりなんですがw

っていって、気まぐれな僕はここでアップデートをかけちゃいます

yum check-update

yum update

そして、驚愕の数字が・・・・(2010/08/20 3:34時点で)

ダウンロードサイズ 348MB

ああ・・・・やめとけばよかった・・・と思いながらyを押してしまう・・・さあ、待とうか・・・

そして、

どう見てもOpenOffice.org、使わないくせにでかい!!!!!!!!

まず、最初の構成が間違いだったなと後悔
これも相当な時間がかかります

で、終わったら念のため再起動

shutdown -r now

と、再起動を待つ・・・・

そして、ログイン

とりあえず、シェルを立ち上げ、

su –

cd /root/LinuxIC

make

make install

インストール完了!
また再起動w

shutdown -r now

とりあえず、正常に起動することを確認します

そしたらまたシャットダウン!
・・・・怒らないでください・・・大事なことをホスト側で行います

su –

shutdown -h now

そしたら、仮想マシンの設定を開きます

この「レガシーネットワークアダプター」を消して、普通の「ネットワークアダプター」にします
ついでに、ディスクもアンマウントしちゃって、ブートをIDEからブートに変えましょう

こんな感じになりました。

では起動

ログインして、シェルで

su-

ifconfig

ん?なんかいつもと違う・・・・

そう、普段、ネットワークインターフェースの名前は「eth0」とかのはずが「seth0」となっている。これがLinuxICのインストール成功の証ともいえる

なお、LinuxICのインストールに成功すると、Hyper-Vマネージャーからシャットダウンが出来るようになります。ほかにも色々ありますが

では、ネットワークの設定と行きましょう。

ついでに、ちょっとしたトラウマで、ネットワークの設定だけは、設定ファイルじゃなくて、GUIツールでやってますwww
スペルミスで大変なことになったことが・・・・

とりあえず、IPを固定して、DNSの設定etcは各自

念のためネットワークの再起動

/etc/init.d/network restart

成功したら、

ifconfig

で確認

そこで、すこし右上の時計を見てみましょう。違和感を感じませんか?さて、わからない人は、右クリック→設定で秒も表示させるとはっきりします

人間でも分かるぐらい時計が速い!

環境によっては遅いかもしれませんが

とりあえず、これは何とかしたい。
というわけで、ちょっとググるとカーネルパラメータをいじると良いらしいという事が分かります。

まあ、まずはSSHに切り替えましょう

というわけで、

su –

vim /boot/grub/grub.conf

とやって、ブートローダーの設定を開きます。

notsc divider=10

を追加すればいけます。
なお、これはX86_64の場合なので、X86_32の人は

clocksource=acpi_pm divider=10

を追加。かなり改善されていると思います。

では、

Apacheの構成

というわけで、またrootになってくださいw

su –

まずは

yum install httpd httpd-devel

およ?httpdはインストールされているみたい。まあ、develは入れないといけないようなのでyで続行

次に、PHP関連のパッケージを入れるのですが、最低でもmbstringぐらいは入れましょう
まあ、まとめて入れちゃう方法もありますが・・・

まずは、mbstringだけ追加したい人は

yum install php php-devel php-mbstring

php関連全部いれるぜーっていう勇者は

yum install php*

をw

では、Apacheの設定をいじるので

cd /etc/httpd/

ではでは、ここからは怒濤のサーバーコンフィグ!!!

用意は良いですか???

vim conf/httpd.conf

ついでに、 http://vine.1-max.net/ とか参考にしてみると良いかも
VineLinuxなんで微妙に違う点とかありますが、ここではそれをベースに設定していきます。

ServerTokens Prod ← エラーページでOS名を非表示にする

ServerAdmin webmaster@xxxxx.com ← 管理者のメールアドレス

まずは、ServerTokensを
OS→Prod
にして、OS名がエラーページに表示されなくします。もちろんセキュリティ対策です。

次にを探すと、そのセクションの中に

 Options Indexes FollowSymLinks

という行が見つかるはずなので、どう見ても危険なIndexesは消して

Includes ExecCGI

を追加

そして、が―とスクロールすると、DirectoryIndexが見つかると思うので、そちらをお好みに

まあ、phpをメインで使うとするならばindex.phpとかを追加しても良いかなって感じですね。

また、WebDAVの脆弱性を狙った攻撃への対策として

LogFormat “%h %l %u %t \”%r\” %>s %b \”%{Referer}i\” \”%{User-Agent}i\”” combined

LogFormat “%h %l %u %t \”%!414r\” %>s %b \”%{Referer}i\” \”%{User-Agent}i\”” combined

に変えます

Apacheはメジャーなので、各自お好みの設定やら何やらをお持ちだと思います。まあ、各自という事になります。(特にKeepAliveとかの設定はかなり各自運用形態により差が出ると思います。)

では、保存してApacheを起動しましょう

/etc/init.d/httpd start

もし、すでに起動してたらrestartしましょう

成功したら、自動起動の設定

chkconfig httpd on

chkconfig –list httpd

ランレベルごとの動作設定が出るので2~5の時がonであれば問題


Mine へ返信する コメントをキャンセル

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

3 thoughts on “Redmine 導入メモ! その1

  • neko

    LinuxIC上手く行ったみたいですね。
    良かった良かった。

    老婆心ながら、
    NTPをお使いでしたら、念のためホストOSとの時刻同期は、外しておいた方がいいですよぉ。

    半分くらいしか理解できていませんが、
    いろんなことされているんですね。
    参考にさせて頂きます。

    IRCチャットをやっていますので、
    ご興味があればどうぞ。
    http://heppoko.blogdns.net/?p=3475

  • Mine

    助言ありがとうございます。ホストOSとの時刻同期、外してみました。

    いろんな事に手を出してるので、だいぶ前に手をつけた物は忘れてたりします(汗

  • mine Post author

    執筆者です

    CentOS 6向けに、Linux IC 3.1がリリースされているので、Cent OS 6で構成する方は
    http://www.microsoft.com/downloads/ja-jp/details.aspx?familyid=c1256a7f-8a2d-4b18-851c-63b22ca976d3&displaylang=ja-nec
    からダウンロードできます。

    このバージョンからはRPMパッケージとなり、これまで、カーネルのバージョンを上げるたびにリビルドしなければならなかったのが、不要になりました。