This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
自作クラスタ計算機:nisの基本設定 [2020/03/01 21:14] koudai [管理ノード] |
自作クラスタ計算機:nisの基本設定 [2021/01/24 06:34] koudai [計算ノード] |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== 概要 ====== | ====== 概要 ====== | ||
- | * プライベートLAN内でコンピュータの設定を共有するシステムをNetwork Information Service (NIS) と呼ぶ | + | * プライベートLAN内でコンピュータの設定(ユーザー情報など)を共有するシステムをNetwork Information Service (NIS) と呼びます |
- | * 複数人でクラスタ計算機を使用するとき、それぞれの計算ノードに各自のアカウントを一つずつ作成するのは非常に手間であるので、このシステムを使う | + | * 複数人でクラスタ計算機を使用するとき、それぞれの計算ノードに各自のアカウントを一つずつ作成するのは非常に手間であるので、このシステムを使います |
- | * 共有する設定を管理するサーバをNISサーバと呼び、今回は管理ノードをその役割に当てる | + | * 共有する設定を管理するサーバをNISサーバと呼び、今回は管理ノードをその役割に当てます |
Line 14: | Line 14: | ||
</ | </ | ||
* 途中でNISドメイン名というものを聞かれので kanri.nis などとする。 | * 途中でNISドメイン名というものを聞かれので kanri.nis などとする。 | ||
- | * NISドメイン名は設定を共有するコンピュータのグループの名前のことであり、FQDNにおけるドメイン名とはまったく別物である | + | * NISドメイン名は設定を共有するコンピュータのグループの名前のことであり、IPネットワークで使われるドメイン名とはまったく関係ありません |
- | * NISドメイン名は / | + | * NISドメイン名は / |
- | - / | + | |
- | $ sudo vi / | + | |
- | </ | + | |
- | rpcbind : 127.0.0.1 192.168.0.0/ | + | |
- | </ | + | |
- / | - / | ||
$ sudo vi / | $ sudo vi / | ||
</ | </ | ||
+ | ... | ||
+ | # Are we a NIS server and if so what kind (values: false, slave, master)? | ||
NISSERVER=master | NISSERVER=master | ||
+ | |||
+ | # Are we a NIS client? | ||
+ | NISCLIENT=false | ||
+ | ... | ||
</ | </ | ||
- | - / | + | - / |
$ sudo vi / | $ sudo vi / | ||
- | </ | + | </ |
ypserver 192.168.0.1 | ypserver 192.168.0.1 | ||
</ | </ | ||
Line 36: | Line 37: | ||
(略) | (略) | ||
# This line gives access to everybody. PLEASE ADJUST! | # This line gives access to everybody. PLEASE ADJUST! | ||
- | 255.255.255.0 192.168.0.0 | + | # |
+ | 255.255.255.0 192.168.0.0 | ||
</ | </ | ||
+ | * これによりプライベートネットワークからのみNISサーバへの接続を許可します | ||
+ | - NISを再起動します< | ||
+ | $ sudo systemctl restart rpcbind nis | ||
+ | </ | ||
- NISデータベースを更新する< | - NISデータベースを更新する< | ||
$ sudo / | $ sudo / | ||
At this point, we have to construct a list of the hosts which will run NIS | At this point, we have to construct a list of the hosts which will run NIS | ||
- | servers. | + | servers. |
the names for the other hosts, one per line. When you are done with the | the names for the other hosts, one per line. When you are done with the | ||
list, type a <control D>. | list, type a <control D>. | ||
Line 53: | Line 59: | ||
Is this correct? | Is this correct? | ||
We need a few minutes to build the databases... | We need a few minutes to build the databases... | ||
+ | (以下略) | ||
</ | </ | ||
- | * 途中でNISサーバのホスト名を聞かれるので入力する | + | |
===== 計算ノード ===== | ===== 計算ノード ===== | ||
+ | |||
+ | - NISによってUbuntuがハングアップするのを防ぎます。< | ||
+ | $ sudo vim / | ||
+ | # IPAddressDeny=any をコメントアウト | ||
+ | $ sudo systemctl daemon-reload | ||
+ | </ | ||
+ | * https:// | ||
+ | - NISのパッケージをインストールする< | ||
+ | $ sudo apt install nis | ||
+ | </ | ||
+ | * NISドメイン名は管理ノードで設定したものと同じにする | ||
+ | - / | ||
+ | $ sudo vi / | ||
+ | </ | ||
+ | domain kanri.nis server 192.168.0.1 | ||
+ | </ | ||
+ | - / | ||
+ | $ sudo vi / | ||
+ | </ | ||
+ | (略) | ||
+ | passwd: | ||
+ | group: | ||
+ | shadow: | ||
+ | gshadow: | ||
+ | |||
+ | hosts: | ||
+ | (略) | ||
+ | </ | ||
+ | * ユーザ情報に加えてNISサーバで行われる名前解決も共有するようにしています | ||
+ | * これにより、各計算ノードで /etc/hosts を編集する必要がなくなります | ||
+ | * グループの管理は管理ノードのみで行いたいため、gshadow(グループのパスワードが暗号化されて入っているファイル)は共有しません | ||
+ | - NISを再起動します< | ||
+ | $ sudo systemctl restart rpcbind nis | ||
+ | </ | ||
+ | * 割と時間がかかります。 | ||
+ | |||
+ | |||
+ | |||
+ | ====== 使い方 ====== | ||
+ | |||
+ | - ユーザーを追加するには、管理ノードで次のようにします(以下はユーザーsugimotoを追加する場合)< | ||
+ | $ sudo adduser sugimoto | ||
+ | $ sudo make -C /var/yp | ||
+ | </ | ||
+ | * **NISサーバの共有する情報を変更したとき(つまりユーザーの追加したり、ホストファイルを編集したりしたとき)は、その都度 make -C /var/yp を実行する必要があります** | ||
+ | - 新しいユーザで計算ノードにログインできるか確認します< | ||
+ | $ ssh sugimoto@keisan11 | ||
+ | </ | ||
+ | |||
+ | |||
+ | ====== 補足 ====== | ||
+ | |||
+ | ===== ログインにやたら時間がかかる場合 ===== | ||
+ | |||
+ | * Ubuntu18.04で発生を確認 | ||
+ | * Ubuntu20.04では解決したようです | ||
+ | |||
+ | < | ||
+ | $ sudo vim / | ||
+ | # IPAddressDeny=any をコメントアウト | ||
+ | $ sudo systemctl daemon-reload | ||
+ | </ | ||
+ | |||
+ | ===== udevのアップデートに失敗する場合 ===== | ||
+ | |||
+ | * apt upgrade をすると次のエラーを吐きます< | ||
+ | Job for systemd-udevd.service failed because a timeout was exceeded. | ||
+ | See " | ||
+ | invoke-rc.d: | ||
+ | ● systemd-udevd.service - udev Kernel Device Manager | ||
+ | | ||
+ | | ||
+ | TriggeredBy: | ||
+ | ● systemd-udevd-control.socket | ||
+ | Docs: man: | ||
+ | | ||
+ | Main PID: 50463 (systemd-udevd) | ||
+ | Tasks: 1 | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | xxx xx xx:xx:xx keisan11 systemd[1]: Starting udev Kernel Device Manager... | ||
+ | dpkg: error processing package udev (--configure): | ||
+ | | ||
+ | </ | ||
+ | * Ubuntu 18.04, 20.04 で発生を確認 | ||
+ | |||
+ | < | ||
+ | $ sudo vim / | ||
+ | # IPAddressDeny=any をコメントアウト | ||
+ | $ sudo systemctl daemon-reload | ||
+ | $ sudo apt update | ||
+ | $ sudo apt upgrade | ||
+ | </ | ||
+ | |||
Line 65: | Line 168: | ||
* http:// | * http:// | ||
+ | * http:// | ||