GNU/Linux >> Linux Esercitazione >  >> OpenSuse

Come usare etckeeper per gestire /etc in OpenSUSE Leap 15

In Linux/Unix, il /etc directory è la posizione in cui si trovano i file e le directory di configurazione a livello di sistema specifici dell'host; è una posizione centrale per tutti i file di configurazione a livello di sistema. Un file di configurazione è un file locale utilizzato per controllare il funzionamento di un programma:deve essere statico e non può essere un binario eseguibile.

Per tenere traccia delle modifiche ai file di configurazione del sistema, gli amministratori di sistema normalmente eseguono copie (o backup) dei file di configurazione prima di modificarli. In questo modo, se hanno modificato direttamente il file originale e hanno commesso un errore, possono ripristinare la copia salvata.

In questa guida impareremo come installare e configurare etckeeper in Opensuse Leap 15.

Installazione di etckeeper

Assicurati che il tuo sistema sia aggiornato

sudo zypper refresh
sudo zypper update -y

Etckeeper è disponibile nei repository OpenSUSE predefiniti. Per installare, utilizzare il comando seguente. Questo installerà anche le dipendenze:

sudo zypper install etckeeper

Digitare y quando viene richiesto di accettare l'installazione e attendere il completamento.

Conferma il pacchetto installato con questo comando

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

Configurazione di etckeeper

Una volta installato etckeeper, dobbiamo configurarlo. Il file di configurazione etckeeper si trova in questo percorso /etc/etckeeper/etckeeper.conf.

Aprilo usando il tuo editor di testo preferito, sto usando vim.

sudo vim /etc/etckeeper/etckeeper.conf

Le configurazioni nel file hanno descrizioni piccole e chiare. Le opzioni ti consentono di impostare il sistema di controllo della versione da utilizzare, passare le opzioni a VSC; per abilitare o disabilitare il timer, abilitare o disabilitare gli avvisi di file speciali, abilitare o disabilitare etckeeper dal commit delle modifiche esistenti a /etc prima dell'installazione.

Inoltre, puoi impostare il gestore di pacchetti front-end o di livello superiore (come apt, yum, dnf ecc.) e il gestore di pacchetti sottostante o di basso livello (dpkg, rpm ecc.) in modo che funzionino con etckeeper .

Se hai apportato modifiche al file, salvalo e chiudi il file.

Inizializzazione del repository git

Successivamente inizializzeremo un repository git per tenere traccia delle modifiche nel nostro /etc. Etckeeper dovrà essere eseguito con root o come utente con il comando sudo. Passiamo alla directory /etc e inizializziamola .

cd /etc
sudo etckeeper init

Questo è l'output sul mio 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/

Quindi, passa per etckeeper per poter lavorare automaticamente, devi eseguire il primo commit per iniziare a tenere traccia delle modifiche in /etc , come segue.

sudo etckeeper commit "initial commit with original etc configs"

Apportare modifiche e impegnarsi

Dopo aver eseguito il tuo primo commit, etckeeper tramite git sta ora monitorando eventuali modifiche in /etc directory. Ora prova ad apportare modifiche in uno qualsiasi dei file di configurazione.

Quindi esegui il comando seguente per mostrare i file che sono cambiati dall'ultimo commit; questo comando mostra essenzialmente le modifiche in /etc non predisposto per il commit, dove VCS significa git e "stato ” è un sottocomando git.

sudo etckeeper vcs status

Dovresti vedere un output simile a questo con i file che sono cambiati:

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

Quindi salva le modifiche recenti come segue.

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

Dovresti vedere un output simile a questo

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

Visualizza registri dei commit

Per visualizzare un registro di tutti i commit (l'id e il commento di ogni commit), puoi eseguire il comando seguente.

sudo etckeeper vcs log

Uscita

/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

Puoi anche mostrare i dettagli di un commit, specificando semplicemente l'ID commit (i primi caratteri possono funzionare) come mostrato:

sudo etckeeper vcs show 9984ce498ba68d15c8e1ac84dbec7b3cb6e3202f

Inoltre, puoi visualizzare la differenza tra due commit come mostrato. Ciò è particolarmente utile se si desidera revocare le modifiche come mostrato nella sezione successiva. Puoi utilizzare i tasti freccia per scorrere su e giù o sinistra e destra e uscire premendo q .

sudo etckeeper vcs show 9984ce 179ae

Come revocare le modifiche

L'essenza di etckeeper serve per aiutarti a tenere traccia delle modifiche al tuo /etc directory e annullare le modifiche ove necessario. Supponendo che ti rendi conto di aver commesso degli errori in /etc/ssh/sshd_config quando l'hai modificato l'ultima volta e il servizio sshd non può essere riavviato a causa di errori nella struttura di configurazione, puoi ripristinare la copia salvata in un commit specifico (ad es. 9984ce ) dove ritieni che la configurazione fosse corretta come segue.

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

In alternativa, puoi annullare tutte le modifiche e ripristinare le versioni di tutti i file in /etc (e le sue sottodirectory) memorizzate in un commit specifico.

sudo etckeeper vcs checkout 9984ce

Abilita l'applicazione automatica delle modifiche

Eccentrico viene fornito anche con un servizio e unità timer per Systemd , compreso nella confezione. Per avviare "Autocommit ” di modifiche nel /etc directory, avvia semplicemente etckeeper.timer unità per ora e verificare se è attiva e funzionante, come segue.

sudo systemctl start etckeeper.timer

Conferma lo stato

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

E abilitalo per l'avvio automatico all'avvio del sistema come mostrato.

sudo systemctl enable etckeeper.timer

Conclusione

In questa guida abbiamo imparato come installare e usare etckeeper per gestire le modifiche nella directory /etc usando un sistema di gestione delle versioni come git.


OpenSuse
  1. Come aggiornare OpenSUSE 12.2 a 12.3 (desktop e server)

  2. Come installare Mongodb 5 in Opensuse Leap 15.3

  3. Come installare Mysql Server 8 su OpenSUSE Leap 15.3

  4. Come installare e utilizzare Podman in OpenSUSE Leap 15.3

  5. Come configurare un server SFTP su OpenSUSE Leap 15.3 Server

Come installare Skype su openSUSE Leap

Come installare TeamViewer 12 su openSUSE Leap 42.2

Come installare Dropbox su openSUSE Leap 42.2

Come installare RabbitMQ in OpenSUSE Leap 15.3

Come installare Google Chrome su openSUSE Leap 15

Come installare PHP 8.0 su openSUSE 15 Leap