-
-
Save darcyliu/f3db52d6d60ef4f4f4ef to your computer and use it in GitHub Desktop.
# Install Time Machine service on CentOS 7 | |
# http://netatalk.sourceforge.net/wiki/index.php/Netatalk_3.1.7_SRPM_for_Fedora_and_CentOS | |
# http://confoundedtech.blogspot.com/2011/07/draft-draft-ubuntu-as-apple-time.html | |
yum install -y rpm-build gcc make wget | |
# install netatalk | |
yum install -y avahi-devel cracklib-devel dbus-devel dbus-glib-devel libacl-devel libattr-devel libdb-devel libevent-devel libgcrypt-devel krb5-devel mysql-devel openldap-devel openssl-devel pam-devel quota-devel systemtap-sdt-devel tcp_wrappers-devel libtdb-devel tracker-devel | |
yum install -y bison docbook-style-xsl flex dconf | |
wget http://www003.upp.so-net.ne.jp/hat/files/netatalk-3.1.7-0.1.fc22.src.rpm | |
rpm -ivh netatalk-3.1.7-0.1.fc22.src.rpm | |
rpmbuild -bb ~/rpmbuild/SPECS/netatalk.spec | |
rpm -ivh ~/rpmbuild/RPMS/x86_64/netatalk-3.1.7-0.1.el7.centos.x86_64.rpm | |
# configuration | |
cat >> /etc/avahi/services/afpd.service << EOF | |
<?xml version="1.0" standalone='no'?> | |
<!DOCTYPE service-group SYSTEM "avahi-service.dtd"> | |
<service-group> | |
<name replace-wildcards="yes">%h</name> | |
<service> | |
<type>_afpovertcp._tcp</type> | |
<port>548</port> | |
</service> | |
<service> | |
<type>_device-info._tcp</type> | |
<port>0</port> | |
<txt-record>model=Xserve</txt-record> | |
</service> | |
</service-group> | |
EOF | |
cat >> /etc/netatalk/afp.conf << EOF | |
[Time Machine] | |
path = /opt/timemachine | |
valid users = tmbackup | |
time machine = yes | |
EOF | |
cat >> /etc/netatalk/afpd.conf << EOF | |
- -transall -uamlist uams_randnum.so,uams_dhx.so,uams_dhx2.so -nosavepassword -advertise_ssh | |
EOF | |
useradd tmbackup | |
mkdir -p /opt/timemachine | |
chown tmbackup:tmbackup /opt/timemachine | |
cat >> /etc/netatalk/AppleVolumes.default << EOF | |
/opt/timemachine TimeMachine allow:tmbackup options:usedots,upriv,tm dperm:0775 fperm:0660 cnidscheme:dbd volsizelimit:200000 | |
EOF | |
cat >> /etc/nsswitch.conf << EOF | |
hosts: files mdns4_minimal dns mdns mdns4 | |
EOF | |
firewall-cmd --zone=public --permanent --add-port=548/tcp | |
firewall-cmd --zone=public --permanent --add-port=548/udp | |
firewall-cmd --zone=public --permanent --add-port=5353/tcp | |
firewall-cmd --zone=public --permanent --add-port=5353/udp | |
firewall-cmd --zone=public --permanent --add-port=49152/tcp | |
firewall-cmd --zone=public --permanent --add-port=49152/udp | |
firewall-cmd --zone=public --permanent --add-port=52883/tcp | |
firewall-cmd --zone=public --permanent --add-port=52883/udp | |
firewall-cmd --reload | |
systemctl enable avahi-daemon | |
systemctl enable netatalk | |
systemctl start avahi-daemon | |
systemctl start netatalk | |
# set password for tmbackup | |
passwd tmbackup |
my mistake, I used sudo to run rpm.
One more thing, based on ArchLinux wiki, netatalk 3.x
uses /etc/netatalk/afp.conf
only, afpd.conf
and AppleVolumes.default
are used by netatalk 2.x
, so it seems unnecessary to create the later two files in your script.
Great script, thank you for sharing! To get this working on a Centos 7 Minimal, the only change i had to make was on line 70:
systemctl enable avahi-daemon.service
And all fully working, thanks for sharing!
fixed it here on my fork:
https://gist.github.com/oneshot719/5b2cddb4911e077bfbe47277f4bbe76d
updated for netatalk 3.1.10:
https://gist.github.com/vimusr/8a310f09a38ae9b50be788a8438af310
Thanks all! This helped me get the newer netatalk working for my wife's Time Machine backups.
I compiled the src rpm on a centos 7 machine and installed it on the time machine host, another centos 7 machine. Everything worked fine -- anybody know why a regular rpm for netatalk is not available?
updated for netatalk 3.1.12:
https://gist.github.com/aidmax/556d6888397186b30862f7445d722af0
updated for netatalk 3.1.12-10 & backup patch change to /home when this fs is bigger:
https://gist.github.com/hrabiamiod/d3627fe53ec18a288263313f15ebd2c2
CentOS7, after
rpm -ivh netatalk-3.1.7-0.1.fc22.src.rpm
no
~/rpmbuild/SPECS/netatalk.spec
at all.