Netatalkで「Time Machine」向けのストレージを作ってみる。
Netatalkで「Time Machine」向けのストレージを作ってみる。 QNAPの場合はこちら[[Apple/TimeMachine/QNAP]]
本家 [[http://netatalk.sourceforge.net/>+http://netatalk.sourceforge.net/]]

***前処理 [#p2d10a50]
firewallとselinuxは停止して、再起動
#code(nonumber){{
[root@c105 ~]# systemctl disable firewalld
[root@c105 ~]# sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/sysconfig/selinux
[root@c105 ~]# reboot
}}
他、Netatalkのドキュメントから必要な追加パッケージをインストール
#code(nonumber){{
[root@c105 ~]# yum install libdb-devel libacl-devel tracker-devel libgcrypt-devel openssl-devel \
avahi-devel tcp_wrappers-devel quota-devel cracklib-devel openldap-devel dbus-glib-devel \
systemtap-sdt-devel pam-devel
}}

***本体取得 [#wdd195fd]
Netatalkは yum でインストールを考えていたが、[[http://pkgs.org/search/netatalk>+http://pkgs.org/search/netatalk]]を見るとCentOS7向けにはないみたい..
なので、本家からソースを取得して作る事にした。
#code(nonumber){{
[root@c105 ~]# mkdir /opt/src && cd /opt/src
[root@c105 src]# wget http://prdownloads.sourceforge.net/netatalk/netatalk-3.1.8.tar.bz2
[root@c105 src]# bzip2 -cd netatalk-3.1.8.tar.bz2 | tar xf - && cd netatalk-3.1.8/
[root@c105 netatalk-3.1.8]# ./configure --with-tracker-pkgconfig-version=1.0 --with-cracklib --with-acls \
               --with-init-style=redhat-systemd \
               --prefix=/opt/netatalk \
               --sysconfdir=/etc \
               --localstatedir=/var \
               --datarootdir=/usr/share \
               --docdir=/usr/share/doc/netatalk-3.1.8 \
               --with-pam=/usr/lib64/security \
               --with-pam-confdir=/etc/pam.d \
               --with-uams-path=/usr/lib64/netatalk \
               --with-dbus-sysconf-dir=/etc/dbus-1/system.d
(中略)
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)
         clrtxt  (PAM SHADOW)
         guest
    Options:
         Zeroconf support:        yes
         tcp wrapper support:     yes
         quota support:           yes
         admin group support:     yes
         valid shell check:       yes
         cracklib support:        yes
         ACL support:             yes
         Kerberos support:        yes
         LDAP support:            yes
         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@c105 netatalk-3.1.8]#
[root@c105 netatalk-3.1.8]# make && make install
}}

***設定ファイル [#x78ca549]

/etc/afp.conf が用意される。とりあえずTimeMachine向けの領域として /share を掘った
#code(nonumber){{
[root@c105 ~]# mkdir /share

[root@c105 ~]# vi /etc/afp.conf
[Global]
log file = /var/log/netatalk.log

; [Homes]
; basedir regex = /xxxx

[My AFP Volume]
path = /share
time machine = yes
[root@c105 ~]#
}}
***起動・停止 [#h1dbe9b5]
コンパイルの際、「--with-init-style=redhat-systemd」としたので systemctl によってコントロールされる。
#code(nonumber){{
[root@c105 ~]# systemctl list-unit-files | grep netatalk
netatalk.service                            disabled

[root@c105 ~]#
}}
起動させてみる
#code(nonumber){{
[root@c105 ~]# systemctl start netatalk
}}
boot時に自動的に起動させるには
#code(nonumber){{
[root@c105 ~]# systemctl enable netatalk
}}
とする。停止は
#code(nonumber){{
[root@c105 ~]# systemctl stop netatalk
}}
で、boot時も停止させたままにするには
#code(nonumber){{
[root@c105 ~]# systemctl disable netatalk
}}
とする。
起動後のログ確認は、設定ファイルで指定した「/var/log/netatalk.log」の他にもsystemctl由来からは
#code(nonumber){{
[root@c105 ~]# journalctl -u netatalk
}}
とする。
***TimeMachine設定 [#f257b5fa]
っで、やっと目的のTimeMachine。
「システム環境設定」の中の「&color(magenta){Time Machine};」をダブルクリックする。
&ref(2016y01m24d_123142451.png,nolink);
すると「&color(magenta){Time Machine};」が起動する。
&ref(2016y01m24d_123245545.png,nolink);
このままではロックされた状態で、設定変更ができないので、左下の「鍵」のマークをクリックして編集可能にする。
その際、パスワード認証が求められ、管理者権限のアカウントとパスワードを入力して鍵を解除する。
&ref(2016y01m24d_123547477.png,nolink);
「&color(magenta){Time Machine};」画面に戻り、左下の「鍵」マークが解錠され、設定変更が可能な画面になる。
ここで、「ディスクを選択...」ボタンを押下する。
&ref(2016y01m24d_123736233.png,nolink);
新たな画面が表示され、タイムマシン向けのディスクを選ぶ。
ここでは先ほど設定したnetatalkで作ったボリューム「My AFP Volume」を選択して、「バックアップディスクとして使用」を押下する。
&ref(2016y01m24d_124319446.png,nolink);
するとnetatalkマシンへの認証が求められます。TimeMachine向けの調整しか施していないので他ユーザは存在しない。
面倒なのでrootアカウントを使用したら「&color(red){{auth.c:226} (error:AFPDaemon): login: root login denied!};」と却下された。
ソースコードのauth.cを見たら、仕様的にそうしているようだ。
なので別のユーザをnetatalkマシンに作ってみた。
#code(nonumber){{
[root@c105 ~]# useradd  netatalk
[root@c105 ~]# echo netatalk | passwd --stdin netatalk
[root@c105 ~]# chown -R netatalk:netatalk /share
}}
っで、ユーザnetatalkでマシン認証を行ってみた。
&ref(2016y01m24d_140837647.png,nolink);
認証が成功すると、
自動的に「入」になって、バックアップのカウントダウンが始まる。
&ref(2016y01m24d_141324499.png,nolink);
っで、カウントダウンが終わり、バックアップが実行される。
&ref(2016y01m24d_141738776.png,nolink);

暫くするとバックアップは完了する
&ref(2016y01m24d_145733521.png,nolink);

netatalkマシンではフォルダが作成される。
#code(nonumber){{
[root@c105 share]# ls -l
合計 8
drwx--S---. 3 netatalk netatalk 4096  1月 24 15:15 lion.sparsebundle
[root@c105 share]#
}}
フォルダ名からホスト名で分類されるようなので、一つのnetatalkマシンで複数の「&color(magenta){Time Machine};」が保存できそうである。
1

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS