GNU/Linux >> Znalost Linux >  >> OpenSuse

Jak používat etckeeper ke správě /etc v OpenSUSE Leap 15

V Linuxu/Unixu /etc adresář je místo, kde jsou umístěny systémové konfigurační soubory a adresáře specifické pro hostitele; je to centrální umístění pro všechny systémové konfigurační soubory. Konfigurační soubor je místní soubor používaný k řízení fungování programu – musí být statický a nesmí to být spustitelný binární soubor.

Aby bylo možné sledovat změny v konfiguračních souborech systému, správci systému obvykle vytvářejí kopie (nebo zálohy) konfiguračních souborů před jejich úpravou. Tímto způsobem, pokud přímo upravili původní soubor a udělali chybu, mohou se vrátit k uložené kopii.

V této příručce se naučíme, jak nainstalovat a nakonfigurovat etckeeper v Opensuse Leap 15.

Instalace etckeeper

Ujistěte se, že váš systém je aktuální

sudo zypper refresh
sudo zypper update -y

Etckeeper je k dispozici ve výchozích repozitářích OpenSUSE. K instalaci použijte následující příkaz. Tím se také nainstalují závislosti:

sudo zypper install etckeeper

Po zobrazení výzvy k přijetí instalace zadejte y a počkejte na její dokončení.

Potvrďte nainstalovaný balíček tímto příkazem

~> 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

Konfigurace etckeeper

Jakmile je etckeeper nainstalován, musíme jej nakonfigurovat. Konfigurační soubor etckeeper se nachází v této cestě /etc/etckeeper/etckeeper.conf.

Otevřete jej pomocí svého oblíbeného textového editoru, já používám vim.

sudo vim /etc/etckeeper/etckeeper.conf

Konfigurace v souboru mají malé, jasné popisy. Možnosti vám umožňují nastavit systém správy verzí, který se má používat, předat možnosti VSC; povolit nebo zakázat časovač, povolit nebo zakázat upozornění na speciální soubory, povolit nebo zakázat etckeeper odevzdávat existující změny /etc před instalací.

Můžete také nastavit správce front-end nebo správce balíčků na vyšší úrovni (jako je apt, yum, dnf atd.) a základního nebo nízkoúrovňového správce balíčků (dpkg, rpm atd.), aby spolupracovali s etckeeper .

Pokud jste v souboru provedli nějaké změny, uložte je a zavřete soubor.

Inicializace úložiště git

Dále inicializujeme úložiště git, abychom mohli sledovat změny v našem /etc. Etckeeper bude muset být spuštěn s rootem nebo jako uživatel s příkazem sudo. Přepněte se do adresáře /etc a inicializujte jej .

cd /etc
sudo etckeeper init

Toto je výstup na mém serveru

~> 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/

Dále krok pro etckeeper abyste mohli pracovat automaticky, musíte spustit první potvrzení a začít sledovat změny v /etc , následovně.

sudo etckeeper commit "initial commit with original etc configs"

Provádění změn a potvrzení

Po spuštění prvního odevzdání etckeeper přes git nyní sleduje všechny změny v /etc adresář. Nyní zkuste provést změny v libovolném konfiguračním souboru.

Poté spusťte následující příkaz pro zobrazení souborů, které se od posledního odevzdání změnily; tento příkaz v podstatě zobrazuje změny v /etc není připraveno pro potvrzení, kde VCS znamená git a „stav ” je dílčí příkaz git.

sudo etckeeper vcs status

Měli byste vidět výstup podobný tomuto se změněnými soubory:

/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")

Poté potvrďte poslední změny následujícím způsobem.

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

Měli byste vidět výstup podobný tomuto

/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(-)

Zobrazit protokoly závazků

Chcete-li zobrazit protokol všech odevzdání (ID a komentář každého odevzdání), můžete spustit následující příkaz.

sudo etckeeper vcs log

Výstup

/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

Můžete také zobrazit podrobnosti o potvrzení, jednoduše zadejte ID potvrzení (prvních několik znaků může fungovat), jak je znázorněno:

sudo etckeeper vcs show 9984ce498ba68d15c8e1ac84dbec7b3cb6e3202f

Kromě toho můžete vidět rozdíl mezi dvěma potvrzeními, jak je znázorněno. To je zvláště užitečné, pokud chcete zrušit změny, jak je uvedeno v další části. Pomocí kláves se šipkami se můžete posouvat nahoru a dolů nebo doleva a doprava a ukončit stisknutím q .

sudo etckeeper vcs show 9984ce 179ae

Jak odvolat změny

Podstata etckeeper je pomoci vám sledovat změny v /etc adresář a v případě potřeby zvrátit změny. Za předpokladu, že si uvědomujete, že jste udělali nějaké chyby v /etc/ssh/sshd_config když jste ji naposledy upravili a službu sshd nelze restartovat kvůli chybám ve struktuře konfigurace, můžete se vrátit k uložené kopii v konkrétním potvrzení (např. 9984ce ), kde si myslíte, že konfigurace byla správná následovně.

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

Případně můžete zrušit všechny změny a vrátit se k verzím všech souborů pod /etc (a jeho podadresáře) uloženy v konkrétním potvrzení.

sudo etckeeper vcs checkout 9984ce

Povolit automatické potvrzení změn

Etckeeper dodává se také se službou a jednotkami časovače pro Systemd , součástí balení. Chcete-li spustit „Autocommit ” změn v /etc adresáře, jednoduše spusťte etckeeper.timer jednotku a zkontrolujte, zda je v provozu, následovně.

sudo systemctl start etckeeper.timer

Potvrďte stav

/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.

A povolte jeho automatické spouštění při spouštění systému, jak je znázorněno.

sudo systemctl enable etckeeper.timer

Závěr

V této příručce jsme se naučili, jak nainstalovat a používat etckeeper ke správě změn v adresáři /etc pomocí systému správy verzí, jako je git.


OpenSuse
  1. Jak nainstalovat Mongodb 5 v Opensuse Leap 15.3

  2. Jak nainstalovat Mysql Server 8 na OpenSUSE Leap 15.3

  3. Jak nainstalovat a nakonfigurovat Redis 6 na OpenSUSE Leap 15.3

  1. Jak nainstalovat Java 17 v OpenSUSE Leap 15.3

  2. Kdy mám použít /dev/shm/ a kdy /tmp/?

  3. Jak používat @reboot v /etc/cron.d

  1. Jak nainstalovat Erlang na Opensuse Leap 15.3

  2. Jak nainstalovat a používat Podman v OpenSUSE Leap 15.3

  3. Jak nastavit SFTP server na OpenSUSE Leap 15.3 Server