自作クラスタ計算機:nisの基本設定
Table of Contents
概要
- プライベートLAN内でコンピュータの設定(ユーザー情報など)を共有するシステムをNetwork Information Service (NIS) と呼びます
- 複数人でクラスタ計算機を使用するとき、それぞれの計算ノードに各自のアカウントを一つずつ作成するのは非常に手間であるので、このシステムを使います
- 共有する設定を管理するサーバをNISサーバと呼び、今回は管理ノードをその役割に当てます
- 現在ではNISはレガシーなので(例えば以下で述べるアップデート関係の問題も一向に対処されません)、LDAPなど別の手段も検討してください
設定方法
管理ノード
- NISのパッケージをインストールする
sudo apt install nis
- 途中でNISドメイン名を聞かれので、好きなように設定してください(以下では kanri.nis とします)
- 「NISドメイン名」はNISにより設定を共有するコンピュータのグループの名前のことで、DNSのドメイン名とは別物です
- NISドメイン名は /etc/defaultdomain に保存されるので、変更したくなったらこのファイルを編集してください
- 設定したNISドメイン名は次のコマンドで確認できます
$ domainname
- /etc/defalut/nis に管理ノードをNISサーバとすることを指定する
$ sudo vi /etc/defalut/nis
- nis
... # Are we a NIS server and if so what kind (values: false, slave, master)? NISSERVER=master # Are we a NIS client? NISCLIENT=false ...
- /etc/yp.conf にNISサーバのIPアドレスまたはホスト名を指定する
$ sudo vi /etc/yp.conf
- yp.conf
ypserver 192.168.0.1
- /etc/ypserv.securenets の最終行をプライベートLANのネットマスクとIPアドレスに変更する
$ sudo vi /etc/ypserv.securenets
- ypserv.securenets
(略) # This line gives access to everybody. PLEASE ADJUST! #0.0.0.0 0.0.0.0 255.255.255.0 192.168.0.0
- これによりプライベートネットワークからのみNISサーバへの接続を許可します
- NISを再起動します
$ sudo systemctl restart rpcbind nis
- NISデータベースを更新する
$ sudo /usr/lib/yp/ypinit -m At this point, we have to construct a list of the hosts which will run NIS servers. kanri is in the list of NIS server hosts. Please continue to add the names for the other hosts, one per line. When you are done with the list, type a <control D>. next host to add: kanri next host to add: # Ctrl + D キー The current list of NIS servers looks like this: kanri Is this correct? [y/n: y] y We need a few minutes to build the databases... (以下略)
計算ノード
- NISによってUbuntuがハングアップするのを防ぎます。
$ sudo vim /lib/systemd/system/systemd-logind.service # IPAddressDeny=any をコメントアウト $ sudo systemctl daemon-reload
- NISのパッケージをインストールする
$ sudo apt install nis
- NISドメイン名は管理ノードで設定したものと同じにする
- /etc/yp.conf にNISドメイン名とNISサーバのIPアドレスを指定する
$ sudo vi /etc/yp.conf
- yp.conf
domain kanri.nis server 192.168.0.1
- /etc/nsswitch.conf に、/etc/ にある passwd, group, shadow, hosts はNISサーバのものを使用するように指定する(OSのバージョンによって微妙に変わってくるが、それぞれの項目の先頭に nis を付け加えるだけでオーケー)
$ sudo vi /etc/nsswitch.conf
- nsswitch.conf
(略) passwd: nis files systemd group: nis files systemd shadow: nis files gshadow: files hosts: nis files dns (略)
- ユーザ情報に加えてNISサーバで行われる名前解決も共有するようにしています
- これにより、各計算ノードで /etc/hosts を編集する必要がなくなります
- グループの管理は管理ノードのみで行いたいため、gshadow(グループのパスワードが暗号化されて入っているファイル)は共有しません
- NISを再起動します(やたら時間がかかります。10分くらい、原因不明)
$ sudo systemctl restart rpcbind nis
- どのマシンの情報が共有されているかを見て、正しく設定されたか確認します
$ ypwhich kanri
使い方
- ユーザーを追加するには、管理ノードで次のようにします(以下はユーザーsugimotoを追加する場合)
$ sudo adduser sugimoto $ sudo make -C /var/yp
- NISサーバの共有する情報を変更したとき(つまりユーザーの追加したり、ホストファイルを編集したりしたとき)は、その都度 make -C /var/yp を実行する必要があります
- 新しいユーザで計算ノードにログインできるか確認します
$ ssh sugimoto@keisan11
補足
ログインにやたら時間がかかる場合
- Ubuntu18.04で発生を確認
- Ubuntu20.04では未確認
$ sudo vim /lib/systemd/system/systemd-logind.service # IPAddressDeny=any をコメントアウト $ sudo systemctl daemon-reload
udevのアップデートに失敗する場合
- apt upgrade をすると次のエラーを吐きます
Job for systemd-udevd.service failed because a timeout was exceeded. See "systemctl status systemd-udevd.service" and "journalctl -xe" for details. invoke-rc.d: initscript udev, action "restart" failed. ● systemd-udevd.service - udev Kernel Device Manager Loaded: loaded (/lib/systemd/system/systemd-udevd.service; static; vendor preset: enabled) Active: activating (start) since Xxx xxxx-xx-xx xx:xx:xx UTC; 20ms ago TriggeredBy: ● systemd-udevd-kernel.socket ● systemd-udevd-control.socket Docs: man:systemd-udevd.service(8) man:udev(7) Main PID: 50463 (systemd-udevd) Tasks: 1 Memory: 940.0K CGroup: /system.slice/systemd-udevd.service └─50463 /lib/systemd/systemd-udevd xxx xx xx:xx:xx keisan11 systemd[1]: Starting udev Kernel Device Manager... dpkg: error processing package udev (--configure): installed udev package post-installation script subprocess returned error exit status 1
- Ubuntu 18.04, 20.04 で発生を確認
$ sudo vim /lib/systemd/system/systemd-udevd.service # IPAddressDeny=any をコメントアウト $ sudo apt update $ sudo apt upgrade -y
参考
自作クラスタ計算機/nisの基本設定.txt · Last modified: 2024/08/25 01:04 by koudai