manekineko倉金家ホームページ

趣味の部屋/サーバー構築メモ その3

セットアップ

2013年10月15日


最初のセットアップ
 インストールを完了し再起動すると「ようこそ」画面とセットアップ開始案内が表示されます。
進むをクリックして、
・ライセンスに同意。
・通常作業用に一般ユーザを作成。
・日付と時刻の設定。
 …現在の時刻を見ると日本時間になっていません。
 →ネットワーク上で日付と時刻を同期化します
 →高度なオプション
  ローカルタイムソースを使用
 をチェック。
・Kdump
 →有効に
 →Kdumpメモリ 128MB

 再び再起動を促されますので再起動。
ログインしデスクトップを使ってみます。設定等あるのでまずはrootで。
 アップデートパッケージの自動チェックプログラムが入っているようで、アップデートを275個通知してきたのでそのままアップデート。
 ここでちょっと気がついたのですが、HDDのアクセスランプがつきっぱなしだったのでディスクユーティリティーで確認してみますと、RAIDディスクをリシンク(resync)しています。
 ディスク名がmd127などとなっていたり、どうもCentOS6のRAIDソフト(mdadm?)がSoftware RAID だけじゃなくて BIOS RAIDまで管理しようとしているのかな?今のとこ特に実害はないみたいだけど。

起動の設定
 そのままデスクトップから継続して起動ブートオプションを変更します。
/boot/grub/grub.conf を編集。
 まず起動時に起動状況が表示されるように rhgb quiet を取り除きます。
これにより起動状況が [ OK ]、あるいは [ FAILED ] と表示され、何かあったとき異常に気がつきます。実はこれで幾度か助けられたことがあります。スクロールが早くて読みきれなくても異常があったことさえわかればあとでログで確認できます。
 また不在時に停電して自動復帰したときルーター等が先に立ち上がっていないと起動に失敗するプロセスがあるので timeout=60 に(ディフォルト5秒)。
 さらにすべての選択肢が表示されるよう hiddenmenu を #hiddenmenu としておきます。
 再起動してみるとさっそく
ImportError: No module named rhsm.connection    [ FAILED ]

virt-who をアンインストール
# yum erase virt-who
このパッケージは
virt-who-0.8-5.el6.centos (noarch)
Agent for reporting virtual guest IDs to subscription-manager
ちなみにこれはRed Hatのライセンス管理マネージャーのようです。
CentOSには不要です。(取り外し忘れ?)

参考:
http://d.hatena.ne.jp/torutk/20130528/p1

Mail設定
 システムを稼働するとrootあてにサーバーからさまざまなメールが発信されます。
重要な通知もありますし、放っておくとどんどんたまるので読み出します。
標準メーラーにEvolutionが設定されているのでとりあえずそれをそのまま使用。
rootアカウントを作ってメールボックスを/var/spool/mail/rootにつなげばOK。

SELinuxさん登場
 rootでログインしたらSELinux(SELinuxトラブルシューター)から通知が来ていました。
gdm-session-workerがfileをcreateしようとしてどうのこうのと。
SELinux is preventing /usr/libexec/gdm-session-worker from create access on the ファイル .xsession-errors.XX3JVH4W.
........
→
などと言っています。
しょうがないので許可ポリシーを作ってインストールします。
でもいったんこれでポリシー許可モジュールを作ってインストールしたのですが、さらにそのあと create の他に rename write setattr read open も拒否された通知が来ました。
 前回までの2度のテストインストールではこんなことはなかったのに不思議だな。そういえばログインセッション(GNOMEかKDEか)の選択も出なかった気もするな。gdm-session-workerが入ってなかったのかもしれない。

わかりやすいように今回の policyname を gdm-session-worker としておきます。
/root/SELinux/gdm-session-worker.log というディレクトリとファイルを作り、受け取った各通知の生の監査メッセージの英語の部分をみんなコピーし、ペースト。必要なログだけ抽出してとっておくと後でポリシーの追加がしやすい。
あとはSELinuxトラブルシューターの指定どおり。

作業ディレクトリに入る。
# cd SELinux

同名のモジュールがないか確認。
# semodule -l | grep gdm-session-worker
あれば名前が出てくる。
最初から入っているモジュールを上書きしないよう、これ重要。

ポリシー許可ファイルをつくる。
# cat gdm-session-worker.log | audit2allow -M gdm-session-worker
gdm-session-workwr.pp というファイルがつくられる。

モジュールを組み込む
# semodule -i gdm-session-worker.pp

モジュール組込みを確認
# semodule -l | grep gdm-session-worker
gdm-session-worker 1.0
ちなみに解除するなら
# semodule -r gdm-session-worker
ポリシーを追加したモジュールを作成するときは先に同じ名前のモジュールがインストールしてあったらそれを解除しておいた方がいいです。内容がダブっているよとか言われます。

 再起動してみて、今度はOKです。そのままでも"gdm-session-worker"という名前からして前回のログインのセッションを覚えてくれないだけだと思うけど通知が来るのがうっとうしい。まったくしょうがねえなあ。

仮想化用ネットワークの作成
 KVMで仮想化を行う場合ディフォルトではネットワークはNAT(IPマスカレード)でしかもDHCPで仮想化ゲストマシンに割り当てられます。しかしこれでは仮想化ゲストマシンは外部からアクセスできる独自のIPを持てず、サーバーとしては機能できません。
これを解決するためにシステム内部にネットワークブリッジ(仮想ハブ)を構築しておきます。
ホスト側もこれを使うことになりますが全然問題はありません。

NetworkManagerを停止、さらに起動しないよう設定します。
# service NerworkManager stop
# chkcfg NetworkManager off

ブリッジ(仮想ハブ)をつくります。eth0につなぐ方。
IPやハードウェアアドレスなどはすべて例です。
/etc/sysconfig/network-scripts/ifcfg-br0
NAME="Bridge br0"
DEVICE="br0"
TYPE="Bridge"
ONBOOT="yes"
BOOTPROTO="static"
IPADDR="192.168.0.6"
NETMASK="255.255.255.0"
GATEWAY="192.168.0.1" …br1かどちらか一方のみに。両方に書いてはいけない。
DNS1="192.168.0.1"
BROADCAST="192.168.0.255"
NM_CONTROLLED="no"
IPV6についてはシステムと連動させて制御するので記述しません。
eth0をブリッジにつなぎます。
/etc/sysconfig/network-scripts/ifcfg-eth0
NAME="System eth0"
DEVICE="eth0"
TYPE="Ethernet"
BRIDGE="br0"
ONBOOT="yes"
BOOTPROTO="none"
NM_CONTROLLED="no"
HWADDR="D4:3D:7E:87:67:91"

 もう一枚のネットワークカードについても同様。
ネットワークカードが一枚だけなら以下はいりません。
/etc/sysconfig/network-scripts/ifcfg-br1
NAME="Bridge br1"
DEVICE=br1
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.1.6
NETMASK=255.255.255.0
#GATEWAY="192.168.1.1" …br0かどちらか一方のみ有効に。今br0。
DNS1=192.168.1.1
BROADCAST=192.168.1.255
NM_CONTROLLED=no
/etc/sysconfig/network-scripts/ifcfg-eth1
NAME="System eth1"
DEVICE=eth1
TYPE=Ethernet
BRIDGE=br1
ONBOOT=yes
BOOTPROTO=none
NM_CONTROLLED=no
HWADDR=4C:E6:76:D8:8A:47
で、
# service network restart

参考:
簡単なのは
http://tipspc.blogspot.jp/2009/09/qemu-kvm.html
詳しいのは
http://www-06.ibm.com/jp/linux/tech/doc/attachments/RHEL6_KVM_Network_Guide_v1.pdf

不要なサービスの停止
 余計なサービスが動いていると当然余計なリソースを食うしセキュリティー上も好ましくありませんので不要なものは止めておきます。
chkconfig で確認してみます。
# chkconfig --list
NetworkManager 0:off 1:off 2:off 3:off 4:off 5:off 6:off
abrt-ccpp 0:off 1:off 2:off 3:on 4:off 5:on 6:off
abrt-oops 0:off 1:off 2:off 3:on 4:off 5:on 6:off
abrtd 0:off 1:off 2:off 3:on 4:off 5:on 6:off
acpid 0:off 1:off 2:on 3:on 4:on 5:on 6:off
..... .....
→
 見ると昔に比べて知らないのがいっぱい増えてる!
今回はGUI設定ツールを使ってみましょう。現在起動しているかどうかもすぐわかりますし、英語ですがサービスの概要が表示されますので少し便利です。
GNOMEメニューの システム → 管理 → サービス あるいはコマンドラインから
# system-config-services
説明を読んで、あるいはよくわからないのはネットで調べて、以下のものは off。
acpid:電源管理サービス。サスペンド、ハイバネートなどを行う。
  常時起動のサーバーでは不要。
bluetooth:ハードウェアがない。
certmonger:公開鍵と証明書に関するサービス。
dnsmasq:DHCPサーバと連携するDNSキャッシングサービス。
  いずれルーターにもその機能はあるしDNSも立ち上げるので不要。
iscsi:iscsi機器は使ってないので不要だが、将来使うかもしれないならonでもいい。
iscsid:(同上)
openct:smart card関連。ハードウェアなし。不要。
pcscd:(同上)
 でもchekconfigで見てoffになっていても起動していたり、あるいは逆にonなのに停止しているのもありますので、他のプロセスから念のため起動されたり、あるいはハードウェアがないなどで停止してしまう場合などもあるようです。
 設定したら再起動してへんなエラーが出ないか確認しておきます。

raid-check いらない
 /etc/cron.d/raid-check に毎週日曜日午前1時に raid-check をやるよう指定されています。このときディスクがフル稼働状態になり非常に反応が悪くなることがわかったので、コメントアウトして無効にしました。BIOS RAIDなのでそっちで常時やられてるだろうからたぶんいらない。

電源ボタンを無効化する
 サーバーとして稼働するため基本的には電源は切りません。
ただ電源ボタンに触れてしまうと(デスクトップを起動していると確認ダイアログは出ますが、キャンセルしなければ60秒後には自動的に)電源は切れてしまいます。
GNOMEの電源管理の設定ツールではサスペンド、ハイバーネート、シャットダウンは選べますが、何もしないオプションは出ません。で、
gconf-editor を起動し、
/apps/gnome-power-manager/buttons/power キーを"nothing"に。
これでGNOMEデスクトップを起動しているときの電源ボタンは無効になりましたが、ログアウトした状態ではまだ切れてしまいます。常時デスクトップは起動しているから、ま、いいか。

スクリーンセーバー(ディスプレースリープ)の無効化
デスクトップの設定アプリからスクリーンセーバーやディスプレースリープなどを無効にしてもディスプレーがいつのまにか真っ黒になる。
スクリーンセーバーというよりディスプレーの省電力機能でスリープさせられるようだ。
常時起動のサーバーで確認がしやすいようスリープはさせたくない。

/etc/X11/xorg.conf を作成し以下を記載し再起動してOK。
Section "ServerFlags"
Option "BlankTime" "0"
Option "StandbyTime" "0"
Option "SuspendTime" "0"
Option "OffTime" "0"
EndSection
以前のCentOS5の同様の現象もこれだったのかもしれない。
こういうことをやるならユーザインタフェースをちゃんと準備しろと言いたい。

 あとまだやりたい設定がいくつかあるのですが、あまりのんびりしてられないので後ほど落ち着いてからゆっくりやることにして、急ぎ先へと。