さて・・・Storage鯖もいい感じに出来てきたので、
お次はNetaTalkでTimeMachineを・・・。
なんだか色々うまく行かず、Google先生に質問してみたら、hatさんのBlogにウチのリンクが!
(2015/02/18:しかもコメントまで頂戴しちゃって・・・・)
(2015/02/19:またまたご指摘いただきました・・・感謝感謝・・・・・)
(2015/02/26:やっとActiveDirectoryのユーザーから使えるようになりました)
正直、hatさんのBlogの方が、内容も正確だと思います。
私のは単に作業メモ程度ですが、良かったら読んでやってください。
※ほんとは、素直にSRPMからビルドするのが正道です。
こんな事は普通やんないですが、私はやってみたかったのでw
ウチの環境(インストール時に「WebGUIによる管理」+開発ツールを選択)だと、これが足りずにconfigureで怒られたので、追加でインストールします。
各パッケージ間で依存関係があるので、指定してないパッケージもインストールされますが、そこは気にしない方向でw
yum -y install libdb-devel yum -y install libacl-devel yum -y install libpam-develglobus-gssapi-gsi yum -y install globus-gssapi-gsi-devel yum -y install avahi-devel yum -y install dbus-glib-devel yum -y install cracklib-devel yum -y install systemtap-sdt-develquota yum -y install quota-nls yum -y install quota-nld yum -y install quota-doc yum -y install quota-devel yum -y install quotatool yum -y install tracker yum -y install tracker-devel yum -y install dbus-glib-devel yum -y install cracklib-devel yum -y install systemtap-sdt-devel yum -y install dbus-glib-devel yum -y install libtdb-devel yum -y install libgcrypt libgcrypt-devel yum -y install pam_oath pam_afs_session yum -y install krb5-pkinit yum -y install libevent-devel
さて・・・それでは、コンパイルしていきましょうか。
configureのオプションはこんな感じで付けてみました。
./configure \ --prefix=/usr \ --exec-prefix=/usr \ --datarootdir=/usr/share \ --sysconfdir=/etc/netatalk \ --localstatedir=/var \ --with-init-style=redhat-systemd \ --without-libevent \ --without-tdb \ --with-cracklib \ --enable-krbV-uam \ --with-pam-confdir=/etc/pam.d \ --with-dbus-sysconf-dir=/etc/dbus-1/system.d \ --with-tracker-pkgconfig-version=0.16
日本語で各コンパイルオプションについて解説してるサイトが見当たらないので、ちょっとやってみましょうか・・・と思いましたが、既に有りました・・・orz
(こちらのサイトと、
本家Wikiの解説を読むのが一番な訳ではありますが・・・・)ので、ばっさり削除w
ウチでのconfigureサマリーはこんな感じでした。
色々オプション増やしたお陰で、色々変わりました。
LDAPは色々設定が面倒なのと、Active Directory前提なのでパスしてます。
tcp wrapperについては、良く分かっていませんが、これで良しとしました。
Compilation summary: Compilation summary: CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include -I$(top_srcdir) CFLAGS = -D_U_="__attribute__((unused))" -g -O2 LIBS = -ldl -lcrack PTHREADS: LIBS = CFLAGS = -pthread TRACKER: LIBS = -Wl,--export-dynamic -pthread -ltracker-sparql-0.16 -lgio-2.0 -lgmodule-2.0 -lgobject-2.0 -lglib-2.0 CFLAGS = -pthread -I/usr/include/tracker-0.16 -I/usr/include/tracker-0.16/libtracker-sparql -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include SSL: LIBS = -L/usr/lib64 -lcrypto CFLAGS = -I/usr/include/openssl LIBGCRYPT: LIBS = -lgcrypt -ldl -lgpg-error CFLAGS = PAM: LIBS = -lpam CFLAGS = WRAP: LIBS = CFLAGS = BDB: LIBS = -L/usr/lib64 -ldb-5.3 CFLAGS = GSSAPI: LIBS = -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err CFLAGS = ZEROCONF: LIBS = -lavahi-common -lavahi-client CFLAGS = -D_REENTRANT LIBEVENT: LIBS = CFLAGS = TDB: LIBS = -ltdb CFLAGS = Configure summary: INIT STYLE: redhat-systemd AFP: Extended Attributes: ad | sys ACL support: yes Spotlight: yes CNID: backends: dbd last tdb UAMS: DHX (PAM SHADOW) DHX2 (PAM SHADOW) RANDNUM (afppasswd) Kerberos V clrtxt (PAM SHADOW) guest Options: Zeroconf support: yes tcp wrapper support: no quota support: yes admin group support: yes valid shell check: yes cracklib support: yes ACL support: auto Kerberos support: yes LDAP support: no AFP stats via dbus: yes dtrace probes: yes Paths: Netatalk lockfile: /var/lock/netatalk init directory: /usr/lib/systemd/system dbus system directory: /etc/dbus-1/system.d pam config directory: /etc/pam.d Documentation: Docbook: no [root@nas01 netatalk-3.1.7]#
次にコンパイルとインストールですが、これでOKです。
意味合い的には、前のコマンドが成功したら次へ進め見たいな感じです。最後に”install OK”とエコーされれば全部完了みたいな。
[root@nas01 netatalk-3.1.7]# make && make install && echo "install OK"
インストールが終わったら、いっぺんafpdの状況を確認しましょう。
(ワタクシ的には、/usr/localがちょっと・・・な感じで、あちこち触ったので)
うーむ。”UAM search path” がなんか妙なことになってますが・・・・。
[root@nas01 netatalk-3.1.7]# afpd -V afpd 3.1.7 - Apple Filing Protocol (AFP) daemon of Netatalk This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. Please see the file COPYING for further information and details. afpd has been compiled with support for these features: AFP versions: 2.2 3.0 3.1 3.2 3.3 3.4 CNID backends: dbd last tdb Zeroconf support: Avahi TCP wrappers support: No Quota support: Yes Admin group support: Yes Valid shell checks: Yes cracklib support: Yes EA support: ad | sys ACL support: Yes LDAP support: No D-Bus support: Yes Spotlight support: Yes DTrace probes: Yes afp.conf: /etc/netatalk/afp.conf extmap.conf: /etc/netatalk/extmap.conf state directory: /var/netatalk/ afp_signature.conf: /var/netatalk/afp_signature.conf afp_voluuid.conf: /var/netatalk/afp_voluuid.conf UAM search path: /usr/lib/netatalk// Server messages path: /var/netatalk/msg/
コンパイルが無事通って、バイナリが動きそうな感じがしたら、設定です。
ウチのストレージ鯖は、samba4もいたりして。
winbind動いてるので、そっちに認証させてしまうのが、手間ないかなと思って、/etc/pam.d/netatalkをちょっと編集しました。
#%PAM-1.0 #auth include system-auth #account include system-auth #password include system-auth #session include system-auth auth sufficient pam_winbind.so auth required pam_unix.so account sufficient pam_winbind.so account required pam_unix.so password required pam_unix.so use_authtok session required pam_unix.so
configureのオプションで、設定ファイルを指定したので、/etc/netatalkにあるafp.confファイルを編集していきます。
ウチの場合はこんな感じにしてみました。
(netatalkを入れたかったのは、元々TimeMachineを使いたかったからです)
; ; Netatalk 3.x configuration file ; ; Global server settings spotlight = yes ad domain = admkazuya.org k5 keytab = /etc/netatalk/afpserver.keytab k5 service = afpserver k5 realm = ADMKAZUYA.ORG log file = /var/log/netatalk/afp.log ; log level = default:debug, afpdaemon:debug, logger:debug, uamsdaemon:debug mimic model = RackMac uam list = uams_dhx2.so, uams_gss.so, uam_guest.so [Homes] basedir regex = /external/home [Share] path = /external/share [TimeMachine] path = /external/backup/TimeMachine time machine = yes spotlight = no vol size = 524788
では起動してみましょう。
ウチはCentOSなので、systemctlコマンドから起動やら状態確認をします。見たところうまく各サービスが起動しているように見えます。
[root@nas01 netatalk]# systemctl status netatalk.service netatalk.service - Netatalk AFP fileserver for Macintosh clients Loaded: loaded (/usr/lib/systemd/system/netatalk.service; disabled) Active: active (running) since 木 2015-02-19 20:10:33 JST; 4s ago Docs: man:afp.conf(5) man:netatalk(8) man:afpd(8) man:cnid_metad(8) man:cnid_dbd(8) http://netatalk.sourceforge.net/ Process: 28415 ExecStart=/bin/sh -c /usr/sbin/netatalk (code=exited, status=0/SUCCESS) Main PID: 28417 (netatalk) CGroup: /system.slice/netatalk.service tq28417 /usr/sbin/netatalk tq28418 /usr/sbin/afpd -d -F /etc/netatalk/afp.conf tq28419 /usr/sbin/cnid_metad -d -F /etc/netatalk/afp.conf tq28420 /bin/dbus-daemon --config-file=/etc/netatalk/dbus-session.... tq28425 /usr/libexec/dconf-service tq28434 /usr/libexec/gvfsd tq28439 /usr/libexec/tracker-miner-fs tq28441 /usr/libexec//gvfsd-fuse /root/.gvfs -f -o big_writes tq28447 /usr/libexec/tracker-store tq28466 /usr/libexec/gvfs-udisks2-volume-monitor tq28476 /usr/libexec/gvfs-afc-volume-monitor tq28481 /usr/libexec/gvfs-mtp-volume-monitor tq28485 /usr/libexec/gvfs-goa-volume-monitor tq28488 /usr/libexec/goa-daemon tq28494 /usr/libexec/gvfs-gphoto2-volume-monitor mq28497 /usr/bin/gnome-keyring-daemon --start --foreground --compo... 2月 19 20:10:33 nas01.admkazuya.org systemd[1]: PID file /var/lock/netatalk... 2月 19 20:10:33 nas01.admkazuya.org systemd[1]: Started Netatalk AFP filese... 2月 19 20:10:34 nas01.admkazuya.org goa[28488]: goa-daemon version 3.8.5 st... 2月 19 20:10:34 nas01.admkazuya.org gnome-keyring-daemon[28497]: couldn't s... 2月 19 20:10:34 nas01.admkazuya.org gnome-keyring-daemon[28497]: keyring al... 2月 19 20:10:34 nas01.admkazuya.org gnome-keyring-daemon[28497]: couldn't i... 2月 19 20:10:34 nas01.admkazuya.org goa[28488]: secret_password_store_sync(... 2月 19 20:10:34 nas01.admkazuya.org goa[28488]: secret_password_lookup_sync... 2月 19 20:10:34 nas01.admkazuya.org goa[28488]: /org/gnome/OnlineAccounts/A... Hint: Some lines were ellipsized, use -l to show in full. [root@nas01 netatalk]#
ここまで来たら、Mac側で実際にマウントできるかを確認して行きます。(帰宅後に、キャプチャーなんぞを貼ってみようと思います)
さて・・・最後に。
ログのローテート位は仕掛けて起きますか。
/etc/logrotate.dの下に、netatalkってファイル名で一個ファイル作ってください。
(普段のログは、あんまりでないですが、気がついたら超巨大になってたとか、あんまりいい感じしないのでw)
[root@nas01 logrotate.d]# cat netatalk /var/log/netatalk.log { notifempty rotate 7 missingok sharedscripts copytruncate } [root@nas01 logrotate.d]#
この作業が要るのか、わからなくなってきましたので、「こんな事もやったよ」的な感じで載せておきます。
Active Directory側での作業が一つあります。
netatalkでKerberos認証するときにkeytabファイルを指定するのですが、以下のやり方で生成します。(WindowsServer側での作業になります)
Domain Controllerに管理者権限を持ったアカウントでログインして、以下のコマンドを実行します。
このコマンドを実行したら、カレントディレクトリにafpserver.keytabが出来るので、netatalkを動かすサーバへ転送しておきます。
※しかしこれ、使ってるかどうかが良くわかりません(大汗)
C:\Users\Administrator>ktpass -princ afpserver/nas01.admkazuya.org@ADMKAZUYA.ORG -mapuser administrator@admkazuya.org +rndPass -out afpserver.keytab
実際の出力例はこんな感じです。
C:\Users\Administrator>ktpass -princ afpserver/nas01.admkazuya.org@ADMKAZUYA.ORG -mapuser administrator@admkazuya.org +rndPass -out afpserver.keytab Targeting domain controller: dc01.admkazuya.org Using legacy password setting method Successfully mapped afpserver/nas01.admkazuya.org to Administrator. WARNING: pType and account type do not match. This might cause problems. Key created. Output keytab to afpserver.keytab: Keytab version: 0x502 keysize 78 afpserver/nas01.admkazuya.org@ADMKAZUYA.ORG ptype 0 (KRB5_NT_UNKNOWN) vno 2 etype 0x17 (RC4-HMAC) keylength 16 (0xab97ec5fad3e75023bc662e9bc6f5685) C:\Users\Administrator>
コメント
libevent-develとlibtdb-develをインストールしていて、
ちゃんと–without-libeventと–without-tdbも指定しているのに、
LIBEVENT:
bundled
TDB:
bundled
それらの外部ライブラリが使われずバンドル版になってるのは、不思議です。
なぜなんだろう。
こんな辺境のサイトまでチェック頂きありがとうございます!
メジャーバージョンアップして随分経つのに、やっぱり色々あるんでしょうか?
ウチは思ってたことが出来るようになったので、まぁイイか状態なんですけど(自爆)
afp会話出来ないとTimeMachineが出来ないのが不便ですね。
後はWinbind認証でしょうか。
(Kerberos認証は正直良くわからんです。Wikiにも記載は有りましたが)
Spotlight: noになってるのも、おかしいなあ。
まだまだ見直すとこが山盛りです…orz
今のバイナリだとちゃんとSpotlightもオンになってましてが、サマリーの張り忘れかも。
面倒なことしないで、SRPMから入れた方が楽じゃないですか?
確かにそうなんですが、ちょっと自分でやってみたかったんです(大汗)
spotlite = yes
これはtypoなのでspotlight機能が有効になっていません。
有効になっている場合はsystemctl status netatalkの出力にもっとたくさん出ます。
Oops・・・ご指摘感謝します!
[…] 泣いてばかりはいられないので、netatalkを入れていきましょう。 前回は自前でソースからビルドしましたが、今回はrpmで入れてみます。(HATさんからも、前回指摘を頂いてましたので) […]