diff --git a/README.md b/README.md index 1e31785939293638784a5819a716ae3e1b69fe8d..3e42281ff8c5aa8d25a7d06034e150e1b696ead5 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,9 @@ -# etckeeper_install +# Zuerst SSH-Key anlegen falls noch nicht vorhanden. +```ssh-keygen``` + +# Public Key (cat /root/.ssh/id_rsa.pub) dem Gitlab Benutzer hinzufügen. + +# ectkeeper auf dem Host installieren: + +```curl -sL https://www.gitrepo.de/roadit/etckeeper/install/raw/master/install.sh | sudo -E bash -``` \ No newline at end of file diff --git a/install.sh b/install.sh new file mode 100644 index 0000000000000000000000000000000000000000..2d1a01056e5682e72e75c727212f6c328d789754 --- /dev/null +++ b/install.sh @@ -0,0 +1,21 @@ +apt install -y etckeeper git + +echo "VCS=\"git\" +AVOID_SPECIAL_FILE_WARNING=1 +PUSH_REMOTE=\"origin\"" > /etc/etckeeper/etckeeper.conf + +cd /etc +git init + +git config --global user.name "roadit_ectkeeper" +git config --global user.email "ectkeeper@roadit.de" +git config --global core.editor "nano" +git config --global push.default simple + +git remote add origin git@ssh.gitrepo.de:roadit/etckeeper/`hostname -f`.git +etckeeper commit "initial commit" + +wget https://www.gitrepo.de/opensource/etckeeper_install/raw/master/logout_trap.sh > /usr/local/share/logout_trap.sh +chmpd +x /usr/local/share/logout_trap.sh + +echo "/usr/local/share/logout_trap.sh" >> ~/.profile diff --git a/logout_trap.sh b/logout_trap.sh new file mode 100644 index 0000000000000000000000000000000000000000..510a5bf0d14a0ee4817f943d44aee812dcdf7d31 --- /dev/null +++ b/logout_trap.sh @@ -0,0 +1,52 @@ +[ `id -u` -eq 0 ] || return + +_USER="" +_HOSTNAME=`hostname` +if [ -n "$SUDO_USER" ]; then + _USER="$SUDO_USER" +else + # try to check tty ownership, in case user su'd to root + _TTY="$(tty 2>/dev/null || true)" + if [ -n "$_TTY" ] && [ -c "$_TTY" ]; then + _USER="$(find "$_TTY" -printf "%u")" + fi +fi + +_etckeeper() +{ + if [ -x /usr/bin/git ] && [ -d /etc/.git ]; then + ( + cd /etc + + if [ $(git status --porcelain | wc -l) -eq 0 ] ; then + return 0 + fi + + if ! git add --all; then + echo "warning: git add --all" >&2 + fi + + etckeeper commit "Automated commit at exit" + ) + fi +} + +if [ -n "$_USER" ]; then + if [ -z "$GIT_AUTHOR_NAME" ]; then + [ -f /home/$_USER/.gitconfig ] && GIT_AUTHOR_NAME=$(git config -f /home/$_USER/.gitconfig --get user.name) + [ -z "$GIT_AUTHOR_NAME" ] && GIT_AUTHOR_NAME="$_USER" + export GIT_AUTHOR_NAME + fi + + if [ -z "$GIT_AUTHOR_EMAIL" ]; then + [ -f /home/$_USER/.gitconfig ] && GIT_AUTHOR_EMAIL=$(git config -f /home/$_USER/.gitconfig --get user.email) + [ -z "$GIT_AUTHOR_EMAIL" ] && GIT_AUTHOR_EMAIL="$_USER@$_HOSTNAME" + export GIT_AUTHOR_EMAIL + fi + + if [ -z "$GIT_COMMITTER_EMAIL" ]; then + export GIT_COMMITTER_EMAIL=`whoami`"@$_HOSTNAME" + fi + + trap _etckeeper EXIT +fi