etc Keeper

Installation

Installation von etc Keeper mit git.

apt install git etckeeper

Konfiguration

In der Konfigurationsdatei von etc Keeper /etc/etckeeper/etckeeper.conf folgendes einfügen oder anpassen. Hiermit stellen wir sicher, dass wir git für die Versionskontrolle verwenden.

VCS="git"

Nun das git Repository für die Speicherung der Veränderungen in dem Verzeichnis /etc initialisieren.

etckeeper init

Mit den folgenden Befehlen legen wir einen Autor für das git Repository an.

cd /etc
git config user.email <E-Mail Adresse>
git config user.name  <Name>

Wenn man einen Autor festlegen möchte, der für das gesamte Benutzerkonto gilt, kann man das mit folgenden Befehlen durchführen.

git config --global user.email <E-Mail Adresse>
git config --global user.name  <Name>

Nun speichern wir alle vorhandenen Daten aus /etc zum ersten mal ab, damit wir später Veränderungen nachvollziehen können.

etckeeper commit

Salt State File

etckeeper.sls

# etc Keeper

{% set etckeeper = salt['grains.filter_by']({
  'Debian': {'pkg': 'etckeeper'},
}, default='Debian') %}

{{ etckeeper.pkg }}:
  pkg.installed:
    - name: {{ etckeeper.pkg }}
    # - require:
    #   - sls: gateway.git

{% set pattern = '^(|#)VCS="(.*)"$' %}
{% set repl = 'VCS="git"' %}
/etc/etckeeper/etckeeper.conf:
  file.replace:
    - name: /etc/etckeeper/etckeeper.conf
    - pattern: {{ pattern }}
    - repl: {{ repl }}
    - append_if_not_found: True
    - require:
      - pkg: {{ etckeeper.pkg }}

etckeeper-init:
  cmd.run:
    - cwd: /etc
    - name: etckeeper init
    - unless: test -d /etc/.git
    - require:
      - file: /etc/etckeeper/etckeeper.conf

/etc/.git/config:
  file.append:
    - name: /etc/.git/config
    - text: |
        [user]
            email = root@localhost
            name = root