etckeeper mit gitlab verwenden
gitlab vorbereiten
-
Installation: https://about.gitlab.com/downloads/#debian8
-
Gruppe „etckeeper“ in gitlab angelegt
-
1 neues Projekt pro Server in dieser Gruppe angelegt
-
1 dedizierten User für Serverdinge angelegt
-
alle SSH-Pubkey der Server in diesem User hinterlegt.
Installation
apt aptitudeupdate && apt install -y etckeeper git
globale git Konfiguration
git config --global user.name "Oliver Völker" git config --global user.email "info@ovtec.it" git config --global core.editor "vim" git config --global push.default simple
etckeeper Konfiguration
- /etc/etckeeper/etckeeper.conf
-
VCS="git" AVOID_SPECIAL_FILE_WARNING=1 PUSH_REMOTE="origin"
ersten Commit einchecken
cd /etc git init git remote add origin git@gitlab.ovtec.it:etckeeper/`hostname -f`.git etckeeper commit "initial commit"
Dateien ignorieren (Beispiel)
- /etc/.gitignore
-
git rm --cached openvpn/OVTEC/status.txt git add .gitignore
automatische Commits bei Logout
Diese Datei z.B. in /usr/local/share/logout_trap.sh ablegen und beim Login jedes Users z.B. durch einen Eintrag in ~/.profile sourcen lassen.
[
[`id -u`u` -eq 0 ] || return_USER=_USER=""_HOSTNAME=_HOSTNAME=`hostname`hostname` if [ -n "$SUDO_USER"SUDO_USER" ]; then_USER=_USER="$SUDO_USER"SUDO_USER" else # try to check tty ownership, in case user su'd to root_TTY=_TTY="$(tty 2>/dev/null || true)" if [ -n "$_TTY"_TTY" ] && [ -c "$_TTY"_TTY" ]; then_USER=_USER="$(find "$_TTY" -printf "%u")" fi fi_etckeeper()_etckeeper(){{ifif[[-x /usr/bin/usr/bin/git ] && [ -d /etc/etc/.git ]; then ( cd /etcifif[ $(git status --porcelain | wc -l)l) -eq 0 ] ; then return 0 fiifif!!git add --all;all; then echo "warning: git add --all" >&2 fietckeeper commit "Automated commit at exit" ) fi }ifif[[-n "$_USER"_USER" ]; then if [ -z "$GIT_AUTHOR_NAME"GIT_AUTHOR_NAME" ]; then [ -f /home/home/$_USER/_USER/.gitconfig ] &&GIT_AUTHOR_NAME=GIT_AUTHOR_NAME=$(git config -f /home/home/$_USER/_USER/.gitconfig --get user.name)name) [ -z "$GIT_AUTHOR_NAME"GIT_AUTHOR_NAME" ] &&GIT_AUTHOR_NAME=GIT_AUTHOR_NAME="$_USER"_USER" export GIT_AUTHOR_NAME fiifif[[-z "$GIT_AUTHOR_EMAIL"GIT_AUTHOR_EMAIL" ]; then [ -f /home/home/$_USER/_USER/.gitconfig ] &&GIT_AUTHOR_EMAIL=GIT_AUTHOR_EMAIL=$(git config -f /home/home/$_USER/_USER/.gitconfig --get user.)email) [ -z "$GIT_AUTHOR_EMAIL"GIT_AUTHOR_EMAIL" ] &&GIT_AUTHOR_EMAIL=GIT_AUTHOR_EMAIL="$_USER@$_HOSTNAME"_USER@$_HOSTNAME" export GIT_AUTHOR_EMAIL fiifif[[-z "$GIT_COMMITTER_EMAIL"GIT_COMMITTER_EMAIL" ]; then exportGIT_COMMITTER_EMAIL=GIT_COMMITTER_EMAIL=`whoami`whoami`"@$_HOSTNAME"@$_HOSTNAME" fitrap _etckeeper EXIT fi