etckeeper is a collection of tools to let /etc be stored in a git, mercurial, bazaar or darcs repository. It hooks into apt to automatically commit changes made to /etc during package upgrades. It tracks file metadata that git does not normally support, but that is important for /etc, such as the permissions of /etc/shadow. It’s quite modular and configurable, while also being simple to use if you understand the basics of working with version control.
Install
# EPEL repo is required
rpm -ivh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
# installing etckeeper package
yum install etckeeper -y
Configure
# Initialize git repo for /etc
etckeeper init
# Review the files added
cd /etc
git status
# Execute initial commit
git commit -m "initial checkin"
# pack git repo to save a lot of space
git gc
Manage
# Viewing log
cd /etc && git log
# Restoring /etc copy elsewhere
mkdir /my/workdir
cd /my/workdir
chmod 700 .
git clone root@<hostname>:/etc
cd etc
etckeeper init -d .
chmod 755 ..
Add remote backup server and gitlist web frontend (optional)
-
Please see Gitlist setup howto part from here: https://support.opennodecloud.com/wiki/doku.php?id=usrdoc:os:rancid#installing_gitlist
-
NB! Make sure your backup/admsrv can do passwordless login by ssh key to target host!
# Create backup location
mkdir -p /backup/etckeeper
chmod 750 /backup/etckeeper
chgrp apache /backup/etckeeper
# Clone the repo from node to backup/admsrv
cd /backup/etckeeper
git clone root@<hostname>:/etc/ <hostname>
chmod 750 /backup/etckeeper/<hostname>
chgrp apache /backup/etckeeper/<hostname>
# Add etckeeper repositories path to Gitlist config
nano -w /usr/share/gitlist/config.ini
--- ADD ---
repositories[] = '/backup/etckeeper/' ;
--- ADD ---