NISのマップファイルの転送をyppushに任せるとなんか毎度うまくいかん。
(cd /varyp; make)
all ===> roydom
updated passwd
yppush: Master's version not newer
yppush: Can't get master address
yppush: Master's version not newer
yppush: Can't get master address
yppush: Master's version not newer
yppush: Can't get master address
yppush: Master's version not newer
yppush: Can't get master address
pushed passwd
上の何度も出ているエラーメッセージ、 Master's version not newer のほうは、自分自身に送ろうとして バージョン番号(時刻)が同じだから中止しているだけなので無視。もいっこのほう。 Can't get master address てなにこれ。またソース開いて確認か……と、 こんな作業を何年かに1度、もう3、4回目。 2/2とか、 2009/4/20とか。あと何回か。 その都度解決はしてるのだが そもそも rsync でできるファイル転送を、より insecure なyppush/ypxfrで やらせようとするばかりにはまるのはもう後免。
いいじゃんssh+rsyncで。
slaveにはrsyncで送ったれ。Makefileにこんなの追加で書いちゃった。
yp: SSH_AUTH_SOCK= rsync -e 'ssh -xa -i update.dsa' \ -auxH --delete /var/yp/nisdomain slave:/var/yp
もちろん専用の鍵ファイル update.dsa
は予め作っておく。
そしてそのpubキーを、slave側の /root/.ssh/authorized_keys
に登録しておく。
no-pty,no-X11-forwarding,from="IPADD.RESS.OF.MASER",command="/usr/local/bin/rsync --server -a --delete . /var/yp" ssh-dss aljfaslkjfalskfjas...
対話的に一回はssh起動しておいて ~/.ssh/known_hosts
に足しておくのを忘れずに。
で、rsyncでなんか問題ある? ypservはdbファイルのinode変わっても いいように作ってあるよね(?)、きっと。