さて・・・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さんからも、前回指摘を頂いてましたので) […]