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/11 13:05] koudai [管理ノード] |
自作クラスタ計算機:nisの基本設定 [2022/10/02 05:34] koudai [計算ノード] |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== 概要 ====== | ====== 概要 ====== | ||
- | * プライベートLAN内でコンピュータの設定を共有するシステムをNetwork Information Service (NIS) と呼びます | + | * プライベートLAN内でコンピュータの設定(ユーザー情報など)を共有するシステムをNetwork Information Service (NIS) と呼びます |
- | * 複数人でクラスタ計算機を使用するとき、それぞれの計算ノードに各自のアカウントを一つずつ作成するのは非常に手間であるので、このシステムを使う | + | * 複数人でクラスタ計算機を使用するとき、それぞれの計算ノードに各自のアカウントを一つずつ作成するのは非常に手間であるので、このシステムを使います |
* 共有する設定を管理するサーバをNISサーバと呼び、今回は管理ノードをその役割に当てます | * 共有する設定を管理するサーバをNISサーバと呼び、今回は管理ノードをその役割に当てます | ||
+ | * **(追記)現在ではNISはレガシーです。LDAPなど別の手段を検討してください** | ||
====== 設定方法 ====== | ====== 設定方法 ====== | ||
Line 13: | Line 13: | ||
sudo apt install nis | sudo apt install nis | ||
</ | </ | ||
- | * 途中でNISドメイン名というものを聞かれので kanri.nis などとする。 | + | * 途中でNISドメイン名というものを聞かれので kanri.nis などと好みのものを設定してください |
- | * NISドメイン名は設定を共有するコンピュータのグループの名前のことであり、IPネットワークで使われるドメイン名とはまったく関係ありません | + | * 「NISドメイン名」はNISにより設定を共有するコンピュータのグループの名前のことであり、DNSで使われているドメイン名と混同しやすいので注意してください(まったくの別物です) |
* NISドメイン名は / | * NISドメイン名は / | ||
+ | * 設定したNISドメイン名は次のコマンドで確認できます< | ||
+ | $ domainname </ | ||
- / | - / | ||
$ 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 | ||
+ | ... | ||
</ | </ | ||
- / | - / | ||
Line 31: | Line 39: | ||
(略) | (略) | ||
# This line gives access to everybody. PLEASE ADJUST! | # This line gives access to everybody. PLEASE ADJUST! | ||
- | #02.0.0.0 0.0.0.0 | + | #0.0.0.0 0.0.0.0 |
255.255.255.0 192.168.0.0 | 255.255.255.0 192.168.0.0 | ||
</ | </ | ||
* これによりプライベートネットワークからのみNISサーバへの接続を許可します | * これによりプライベートネットワークからのみ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 51: | Line 62: | ||
We need a few minutes to build the databases... | We need a few minutes to build the databases... | ||
(以下略) | (以下略) | ||
- | </ | ||
- | - NISを再起動します< | ||
- | $ sudo systemctl restart nis | ||
</ | </ | ||
+ | |||
Line 60: | Line 69: | ||
===== 計算ノード ===== | ===== 計算ノード ===== | ||
+ | - NISによってUbuntuがハングアップするのを防ぎます。< | ||
+ | $ sudo vim / | ||
+ | # IPAddressDeny=any をコメントアウト | ||
+ | $ sudo systemctl daemon-reload | ||
+ | </ | ||
+ | * https:// | ||
- NISのパッケージをインストールする< | - NISのパッケージをインストールする< | ||
- | sudo apt install nis | + | $ sudo apt install nis |
</ | </ | ||
- | * NISドメイン名はNISサーバのときに設定したものと同じにする | + | * NISドメイン名は管理ノードで設定したものと同じにする |
- / | - / | ||
$ sudo vi / | $ sudo vi / | ||
Line 69: | Line 84: | ||
domain kanri.nis server 192.168.0.1 | domain kanri.nis server 192.168.0.1 | ||
</ | </ | ||
- | - / | + | - / |
$ sudo vi / | $ sudo vi / | ||
</ | </ | ||
(略) | (略) | ||
- | passwd: | + | passwd: |
- | group: | + | group: |
- | shadow: | + | shadow: |
gshadow: | gshadow: | ||
- | hosts: | + | hosts: |
(略) | (略) | ||
</ | </ | ||
Line 85: | Line 100: | ||
* グループの管理は管理ノードのみで行いたいため、gshadow(グループのパスワードが暗号化されて入っているファイル)は共有しません | * グループの管理は管理ノードのみで行いたいため、gshadow(グループのパスワードが暗号化されて入っているファイル)は共有しません | ||
- NISを再起動します< | - NISを再起動します< | ||
- | $ sudo systemctl restart nis | + | $ sudo systemctl restart |
+ | </ | ||
+ | - どのマシンの情報が共有されているかを見て、正しく設定されたか確認します< | ||
+ | $ ypwhich | ||
+ | kanri | ||
</ | </ | ||
- | |||
- | |||
====== 使い方 ====== | ====== 使い方 ====== | ||
Line 96: | Line 113: | ||
$ sudo make -C /var/yp | $ sudo make -C /var/yp | ||
</ | </ | ||
- | * NISサーバの共有する情報を変更したときは、その都度 make -C /var/yp を実行する必要があります | + | |
- 新しいユーザで計算ノードにログインできるか確認します< | - 新しいユーザで計算ノードにログインできるか確認します< | ||
$ ssh sugimoto@keisan11 | $ 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: | ||
+ | | ||
+ | | ||
+ | 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 | ||
+ | </ | ||
+ | |||