- 追加された行はこの色です。
- 削除された行はこの色です。
- RHEL3Net へ行く。
#author("2021-09-13T17:54:58+09:00","","")
* PBSProのためのRHEL3のネットワーク設定 [#t3471ef2]
PBSProを使うためのネットワークの設定を行なう。PBSの構成は、1台のキューサーバと複数台の計算ノードである。
**内容 [#ife94391]
#contents
**NFSによる共有ディスク [#eb2a0aef]
キューサーバのディスクをNFSにより共有ディスクとして、各計算ノードに共有マウントして作業をすすめる。
***NFSサーバ(PBSキューサーバ) [#g17a00a9]
NFSサーバ側では、クライアントのrootがフルアクセスできる設定の次のような行を/etc/exportsに追加する。
/ds300 192.168.1.0/28(rw,no_root_squash,sync)
**NFSマウント(PBS計算ノード) [#vd6a469d]
一般的には、NFSクライアント側では/etc/fstabに、
192.168.1.1:/ds300 /ds300 nfs soft 1 2
の行を追加し、
# mount /ds300
を実行して共有ディスクをマウントするが、ここでは、起動時の同期に失敗したときのことを考慮して、オンデマンドでマウントができる自動マウント(automount)を使う。
***AutoFS(automount)の設定 [#ebb433be]
RHELの自動マウントは autofs で行なう。下記のように、automountのための設定を行い、autofsに起動をかける。
次の記述を /etc/autofs.master に追加。
/misc /etc/auto.misc --timeout=60
(※ /misc は空のディレクトリ。そのかわりに / など既存のディレクトリは指定すると、ファイルシステムを破壊するおそれがある。)
次の記述を /etc/auto.misc に追加。
ds300 -fstype=nfs,rw,soft,intr 192.168.1.1:/ds300
autofs を有効にし、automountデーモンを起動する。
# /sbin/chkconfig autofs on
# /sbin/chkconfig --list autofs
# /etc/init.d/autofs start
この設定により、共有ディスクは /misc/ds300 にアクセスしたときに自動マウントされるようになるので、/etc/fstabのNFSマウントの記述はコメントアウトして、
#192.168.1.1:/ds300 /ds300 nfs soft 1 2
すでにNFSマウントしてあった場合は、そのマウントをはずしておく。
# umount /ds300
**アドレス解決のためのhostsファイルを設置 [#l5a1c636]
キューサーバ(NFSサーバ)側では、/etc/hosts ファイルに各ノードのエントリを追加し、共有ディスクにコピーする。
>/ds300/etc/hosts:
127.0.0.1 localhost.localdomain localhost
192.168.1.1 snoopy
192.168.1.2 spike
192.168.1.3 woodstock
192.168.1.4 lucy
192.168.1.5 linus
計算ノード側(NFSクライアント)では、キューサーバ側ディスクにあるhostsファイルをコピーする。
# cp -p /misc/ds300/etc/hosts /etc/hosts
**SSHのフレーズ入力無しアクセスの設定 [#k2089d71]
キューサーバ上で、次のコマンドでSSHの認証のためのキーを生成し、パブリックキーを共有ディスクにコピーする。(プライベートキー id_dsaファイルはそのまま残しておく。)コピー先のファイル名は authorized_keys にする。
# ssh-keygen -t dsa
# cp ~/.ssh/id_dsa.pub /misc/ds300/ssh/authorized_keys
自分自身のアドレスとホスト名SSHでリモートログインしてみる。
# slogin snoopy
...
Are you sure you want to continue connecting (yes/no)? yes
...
# exit
続いて、同じように計算ノードとなるすべてのマシンにSSHリモートログインを繰返し(リモートログイン先で、ついでに以下の作業を行なうとよい)、それぞれのエントリがknown_hostsに追加されるので、最後にこれを共有ディスクにコピーする。
# cp ~/.ssh/known_hosts /misc/ds300/ssh/known_hosts
>各マシンにログインしている間に、マシン毎に鍵を生成し、共有ディスクの authorized_keys に追記する。
# cd ~/.ssh
# ssh-keygen -t dsa
# cat id_dsa.pub >> /ds300/ssh/authorized_keys
すべての計算ノードでひととおり上記作業を終えたら、各計算ノードの .ssh ディレクトリに authorized_keys と known_hosts をコピーする。
# cp -p /misc/ds300/ssh/authorized_keys ~/.ssh/
# cp -p /misc/ds300/ssh/known_hosts ~/.ssh/
この時点で、パスフレーズ無しでのSSHリモートログインが相互で可能になったはずである。
**時刻同期をとるためのTIMEサービスの設定 [#a426c814]
各計算ノードの時刻をキューサーバの時刻に自動的に同期させるようにする。
>キューサーバ上で TIME サービスを走らせる。
# /sbin/chkconfig time on
# /etc/init.d/xinetd reload
>共有ディスク上にクライアント側のコマンド実行ファイルを作成しておく。
# echo "/usr/bin/rdate -s snoopy" > /ds300/etc/time.cron
# chmod +x /misc/ds300/etc/time.cron
> 各計算ノードでは、定期的に時刻合わせをするコマンドをCRONサービスに登録するため、共有ディスクに作成したコマンドファイルのシンボリックリンクを所定のディレクトリ、ここでは毎日実行するための /etc/cron.daily ディレクトリに作成し、CRONデーモンの初期化を行う。
# cp -p /misc/ds300/etc/time.cron /etc/cron.daily/time.cron
# /etc/init.d/crond reload
**DNSの設定 [#rc697b21]
公式なドメインはないものの、メールサービスなどDNSを利用するシステムが増えてきているため、ダミーのDSNサーバ設定を行なう。ドメイン名をlocaldomainとして、snoopy をDNSのサーバとして設定する。また、MX(メール)サーバもsnoopyに指定する。
***DNSサーバ設定 [#j95e783b]
/etc/named.conf にゾーンファイルの定義を追加。
zone "1.168.192.in-addr.arpa" {
type master;
file "1.168.192.in-addr.arpa.zone";
};
zone "localdomain" {
type master;
file "localdomain.zone";
};
>正引きゾーンファイル: /var/named/localdomain.zone
$TTL 86400
@ IN SOA localdomain. root (
19 ; serial
28800 ; refresh
14400 ; retry
3600000 ; expire
86400 ; ttl
)
@ IN NS snoopy
@ 14400 IN MX 10 snoopy
snoopy IN A 192.168.1.1
spike IN A 192.168.1.2
woodstock IN A 192.168.1.3
lucy IN A 192.168.1.4
linus IN A 192.168.1.5
ns CNAME snoopy
>逆引きゾーンファイル: /var/named/1.168.192.in-addr.arpa.zone
$TTL 86400
@ IN SOA localdomain. root (
19 ; serial
28800 ; refresh
14400 ; retry
3600000 ; expire
86400 ; ttl
)
@ IN NS snoopy
1 IN PTR snoopy.localdomain.
2 IN PTR spike.localdomain.
3 IN PTR woodstock.localdomain.
4 IN PTR lucy.localdomain.
5 IN PTR linus.localdomain.
DNSサービス(named)を有効にして起動する。
# /sbin/chkconfig named on
# /sbin/chkconfig --list named
named 0:off 1:off 2:on 3:on 4:on 5:on 6:off
# /etc/init.d/named start
# tail /var/log/messages
***DNSクライアント設定 [#od11bf60]
キューサーバのsnoopy上で、/etc/resolv.conf を次のように設定する。
nameserver 192.168.1.1
このファイルを /ds300/etc/resolv.conf にコピーする。
その他の計算ノードマシンでは、共有ディスクから、
cp -p /ds300/etc/resolv.conf /etc/resolv.conf
で resolv.conf をコピーする。
**メールサーバの設定 [#e15c8000]
RHEL ES3ではデフォルトのMTAがSendmailになっているが、MXサーバのみより処理性能の高いpostfixに変更して設定を行なう。MTAの切替えは次のコマンドで行なえる。
# alternatives --config mta
あるいは、
# redhat-switch-mail
で行なえる。
**Postfixの設定 [#od2f5953]
Postfixの設定ファイル /etc/postfix/main.cf に次の修正をほどこす(diff出力)。
68a69
> myhostname = snoopy
75a77
> mydomain = localdomain
90c92
< #myorigin = $myhostname
---
> myorigin = $myhostname
105c107
< #inet_interfaces = all
---
> inet_interfaces = all
108c110
< inet_interfaces = localhost
---
> #inet_interfaces = localhost
153c155
< mydestination = $myhostname, localhost.$mydomain
---
> mydestination = $myhostname, localhost.$mydomain, $myhostname.$mydomain
256a259
> mynetworks = 192.168.1.0/24, 192.168.0.0/24, 127.0.0.0/8
また、wwwのメールアカウントを利用したいため、 /etc/postfix/aliases のデフォルト設定も変更する(diff出力)。
15c15
< postmaster: root
---
> postmaster: postfix
62c62
< www: webmaster
---
> #www: webmaster
80c80
< root: postfix
---
> #root: postfix
postfixがMTAとして有効になっていることを確認し、起動する。
# /sbin/chkconfig --list postfix
postfix 0:off 1:off 2:on 3:on 4:on 5:on 6:off
# /etc/init.d/postfix start
各計算ノードでは、MTA(Sendmail)に関してはデフォルトの状態のまま、DNSによるアドレスが解決さえできれば、snoopy へメールを送ることが可能になっている(逆は不可)。
***ProcMailの設定 [#y767d80f]
procmailが受信メールのフォルダファイルを/var/spool/mail/ディレクトリに作ることができるように、setgid権限を与える。
# ls -ld /var/spool/mail/
# chmod g+s /usr/bin/procmail
# ls -l /usr/bin/procmail
**PBS用アカウントの作成 [#b8415912]
PBS用のアカウントを作成する。ここでは、wwwという名前のアカウントを使う。
# /usr/sbin/useradd -g apache www
>受信メールをprocmailで処理できるようにする。procmailに処理を渡すためには、~www/.forward ファイルに次の記述をする。
"|IFS=' ' && exec /usr/bin/procmail -f- || exit 75 #www"
>そして、~www/.procmailrc にテスト用のスクリプトを書いて実際にメールを送信してテストする。
PATH=/bin:/usr/bin:/bin
MAILDIR=/home/www/Mail # You'd better make sure it exists
LOCKFILE=$HOME/.lockmail
LOGFILE=$HOME/procmail.log
:0 H
* ^Subject: \[TEST .*
$MAILDIR/TEST
:0
$DEFAULT
>サブジェクトが "[TEST "ではじまるメールを $MAILDIR/TEST というファイルに保存するというレシピ(procmailによる処理方法はレシピと呼ぶ)である。/home/www/Mail というディレクトリをwwwの権限で作成しておく必要がある。
***各ノードの計算用アカウント [#ecc54eb0]
各ノードにもPBSによる計算用のアカウントをwwwとして作成しておく。
# for n in spike woodstock lucy linus
do ssh $n "adduser -g apache -d /home/www www; tail -1 /etc/passwd"
done
計算用アカウントに対しフレーズ無しSSHアクセスのための設定を、 root アカウントの設定をコピーして行なう。
# for n in spike woodstock lucy linus
do ssh $i "cp -a /root/.ssh /home/www/; chown -R www:apache /home/www/.ssh"
done