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};」が保存できそうである。