GNU/Linux >> LINUX-Kenntnisse >  >> OpenSuse

Wie man etckeeper verwendet, um /etc in OpenSUSE Leap 15 zu verwalten

Unter Linux/Unix ist die Datei /etc Verzeichnis ist der Ort, an dem hostspezifische systemweite Konfigurationsdateien und Verzeichnisse gespeichert sind; Es ist ein zentraler Speicherort für alle systemweiten Konfigurationsdateien. Eine Konfigurationsdatei ist eine lokale Datei, die verwendet wird, um zu steuern, wie ein Programm funktioniert – sie muss statisch sein und darf keine ausführbare Binärdatei sein.

Um Änderungen an Systemkonfigurationsdateien nachzuverfolgen, erstellen Systemadministratoren normalerweise Kopien (oder Sicherungskopien) von Konfigurationsdateien, bevor sie sie ändern. Auf diese Weise können sie auf die gespeicherte Kopie zurückgreifen, wenn sie die Originaldatei direkt geändert haben und einen Fehler gemacht haben.

In diesem Handbuch lernen wir, wie man etckeeper in Opensuse Leap 15 installiert und konfiguriert.

Etckeeper installieren

Stellen Sie sicher, dass Ihr System auf dem neuesten Stand ist

sudo zypper refresh
sudo zypper update -y

Etckeeper ist in den standardmäßigen OpenSUSE-Repositories verfügbar. Verwenden Sie zum Installieren den folgenden Befehl. Dadurch werden auch Abhängigkeiten installiert:

sudo zypper install etckeeper

Geben Sie y ein, wenn Sie aufgefordert werden, die Installation zu akzeptieren, und warten Sie, bis sie abgeschlossen ist.

Bestätigen Sie das installierte Paket mit diesem Befehl

~> rpm -qi etckeeper
Name        : etckeeper
Version     : 1.18.7
Release     : bp153.1.17
Architecture: x86_64
Install Date: Thu Mar  3 17:44:56 2022
Group       : System/Management
Size        : 113726
License     : GPL-2.0+
Signature   : RSA/SHA256, Sat Mar 13 02:04:56 2021, Key ID 9c214d4065176565
Source RPM  : etckeeper-1.18.7-bp153.1.17.src.rpm
Build Date  : Sat Mar 13 02:04:32 2021
Build Host  : lamb54
Relocations : (not relocatable)
Packager    : https://bugs.opensuse.org
Vendor      : openSUSE
URL         : http://etckeeper.branchable.com/
Summary     : Store /etc under Version Control
Description :
The etckeeper program is a tool to let /etc be stored in a git,
mercurial, bzr or darcs repository. It hooks into yum to automatically
commit changes made to /etc during package upgrades. It tracks file
metadata that version control systems do not normally support, but that
is important for /etc, such as the permissions of /etc/shadow. It is
quite modular and configurable, while also being simple to use if you
understand the basics of working with version control.
Distribution: SUSE Linux Enterprise 15 SP3

Etckeeper konfigurieren

Sobald etckeeper installiert ist, müssen wir es konfigurieren. Die etckeeper-Konfigurationsdatei befindet sich in diesem Pfad /etc/etckeeper/etckeeper.conf.

Öffnen Sie es mit Ihrem bevorzugten Texteditor, ich verwende vim.

sudo vim /etc/etckeeper/etckeeper.conf

Die Konfigurationen in der Datei haben kleine, klare Beschreibungen. Mit den Optionen können Sie das zu verwendende Versionskontrollsystem festlegen und Optionen an VSC übergeben; zum Aktivieren oder Deaktivieren des Timers, Aktivieren oder Deaktivieren spezieller Dateiwarnungen, Aktivieren oder Deaktivieren von etckeeper für das Übertragen bestehender Änderungen an /etc vor der Installation.

Außerdem können Sie den Front-End- oder übergeordneten Paketmanager (wie apt, yum, dnf etc.) und den zugrunde liegenden oder untergeordneten Paketmanager (dpkg, rpm etc.) so einstellen, dass er mit etckeeper zusammenarbeitet. stark> .

Wenn Sie Änderungen an der Datei vorgenommen haben, speichern Sie sie und schließen Sie die Datei.

Git-Repository wird initialisiert

Als nächstes werden wir ein Git-Repository initialisieren, um die Änderungen in unserer /etc. Etckeeper muss mit root oder als Benutzer mit dem Befehl sudo ausgeführt werden. Wechseln wir in das Verzeichnis /etc und initialisieren es .

cd /etc
sudo etckeeper init

Dies ist die Ausgabe auf meinem Server

~> cd /etc
/etc> sudo etckeeper init
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: 	git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: 	git branch -m <name>
Initialized empty Git repository in /etc/.git/

Gehen Sie als Nächstes zu etckeeper Um automatisch arbeiten zu können, müssen Sie den ersten Commit ausführen, um die Änderungen in /etc zu verfolgen , wie folgt.

sudo etckeeper commit "initial commit with original etc configs"

Änderungen vornehmen und sich verpflichten

Nachdem Sie Ihr erstes Commit ausgeführt haben, etckeeper über git verfolgt jetzt alle Änderungen in /etc Verzeichnis. Versuchen Sie nun, Änderungen in einer der Konfigurationsdateien vorzunehmen.

Führen Sie dann den folgenden Befehl aus, um Dateien anzuzeigen, die sich seit dem letzten Commit geändert haben. Dieser Befehl zeigt im Wesentlichen die Änderungen in /etc nicht für Commit bereitgestellt, wobei VCS bedeutet git und „status ” ist ein Git-Unterbefehl.

sudo etckeeper vcs status

Sie sollten eine ähnliche Ausgabe mit den geänderten Dateien sehen:

/etc> sudo etckeeper vcs status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
	modified:   hosts
	modified:   ssh/sshd_config

no changes added to commit (use "git add" and/or "git commit -a")

Bestätigen Sie dann die letzten Änderungen wie folgt.

sudo etckeeper commit "updated hosts file and disallowed root ssh login"

Sie sollten eine ähnliche Ausgabe sehen

/etc> sudo etckeeper commit "updated hosts file and disallowed root ssh login"
[master 9984ce4] updated hosts file and disallowed root ssh login
 Author: ec2-user <[email protected]>
 2 files changed, 3 insertions(+), 3 deletions(-)

Commit-Protokolle anzeigen

Um ein Protokoll aller Commits (ID und Kommentar jedes Commits) anzuzeigen, können Sie den folgenden Befehl ausführen.

sudo etckeeper vcs log

Ausgabe

/etc> sudo etckeeper vcs log
commit 9984ce498ba68d15c8e1ac84dbec7b3cb6e3202f (HEAD -> master)
Author: ec2-user <[email protected]>
Date:   Thu Mar 3 18:02:25 2022 +0000

    updated hosts file and disallowed root ssh login

commit 179ae7654496e9190c700c1ea4584d0ff05d3418
Author: ec2-user <[email protected]>
Date:   Thu Mar 3 17:59:00 2022 +0000

    initial commit with original etc configs

Sie können auch die Details eines Commit anzeigen, geben Sie einfach die Commit-ID an (die ersten paar Zeichen können funktionieren) wie gezeigt:

sudo etckeeper vcs show 9984ce498ba68d15c8e1ac84dbec7b3cb6e3202f

Außerdem können Sie den Unterschied zwischen zwei Commits wie gezeigt anzeigen. Dies ist besonders nützlich, wenn Sie Änderungen widerrufen möchten, wie im nächsten Abschnitt gezeigt. Sie können die Pfeiltasten verwenden, um nach oben und unten oder nach links und rechts zu blättern und durch Drücken von q zu beenden .

sudo etckeeper vcs show 9984ce 179ae

So widerrufen Sie Änderungen

Die Essenz von etckeeper soll Ihnen dabei helfen, Änderungen an Ihrem /etc nachzuverfolgen Verzeichnis und machen Sie die Änderungen gegebenenfalls rückgängig. Angenommen, Sie erkennen, dass Sie einige Fehler in der /etc/ssh/sshd_config gemacht haben Wenn Sie es zuletzt bearbeitet haben und der sshd-Dienst aufgrund von Fehlern in der Konfigurationsstruktur nicht neu gestartet werden kann, können Sie in einem bestimmten Commit (z. B. 9984ce) auf die gespeicherte Kopie zurückgreifen ), wo Sie denken, dass die Konfiguration wie folgt korrekt war.

sudo etckeeper vcs checkout 9984ce /etc/ssh/sshd_config

Alternativ können Sie alle Änderungen verwerfen und zu den Versionen aller Dateien unter /etc zurückkehren (und seine Unterverzeichnisse), die in einem bestimmten Commit gespeichert sind.

sudo etckeeper vcs checkout 9984ce

Änderungen automatisch übernehmen

Etckeeper wird auch mit einem Dienst und Timer-Einheiten für Systemd ausgeliefert , im Paket enthalten. Um „Autocommit ” von Änderungen in /etc starten Sie einfach etckeeper.timer Einheit für den Moment und überprüfen Sie, ob sie betriebsbereit ist, wie folgt.

sudo systemctl start etckeeper.timer

Bestätigen Sie den Status

/etc> sudo systemctl status etckeeper.timer
● etckeeper.timer - Daily autocommit of changes in /etc directory
     Loaded: loaded (/usr/lib/systemd/system/etckeeper.timer; disabled; vendor preset: disabled)
     Active: active (waiting) since Thu 2022-03-03 18:08:39 UTC; 4s ago
    Trigger: Fri 2022-03-04 18:08:39 UTC; 23h left
   Triggers: ● etckeeper.service
       Docs: man:etckeeper(8)

Mar 03 18:08:39 opensusesrv systemd[1]: Started Daily autocommit of changes in /etc directory.

Und aktivieren Sie es, wie gezeigt, beim Systemstart automatisch zu starten.

sudo systemctl enable etckeeper.timer

Schlussfolgerung

In dieser Anleitung haben wir gelernt, wie man etckeeper installiert und verwendet, um Änderungen im /etc-Verzeichnis mit einem Versionsverwaltungssystem wie git zu verwalten.


OpenSuse
  1. So aktualisieren Sie OpenSUSE 12.2 auf 12.3 (Desktop &Server)

  2. So installieren Sie Mongodb 5 in Opensuse Leap 15.3

  3. So installieren Sie Erlang auf Opensuse Leap 15.3

  4. So installieren und verwenden Sie Podman in OpenSUSE Leap 15.3

  5. Wie behandelt Linux mehrere aufeinanderfolgende Pfadtrennzeichen (/home////username///file)?

So installieren Sie Skype auf openSUSE Leap

So installieren Sie TeamViewer 12 auf openSUSE Leap 42.2

So installieren Sie Dropbox auf openSUSE Leap 42.2

So installieren Sie RabbitMQ in OpenSUSE Leap 15.3

So installieren Sie Google Chrome auf openSUSE Leap 15

So installieren Sie PHP 8.0 auf openSUSE 15 Leap