思考実験とD.I.Y.

D.I.Y and Gedankenexperiment

【FreeBSD13.4】ファイルサーバーのメンテ(15):システム設定[2]:am-utilsのインストールと設定

NISの設定が終わりましたので、各種NISマップを引けるようになりました。

そこで、この後の各種設定他が楽になるように、NISマップを使った”am-utils”の設定を行っておきます。【注*1

小生の、”作業記録”&”健忘禄”&”拙宅標準手順書もどき”になっておりますことをご容赦頂ければ幸いです。m(_o_)m

現在は、automount/autofsが主流のようですが(*2*3*4)、

”am-utils[*5]"では、正規表現的にマップを記述でき、かゆいところに手が届くため、
NFSクライアントである、アーキテクチャ/バージョンの異なる各サーバーから、ディレクトリ構造が同じように見る事ができます。

1. am-utilsのコンパイル・インストール

インストールディスクにあるパッケージからインストールするのが速いのですが、小生はportsコレクションからインストールすることが結構あります。

理由は

  • プチカスタマイズしたい場合にはコンパイルする必要があり、portsコレクションであれば、対処できる。
  • コンパイルに際して、/src/ports/distfilesにソースファイルがダウンロードされるので、必要な各アプリのソースが手元に残る。

ことから、今回は、portsコレクションからインストールします😀(*6)。

root@file_sv:# cd /usr/ports/sysutils/am-utils ; portsコレクションに移動。

root@file_sv:# make clean

; 一応、ディレクトリのお掃除。
root@file_sv:# make ; コンパイル
root@file_sv:# make install ; インストール。
root@file_sv:# cd  ; ホームディレクトリに戻る。

 

 

2. am-utilsの設定・起動・確認

(1)”/etc/amd.conf”の作成

まず、”/etc/amd.conf”を作成します(*7)。

root@file_sv:# cd /etc ;

/etcに移動

root@file_sv:# vi /etc/amd.conf ; am-utilsのコンフィグレーションファイルを作成する。

 

 GLOBAL OPTIONS SECTION

[ global ]
print_pid =              yes
pid_file =               /var/run/amd.pid
auto_dir =               /tmp_mnt
#log_file =              /var/log/amd
log_file =               syslog
log_options =            all
dismount_interval =      300
plock =                  no
selectors_in_defaults =  yes
show_statfs_entries =    yes
full_os =                FreeBSD/13.4-RELEASE
os =                     FreeBSD
osver =                  13.4-RELEASE
cache_duration =         300

# DEFINE AN AMD MOUNT POINT
[ /home ]
map_type =               nis
map_name =               amd.home

[..]

 

 

 

 

 

 

 

パラメータfull_osの設定
パラメータos設定

パラメータosver 設定

 

マウントマップをNISから得る
NISマップ名

  • パラメータ” full_os ”、”os”、” osver”をメインファイルサーバー上のディレクトリ構造に合わせた文字列を設定します。
  • NISマップファイルに記載した、”full_os ”、”os”、” osver”変数が置き換えられるます。
  • コマンドuname”を使って変数を置き換えることもできるのですが、
    Linuxでは”uname -a”の返り値を正規表現で置き換えることが出来なかったので、
    amd.conf”ファイルにハードコーディングしてしまいました😅。
(2)”/etc/rc.conf”の修正

amd-utils”を自動起動させるために、”/etc/rc.conf”を修正します。

"/usr/local/etc/rc.d"に”amd-utils”の起動スクリプトがあるのですが、直接実行しようとすると、”/etc/rc.confを修正しろ!”と叱られます😅。

root@file_sv:# cd /etc ;

/etcに移動

root@file_sv:# vi /etc/rc.conf ; rc.confの設定変更。

下記の黄色字部分を追加します。

[..] 

#
zfs_enable="YES"
#

amd_enable="YES"
#

[..]

 

(3)起動

rc.conf設定を反映させるために、再起動します。

root@file_sv:# reboot  

 

(4)動作確認

TeraTerm”でファイルサーバーにログインします。

ユーザーのホームディレクトリがマウントされていれば、正常に動作しています😀。

 

3. ディレクトリ修正

後々の作業・設定のために、とりあえず、ローカルのディレクトリの内、”ports”と”src”をローカルディスクからリモートディスクに変更しておきます😀。

root@file_sv:# cd /usr  

 

root@file_sv:# mv ports ports.local    
root@file_sv:# ln -s /nfs/share/ports .    
root@file_sv:# mv src src.local    
root@file_sv:# ln -s /nfs/share/src .    
 

これで、カーネルの再コンパイル時に”cd /usr/src/sys”に移動するだけで、
バージョン異なっていても、ファイルサーバー上にある、対応するバージョンのリモートディスクを”/tmp_mnt/share/src”を、
”am-utils”が勝手にマウントしてくれますので、
ファイルサーバーのディレクトリ構造、をnfsクライアント上で意識する必要はなくなります(*8)。

【次回に続く予定】

ブログランキング・にほんブログ村へにほんブログ村 IT技術ブログへ

出典・引用・備考

*1:この投稿の内容は、特定の機種並びに特定の環境での確認結果になります。

同等機種や異なる環境での動作他を保証するものではありませんので、ご留意いただけます様お願いいたします。

*2:SunOS4を使っている時はautomountを使ってましたが、
FreeeBSD/PC98を併用し始めて以降、Unix系OSとして、FreeBSD/PC98やLinuxが増えたうえ、
ハードウェアアーキテクチャi386ppcなどが増えたことで、
”am-utils”にたどり着き、以来、使い続けています😀。

*3:当初、マルチアーキテクチャ環境では、ログインスクリプトでaliasを設定して対処していましたが、ログインスクリプト/automountの組み合わせでは、メンテナンス性が悪く、ミスが頻発するようになったこともあります😅。

*4:Ubuntuでは、20.04からam-utilsが利用できなくなっているので😢、Linux系OSでの対処方法は思案中です🤔。

*5:"The Berkeley Automounter Suite of Utilities"、https://www.am-utils.org/、最終閲覧日:2025年5月30日

*6:以下は、ローカルディレクトリで作業していますが、小生の場合、実際にはメインファイルサーバー上のディスクをnfsマウントして、そこで作業しています。
マウントしたnfsディスク上で作業することで、ローカルディスクの節約になる他、ソースファイルなどが複数のマシンに分散するのを防ぐことが出来るためです😀。

*7:小生の場合、他のマシンからftpでコピーして、3のパラメータを修正しています。

*8:”full_os ”、”os”、” osver”変数が適切に設定されていればですが😅。。。