(参考) : http://clown-do.ddo.jp/index.php?id=523
・計算機/クラスタUbuntu
(参考) : http://meme.biology.tohoku.ac.jp/klabo-wiki/index.php?%B7%D7%BB%BB%B5%A1%2F%A5%AF%A5%E9%A5%B9%A5%BFUbuntu
・Master Nodeの設定
1.1. ネットワークの現状確認
>ifconfig -a
(ifconfig説明):http://www.atmarkit.co.jp/fnetwork/netcom/ifconfig/ifconfig.html1.2. ネットワークインタフェースの設定
/etc/network/interfacesを設定する。
・ネットワークの設定確認
>cat /etc/network/interfaces
※interfacesファイルは唯一無二なのでそれぞれで必ず指定すること!
(設定前)
auto lo
iface lo inet loopback
↓iface lo inet loopback
(設定後)
+
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.1.1 #IPアドレス
netmask 255.255.255.0 #ネットマスク
network 192.168.1.0 #ネットワークアドレス
broadcast 192.168.1.255 #ブロードキャストアドレス
#192.168.*の「*」はサブネットを認識する番号なので通常は0か1を用いて、
#複数使う場合は、2以降を使うことも可能
#今回はeth01を足さなくてもよい
#auto eth1
#iface eth1 inet static
# address YYY.YYY.YYY.XXX #IPアドレス
# netmask 255.255.255.0 #ネットマスク
# network YYY.YYY.YYY.0 #ネットワークアドレス
# broadcast YYY.YYY.YYY.255 #ブロードキャストアドレス
# gateway YYY.YYY.YYY.1 #デフォルトゲートウェイ
# # dns-* options are implemented by the resolvconf package, if installed
# dns-nameservers YYY.YYY.YYY.XXX
# dns-search test.intranet
※YYYの同じ色には同じ値が入る。(ifconfigの値で指定する。)# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.1.1 #IPアドレス
netmask 255.255.255.0 #ネットマスク
network 192.168.1.0 #ネットワークアドレス
broadcast 192.168.1.255 #ブロードキャストアドレス
#192.168.*の「*」はサブネットを認識する番号なので通常は0か1を用いて、
#複数使う場合は、2以降を使うことも可能
#今回はeth01を足さなくてもよい
#auto eth1
#iface eth1 inet static
# address YYY.YYY.YYY.XXX #IPアドレス
# netmask 255.255.255.0 #ネットマスク
# network YYY.YYY.YYY.0 #ネットワークアドレス
# broadcast YYY.YYY.YYY.255 #ブロードキャストアドレス
# gateway YYY.YYY.YYY.1 #デフォルトゲートウェイ
# # dns-* options are implemented by the resolvconf package, if installed
# dns-nameservers YYY.YYY.YYY.XXX
# dns-search test.intranet
※XXXは自分で好きに指定する。
※上の変更後は、eth0がローカル側の設定で、eth1がグローバル側の設定の場合の例。
| ←eth1側 eth0側→
| [グローバル] ---- [ゲートウェイPC(Linux)] ---- [ローカルPC]
| [グローバル] ---- [ゲートウェイPC(Linux)] ---- [ローカルPC]
(重要)eth0を高速に通信したいので、eth0をローカルに指定する。
※OSインストール時にWAN側設定は済んでいるかもしれないが、今回はeth0がLAN側なのでeth0を設定する。
(参考) : http://www.debian.org/doc/manuals/debian-reference/ch05.ja.html#_the_basic_syntax_of_etc_network_interfaces
2.1. ネームサーバ(DNS)の設定確認
/etc/resolv.confを設定する。
# Generated by NetworkManager
domain xxxx.intranet
search xxxx.intranet
nameserver XXX.XXX.XXX.XXX
nameserver XXX.XXX.XXX.XXX
# Generated by NetworkManager
domain xxxx.intranet
search xxxx.intranet
nameserver XXX.XXX.XXX.XXX
nameserver XXX.XXX.XXX.XXX
2.2. DNSの確認方法
>nslookup xxxx.intranet
Server: XXX.XXX.XXX.XXX
Address: XXX.XXX.XXX.XXX#53
Non-authoritative answer:
Name: xxxx.intranet
Address: XXX.XXX.XXX.XXX
(参考) : http://it.jfe-tec.jp/column/tech_column/column_linuxn/000078.htmlServer: XXX.XXX.XXX.XXX
Address: XXX.XXX.XXX.XXX#53
Non-authoritative answer:
Name: xxxx.intranet
Address: XXX.XXX.XXX.XXX
3.1. hostsの設定方法
/etc/hostsを設定する。
(設定前)
127.0.0.1 localhost
127.0.1.1 host1
#
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
↓127.0.1.1 host1
#
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
(設定後)
127.0.0.1 localhost
#default setting
#127.0.1.1 host1
XXX.XXX.XXX.XXX host1(ifconfigで調べたIPアドレスを記入)
#
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
#
#IPv6を使う場合は下にnodeを書くようにする
(参考) : http://markun.cs.shinshu-u.ac.jp/learn/linux/h_07-02.html#default setting
#127.0.1.1 host1
XXX.XXX.XXX.XXX host1(ifconfigで調べたIPアドレスを記入)
#
#****-subnet
#master node
192.168.1.1 ****01 ****01.xxxx.intranet ****01-gw ****01-gw.xxxx.intranet
#slave node
192.168.1.2 ****02 ****02.xxxx.intranet
192.168.1.3 ****03 ****03.xxxx.intranet
...
...
...
## The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
#
#IPv6を使う場合は下にnodeを書くようにする
3.2. ネットワークの再起動
>/etc/init.d/networking restart
3.3. ネットワークの動作確認
>nslookup xxxx.intranet
4.1. sshでログインできるようにする。
ログインしたサーバーマシーンにsshをインストールする。
>sudo apt-get install ssh
インストール完了後、再起動する。
>sudo reboot
4.2. sshできるか確認する
a. ログインしたいhostでifconfigをかけて、IPアドレス(XXX.XXX.XXX.XXX)を取得して、
>ssh XXX.XXX.XXX.XXX
b. DNSが割り振られている場合は
>ssh hostname.xxxx.intranet
・Slave Nodeの設定
1. ネットワークインタフェースの設定
/etc/network/interfacesを設定する。
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.1.X #IPアドレス
netmask 255.255.255.0 #ネットマスク
network 192.168.1.0 #ネットワークアドレス
broadcast 192.168.1.255 #ブロードキャストアドレス
#192.168.*の「*」はサブネットを認識する番号なので通常は0か1を用いて、
#複数使う場合は、2以降を使うことも可能
※Xが1ならば01の親ノード(Master node)となるので、この場合は02なら2、03なら3・・・といったように割り当てていく。# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.1.X #IPアドレス
netmask 255.255.255.0 #ネットマスク
network 192.168.1.0 #ネットワークアドレス
broadcast 192.168.1.255 #ブロードキャストアドレス
#192.168.*の「*」はサブネットを認識する番号なので通常は0か1を用いて、
#複数使う場合は、2以降を使うことも可能
※Xのとこだけ変えれば後はみんな同じでよい。
2. hostsの設定方法
/etc/hostsを設定する。
127.0.0.1 localhost
#default setting
#127.0.1.1 host1
XXX.XXX.XXX.XXX host1(ifconfigで調べたIPアドレスを記入)
#
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
#
#IPv6を使う場合は下にnodeを書くようにする
※ifconfigをするとそれぞれXXXの部分がことなるはずなのでそこを変更する。 #default setting
#127.0.1.1 host1
XXX.XXX.XXX.XXX host1(ifconfigで調べたIPアドレスを記入)
#
#****-subnet
#master node
192.168.1.1 ****01 ****01.xxxx.intranet ****01-gw ****01-gw.xxxx.intranet
#slave node
192.168.1.2 ****02 ****02.xxxx.intranet
192.168.1.3 ****03 ****03.xxxx.intranet
...
...
...
# The following lines are desirable for IPv6 capable hosts::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
#
#IPv6を使う場合は下にnodeを書くようにする
※cf.
一つずつ記入してもよいが、hostsファイルは同じでもいいので、
Masterでhostsを作り、Slaveにばらまいてもよい。
その場合はすべてのhostのIPアドレスをhostsファイルに記入しないといけない。
この方法の方が楽だと思います。
(例)この方法の方が楽だと思います。
#default setting
#127.0.1.1 host1
XXX.XXX.XXX.XXX host1(ifconfigで調べたIPアドレスを記入)
XXX.XXX.XXX.XXX host2(ifconfigで調べたIPアドレスを記入)
XXX.XXX.XXX.XXX host3(ifconfigで調べたIPアドレスを記入)
XXX.XXX.XXX.XXX host4(ifconfigで調べたIPアドレスを記入)
XXX.XXX.XXX.XXX host5(ifconfigで調べたIPアドレスを記入)
XXX.XXX.XXX.XXX host6(ifconfigで調べたIPアドレスを記入)
・・・
#
#***1-subnet
・・・
こうして作ったものを下のスクリプトで作ったRCPでばらまいてもよい。#127.0.1.1 host1
XXX.XXX.XXX.XXX host1(ifconfigで調べたIPアドレスを記入)
XXX.XXX.XXX.XXX host2(ifconfigで調べたIPアドレスを記入)
XXX.XXX.XXX.XXX host3(ifconfigで調べたIPアドレスを記入)
XXX.XXX.XXX.XXX host4(ifconfigで調べたIPアドレスを記入)
XXX.XXX.XXX.XXX host5(ifconfigで調べたIPアドレスを記入)
XXX.XXX.XXX.XXX host6(ifconfigで調べたIPアドレスを記入)
・・・
#
#***1-subnet
・・・
> RCP /etc/hosts /etc/hosts
・SSH鍵の設定
suでs系コマンドはできないのでそれをできるように設定する。
1. Master nodeでauthorized_keysを作る。
>su
>cd
>ssh-keygen -b 2048 -t rsa
※何回か聞かれるがすべて「Enter」を押していればよい。
Generating public/private rsa key pair.
Enter file in which to save the key (${HOME}/.ssh/id_rsa): #そのままリターン
Created directory '${HOME}/.ssh'.
Enter passphrase (empty for no passphrase): #そのままリターン
Enter same passphrase again: #そのままリターン
Your identification has been saved in ${HOME}/.ssh/id_rsa.
Your public key has been saved in ${HOME}/.ssh/id_rsa.pub.
>cd
>ssh-keygen -b 2048 -t rsa
※何回か聞かれるがすべて「Enter」を押していればよい。
Generating public/private rsa key pair.
Enter file in which to save the key (${HOME}/.ssh/id_rsa): #そのままリターン
Created directory '${HOME}/.ssh'.
Enter passphrase (empty for no passphrase): #そのままリターン
Enter same passphrase again: #そのままリターン
Your identification has been saved in ${HOME}/.ssh/id_rsa.
Your public key has been saved in ${HOME}/.ssh/id_rsa.pub.
2. 作成された ~/.ssh/id_rsa.pub を authorized_keys にrenameする。
>cd .ssh
>mv id_rsa.pub authorized_keys
>mv id_rsa.pub authorized_keys
既に存在するauthorized_keysに追記する場合は
>cat id_rsa.pub >> authorized_keys
>rm id_rsa.pub
>rm id_rsa.pub
3. これをSlave nodeにコピーする。
しかし、suではコピーできないので、一般ユーザーでコピーするようにする。
(参考) : http://oshiete.goo.ne.jp/qa/4676874.html
まずは、suのままで、
>cd
>tar -cvf ssh.tar .ssh/
>mv ssh.tar /home/(usrname)/
>exit
>tar -cvf ssh.tar .ssh/
>mv ssh.tar /home/(usrname)/
>exit
一般ユーザーに戻り、
送りたいslave nodeにsftpする。
>cd
>sftp XXX.XXX.XXX.XXX
>put ssh.tar
>exit
>sftp XXX.XXX.XXX.XXX
>put ssh.tar
>exit
ssh.tarを送ったslave nodeで、
>su
>cp /home/(usrname)/ssh.tar /root
>cd
>rm -rf .ssh/ ※あれば消しておいた方がいいかも
>tar -xvf ssh.tar
そうすると、/rootの下に.ssh/ができてその中にauthorized_keysがあるので、>cp /home/(usrname)/ssh.tar /root
>cd
>rm -rf .ssh/ ※あれば消しておいた方がいいかも
>tar -xvf ssh.tar
suでs系コマンドなどができるはずです。
>ssh 192.168.1.2
・Slaveを一括操作するためのスクリプト
1. scriptを作成(scriptは参考例です・・・)
※非常に危険なので考えて使ってください。
Master nodeで、
>su
>cd
>mkdir sbin
>cd sbin
>cd
>mkdir sbin
>cd sbin
(1). RSH
#!/bin/bash
for n in `seq 2 XX`
do
rsh 192.168.1.$n "$*"
done
exit
do
rsh 192.168.1.$n "$*"
done
exit
(2). RCP
#!/bin/bash
for n in `seq 2 XX`
do
rcp $1 192.168.1.$n:$2
done
exit
do
rcp $1 192.168.1.$n:$2
done
exit
(3). PING
#!/bin/bash
for n in `seq 2 XX`
do
ping 192.168.1.$n
done
exit
do
ping 192.168.1.$n
done
exit
※XXはノードの数。1がマスターノードなので、2のスレイブノードから始める。
※仮に20までならXXは20となる。
2. scriptのパスを通す
.tcshrcの場合なら、マスターノードのsuの.tcshrcに書き足す。
set path = ($path /root/sbin)
>source .tcshrc
>which RCP など
>source .tcshrc
>which RCP など
・IP Masquerade
Slave nodeはMaster nodeを経由してインターネットに接続することになる。
Master nodeに NAT の設定をする必要がある。
1. /etc/sysctl.conf
>su
>emacs -nw /etc/sysctl.conf
この中の>emacs -nw /etc/sysctl.conf
net.ipv4.ip_forward=1
行がコメント分になってるので、コメントをはずす。
2. リロードする。(有効化)
>sysctl -p
net.ipv4.ip_forward=1
正しくリロードされれば、上記のように返ってくるはずです。
3.1. IPtablesの設定
>iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE
>iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT
>iptables -A FORWARD -d 192.168.0.0/24 -m state --state ESTABLISHED,RELATED -j ACCEPT
>iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT
>iptables -A FORWARD -d 192.168.0.0/24 -m state --state ESTABLISHED,RELATED -j ACCEPT
3.2. 確認
>iptables -nL -t nat
4. Ubuntuを起動する度に実行しなければならないので、 /etc/rc.local に記述しておく。
※exit 0の上に必ず書くこと。
>emacs -nw /etc/rc.local
(例)
#IP Masquerade setting fos Slave node 記入した日付 記入した人の名前
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE
iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT
iptables -A FORWARD -d 192.168.0.0/24 -m state --state ESTABLISHED,RELATED -j ACCEPT
#
exit 0
(参考) : http://d.hatena.ne.jp/zenmaikiko/20100510/1273513354iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE
iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT
iptables -A FORWARD -d 192.168.0.0/24 -m state --state ESTABLISHED,RELATED -j ACCEPT
#
exit 0
・NIS
(参考) : http://www.geocities.co.jp/SiliconValley-Cupertino/9120/nis.html
1. Master node(NIS Server)
(1). NISをインストールする
>su
>apt-get install portmap nis
途中、NISのドメインを聞かれるので、「****01.xxxx.intranet」のようにしておけばよい。>apt-get install portmap nis
※このドメイン名はhostsファイルで指定した名前にしておくようにする。(****01.xxxx.intranet)
仮に違う名前を入れてしまった場合は「/proc/sys/kernel/domainname」にNISのドメイン名が入っているのでここを変更すればよい。※インストール中にypbindしようとするので時間がかかるが待てばよい。
(2).
>emacs -nw /etc/hosts.allow
portmap ypserv ypbind : 192.168.1.0/24を追加する。(3).
>emacs -nw /etc/default/nis
NISSERVER=false ↓
NISSERVER=masterに変更する。
(4).
>emacs -nw /etc/yp.conf
domain ****01.xxxx.intranet server 192.168.1.1 を追加する。
※serverのとこは自分のMasterのeth0のIPアドレスに指定すればよい。
(5).
>emacs -nw /etc/ypserv.securenets
(変更前)
# Always allow access for localhost
255.0.0.0 127.0.0.0
# This line gives access to everybody. PLEASE ADJUST!
0.0.0.0 0.0.0.0
255.0.0.0 127.0.0.0
# This line gives access to everybody. PLEASE ADJUST!
0.0.0.0 0.0.0.0
↓
(変更後)
# Always allow access for localhost
255.0.0.0 127.0.0.0
# This line gives access to everybody. PLEASE ADJUST!
#0.0.0.0 0.0.0.0 #この行をコメントアウト
255.255.255.0 192.168.1.0 #この行を追加する(netmask getway)
255.0.0.0 127.0.0.0
# This line gives access to everybody. PLEASE ADJUST!
#0.0.0.0 0.0.0.0 #この行をコメントアウト
255.255.255.0 192.168.1.0 #この行を追加する(netmask getway)
(6). 設定を反映させる
>/usr/lib/yp/ypinit -m
>service nis restart
>make -C /var/yp
※B
※B
※C
>service portmap restart※C
>service nis restart
>make -C /var/yp
ここで、
「failed to send 'clear' to local ypserv: RPC: Program not registeredUpdating passwd.byuid...」
というエラーを受けた場合は、
ypservが動いていないということなので起動させる。
起動させかたは以下の通り。(ubuntu11.10の場合)
>/usr/sbin/ypserv start
※バージョンによって場所が違うようなので注意。
起動させたらまた「/usr/lib/yp/ypinit -m」をかければ動くはずです。
(参考) : http://search.luky.org/fol.2000/msg04601.html
※C
Bでのエラーとは関係なく、/etc/yp.confが反映した名前のディレクトリーが出来ない場合は、再起動すれば直るはず(私はとりあえず再起動したら直りましたw)
2. Slave node(NIS Client)
(1). NISをインストールする
ドメイン名を聞かれるので、先ほどと同じものを入力する。(****01.xxxx.intranet)
>sudo apt-get install -y portmap nis
(2). ユーザー情報などをNISから取り込むよう、各ファイル末尾に + で始まる行を追加する。
※非常に危険なファイルを書き換えるので、あえてemacsで編集して~ファイルを残すようにするとよい。
何かあった場合は名前を変えて元ファイルに変更するようにする。
>su
>emacs -nw /etc/passwd
>emacs -nw /etc/passwd
+::::::
>emacs -nw /etc/group
+:::
>emacs -nw /etc/shadow
+::::::::
+::::::::
※「:」の数が非常に大事なので数を間違えないように
(3). 設定を反映させる
>service nis restart
* Stopping NIS services [ OK ]
* Starting NIS services
>make -C /var/yp
* Stopping NIS services [ OK ]
* Starting NIS services
>make -C /var/yp
(4). 確認する
>ypcat passwd

0 件のコメント:
コメントを投稿