1
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

CentOS7(研究室内新設サーバー)の設定メモ

Last updated at Posted at 2018-12-26

構築環境の構造

構成マシン IP (local) 役割・コメント
Router 192.168.x.1 ルーター専用機 DHCPサーバーも兼ねる
hoge001 192.168.x.2 hoge00nを束ねるマスターサーバー
hoge002 192.168.x.3 スレーヴサーバー1
hoge003 192.168.x.4 スレーヴサーバー2
... ... ...

マスターサーバーにルーター機能を担わせようとすると、関連する設定が面倒なので専用機を使って、ローカルネットワークを構築。
ルーターにはグローバル側のIPも振ってあり、ルーターのIPを特定のポートでたたくことでマスターサーバーのあるポートにつながる設定になっている。
注意 この環境自体がローカルネットワークに置いてあるのでセキュリティに関してはかなり甘め。

マスターサーバーがNFSサーバーを担っていて、マスターサーバーのmaster:/homeがスレーヴサーバーのslave:/homeにNFSでマウントされている。
マスターサーバーはNISサーバーも担っていて、アカウントはこちらで管理されている。

IPアドレスの固定

CentOS7では、設定ファイルを直接編集することは非推奨になったらしいので、nmtuiを使って設定する。root権限要。

nmtuiでグラフィカルなアプリが立ち上がるので、カーソルで選んでEnterで対象個所の編集。
例えばeth0の設定を選ぶ場合は<接続の編集>→< eth0 >→<編集...>にすることで、設定の編集ができる。
IPを固定したい場合はIPv4 設定をから<手作業>にし、適宜下記の項目の<追加...>を選ぶ。

設定項目はアドレス、ゲートウェイ、DNS サーバー、検索ドメインの四つ。
アドレスに所望のIPアドレスを記載し、/の後に数字でネットマスクの値を記入。
ゲートウェイ、DNS サーバー、検索ドメインは属しているネットワークの値を記入。
(大学の研究室等のローカルネットワークであれば、IPアドレス以外は、ゲートウェイとなっているルーターが分かっていればそのアドレスを記載すれば動くはず。)
ネットマスクは独立した項目はなく、IPアドレスの最後部、/の後に数字で追記。
例えば255.255.255.0であれば、24なので、192.168.x.y/24みたいな感じで。(~~もしかすると、192.168.x.y/255.255.255.0でも良いのかも。~~この書き方はnmtuiでは機能しなかった。)

上記の<接続の編集>のみでは設定内容は反映されない。
例えば# service network restartでネットワークデーモンを再起動する事で設定が反映される。
リモートでアクセスしている際は、この設定反映させたときに切断されてしまうので注意。
設定が不十分な場合、リモートからは入れず、本体に直接ログインしないといけないかも。

NISとNFSをつかったマスターノードのアカウントと/homeデータの共有に向けた準備

NFSを使ってマスターノードのmaster:/homeをスレーヴノードのslave:/homeにマウントすることを考える。マウント先のディレクトリは空である必要がある。
一方、スレーヴノードにもルート以外に管理用の一般ユーザーアカウントは置いておきたい。(いつでもルートでログイン という状況を避けたい。)

そこで、スレーヴノードでは、管理用一般ユーザーアカウントを作り、そのユーザーのホームディレクトリを/home以外の場所にする必要がある。まだ管理用ユーザーを作成していない場合は、adduserコマンドに適切なオプションをつけてこの目的を達成することができる。
既にアカウントを作ってある場合は、既にあるhomeディレクトリを/home以下以外に移す必要がある。

このホームディレクトリの以降に関連して具体的な手続きに関して参考にしたページ: ホームディレクトリの移行。 - Linuxの缶詰
まだ存在しないディレクトリに移行しようとしたさいでも、コマンドは通ってしまうので注意。

# 各ユーザーのhomeディレクトリの確認
less /etc/passwd
# user_nameの新たなホームディレクトリの指定
usermod -d /directory/for/new/home user_name

手元の実環境特有の設定メモ1

手元の環境では/homeを空ける為に、/home_hostnameを作って、全てそこに移行した。
/home用にディスクがマウントされていたので、

  1. /home_hostnameの作成
  2. /etc/fstabを編集してマウント先を/home_hostnameに変更
  3. umount /homeでアンマウントしてからmount /home_hostnameでマウント
  4. usermodコマンドでホームディレクトリの移動
    という手続きを取った。
    このとき、一般ユーザーでログインしてからsu -でルートになっていると、/home以下がビジーになってしまって、umountusermodもできないので、ルートで直接入る必要がある。

手元の実環境特有の設定メモ2

上の設定メモ1では、/homeが特定のディスク(なりパーティション)にマウントされていた状況が念頭にあった。一方で、/がディスクにマウントされていて、/homeは単にそこにぶら下がっている一ディレクトリのこともある。その際は

  1. /home_hostnameの作成
  2. /home/user_name/home_hostname/user_namemvコマンドで移動
  3. usermodコマンドでホームディレクトリの移動
    となる。ディスクのマウント先を変える時と異なって、ファイルの移動は明示的に行わなければいけないことが、先の設定メモ1の状況との大きな差になる。

NFSの設定

NFSサーバー側の設定

# nfs-utilsのインストール
yum install nfs-utils
# NFSサービスの起動と有効化(自動起動設定)
systemctl start nfs-server
systemctl enable nfs-server

設定ファイルは'/etc/exports'にある。
ここに

/home  192.168.x.0/255.255.255.0(rw,async) #読み書き許可、非同期
/backup 192.168.x.0/255.255.255.0(ro)      #read-only

を記述。(一先ずオプションは適当)
systemctl resatrt nfs-serverでNFSサービスを再起動して、設定を反映。
exportfsコマンドで、正しく反映されているかどうかを確認できる。

NFSクライアント側の設定

設定ファイルは/etc/fstabにある。
ここに

192.168.x.2:/home  /home  nfs defaults 0 0
192.168.x.2:/home  /home  nfs defaults,ro 0 0 #read-only(ro)でマウントしたい場合

を記述。(一先ずオプションは適当)
mount /homeで、master:/homeslave:/homeにマウントされるはず。
(手元の計算機では、足りないアプリは無かったが、NFS関係のアプリケーションが入っていない感じのエラーが出たら、nfs-utilsを入れる必要があるかも)
df -hなどでマウントされているかどうか確認できる。

NISの設定

LDAPの方がNISよりも現代的とのことだけれども、ひとまずLDAPは見送ってNISを使う。
移行とLDAPの概要を紹介している参考ページ: NISの環境からLDAPへの移行 | scwirq's logs

NISサーバー側の設定

参考にしたウェブページ: CentOS 7 NISでユーザ管理 – NISサーバの設定 ← RootLinks Co., Ltd.

# インストール
yum install ypserv
# NISドメイン名を hoge に設定
ypdomainname hoge

NISドメイン名を再起動後も hoge として設定するために/etc/sysconfig/network

NISDOMAIN=hoge

を記載。
NISクライアントとして許可する範囲を/var/yp/securenets

255.255.255.255 127.0.0.1    #ローカルホスト
255.255.255.0   192.168.x.0  #ローカルネットワークの内側

と記載。

# NISサービスの起動と有効化(自動起動設定)
systemctl start ypserv yppasswdd
systemctl enable ypserv yppasswdd

systemtl status ypserv yppasswddで状態を確認できる。

# NISデータベースの更新
/usr/lib64/yp/ypinit -m

対話的に進む。
ホストを追加しないので、ctrl+Dで止め、正しいホスト名が表れていれば y で進む。

NISサーバーにユーザーを追加した場合は、

cd /var/yp
make
systemctl restart ypserv yppasswdd

で新ユーザーが反映される。

NISクライアント側の設定

参考にしたウェブページ: CentOS 7 NISでユーザ管理 – NISクライアントの設定 ← RootLinks Co., Ltd.

# インストール
yum install ypbind yp-tools
# NISドメイン名を hoge に設定
ypdomainname hoge

NISドメイン名を再起動後も hoge として設定するために/etc/sysconfig/network

NISDOMAIN=hoge

を記載。
NISサーバーを名前から探索できるように/etc/hosts

192.168.x.2   hoge001

と記載。

#NIS認証の設定(よく理解していない)
authconfig --enablenis --nisdomain=hoge --nisserver=hoge001 --enablemkhomedir --update
# NISサービスの起動と有効化(自動起動設定)
systemctl start ypbind
systemctl enable ypbind

systemctl status ypbindで状態を確認できる。

うまくいっていれば、ypcat passwdで、紐づいている様子が確認でき、 ypwhichでNISサーバーの場所が帰ってくるはず。

トラブルシューティング

スレーヴサーバー(NISクライアント)にログインした時のユーザー名/グループ名がおかしい

原因の一つはNISのサーバーとクライアントのユーザー間でUID/GIDが重なっていること。これを解消する事で、期待する挙動を示すようになった。
具体的にはusermod -ugroupmod -gでUID/GIDを変える。CentOS7では、UID/GID共に1000から順に番号が増えていく。これを1000→2000, 1001→2001等としてシフトさせた。
これに対応して、クライアントのローカルアカウントのホームディレクトリのオーナーも変えるべきなので、忘れにchownコマンドで対応するものに変える。

(正確なソースで確認したわけではないがUID/GIDが両計算機でかぶっていると、どうも後述するような挙動となるよう。ログインした際、UID(と多分GIDも)をNISサーバーからとってくる。そして、そこからUSER環境変数を代入するときには、どうもNISクライアント内の/etc/passwdを使っているようだった。UID/GIDが重ならないようにすると、USERにはNISサーバーにあるものを使うようになった。)

全ユーザー共通環境設定/etc/profileがスレーヴサーバーへ反映されない

上記の設定ではマスターサーバーのホームディレクトリをNFSで共有しているので、どこかのサーバーから.bashrc/.bash_profileを編集する事で、ログインした計算機に依らず共通の環境設定がなされる。
しかし、/etc以下はNFSで共有していない(ここには色々込み入ったファイルがあるので共有は難しそう)ので、全ユーザー共通環境設定/etc/profileは個々のサーバーにあるものが呼ばれる。
つまり、このファイルで設定する環境を共通の何かにしたい場合は、全てのサーバーの/etc/profileに同じ内容を追記する必要がある。

こうした需要は例えば、アプリを自前で/optに入れて、そこへのPATHを通したいときに発生する。各ユーザーが.bashrc等に追記してもいいかもしれないが、ルートが/etc/profileにしかるべき書き方で記載したほうが単純。マスターサーバーの/optをスレーヴ―サーバーがNFSでマウントすれば、個々の計算機でビルドする必要がなくなる。

authconfigのところでこける

NISサーバー側の/etc/hostsにクライアントからauthconfigをすると、こける。
/etc/hostsにIPとホスト名を追加。

参考

[3]連載「分子シミュレーション研究者のためのPCクラスタ入門」](https://www.jstage.jst.go.jp/article/mssj/17/4/17_209/_pdf) (pdf注意)

chronyの設定

/etc/chrony.conf(抜粋)
server 0.jp.pool.ntp.org iburst
server 1.jp.pool.ntp.org iburst
server 2.jp.pool.ntp.org iburst
server 3.jp.pool.ntp.org iburst
#
minsources 2

で、systemctl restart chronydで再起動。

設定の確認

chronyc tracking
chronyc sources

参考: 5分でできる!NTP(chrony)の設定方法【CentOS7】 – Hacker's High

1
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?