Vyhledávání na webu

Jak spravovat /etc pomocí správy verzí pomocí Etckeeper na Linuxu


V adresářové struktuře Unix/Linux je adresář /etc místem, kde jsou umístěny konfigurační soubory a adresáře specifické pro celý systém; je to centrální umístění pro všechny systémové konfigurační soubory. Konfigurační soubor je lokální 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.

Etckeeper je jednoduchá, snadno použitelná, modulární a konfigurovatelná sada nástrojů, které umožňují spravovat /etc pomocí správy verzí. Umožňuje vám ukládat změny v adresáři /etc v systému správy verzí (VCS), jako je git (což je preferovaný VCS), mercurial, bazar nebo darcs úložiště. . To vám umožní použít git ke kontrole nebo vrácení změn, které byly provedeny v /etc, v případě chyby.

Jeho další vlastnosti jsou:

  1. podporuje integraci s předními správci balíčků včetně APT, YUM, DNF, Zypper a pacman-g2 pro automatické potvrzení změn provedených v /etc během aktualizací balíčků.
  2. sleduje metadata souboru (jako jsou oprávnění k souboru), která git obvykle nepodporuje, ale která je důležitá pro /etc, a
  3. zahrnuje jak úlohu cron, tak časovač systemd, z nichž každý může automaticky jednou za den potvrdit ukončení změn v /etc.

Jak nainstalovat Etckeeper v Linuxu

Etckeeper je k dispozici v Debian, Ubuntu, Fedoře a dalších distribucích Linuxu. Chcete-li jej nainstalovat, použijte výchozího správce balíčků, jak je znázorněno. Upozorňujeme, že tento příkaz také nainstaluje git a několik dalších balíčků jako závislosti.

sudo apt-get install etckeeper	#Ubuntu and Debian
apt-get install etckeeper		#Debian as root user
dnf install etckeeper			#Fedora 22+
sudo zypper install etckeeper	        #OpenSUSE 15

V distribucích Enterprise Linux, jako je RedHat Enterprise Linux (RHEL), CentOS a dalších, je třeba přidat úložiště EPEL před instalací, jak je znázorněno na obrázku.

yum install epel-release
yum install etckeeper

Konfigurace Etckeeper v Linuxu

Jakmile nainstalujete etckeeper, jak je uvedeno výše, musíte nakonfigurovat, jak bude fungovat, a jeho hlavním konfiguračním souborem je /etc/etckeeper/etckeeper.conf. Chcete-li jej otevřít pro úpravy, použijte libovolný ze svých oblíbených textových editorů, jak je znázorněno.

vim /etc/etckeeper/etckeeper.conf
OR
sudo nano /etc/etckeeper/etckeeper.conf

Soubor obsahuje několik možností konfigurace (každá s malým, jasným popisem použití), které vám umožňují nastavit systém správy verzí (VCS), který se má používat, předat možnosti VSC; povolit nebo zakázat časovač, povolit nebo zakázat varování před speciálními soubory, povolit nebo zakázat etckeeper provádět existující změny v /etc před instalací.

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

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

Inicializace úložiště Git a provedení počátečního potvrzení

Nyní, když jste nakonfigurovali etckeeper, musíte inicializovat repozitář Git, abyste mohli začít sledovat změny ve vašem adresáři /etc následujícím způsobem. etckeeper můžete spustit pouze s oprávněními root, jinak použijte sudo.

cd 
sudo etckeeper init

Dalším krokem, aby etckeeper mohl pracovat automaticky, musíte spustit první commit, abyste mohli začít sledovat změny v /etc, a to následovně.

sudo etckeeper commit "first commit"

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

Po spuštění prvního odevzdání nyní etckeeper prostřednictvím git sleduje všechny změny v adresáři /etc. Nyní zkuste provést změny v některém z konfiguračních souborů.

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ě ukazuje změny v /etc, které nejsou připraveny pro odevzdání, kde VCS znamená git a „status “ je dílčí příkaz git.

sudo etckeeper vcs status

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

sudo etckeeper commit "changed hosts and phpmyadmin config files"

Zobrazit protokoly závazků

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

sudo etckeeper vcs log

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 a153b68479d0c440cc42c228cbbb6984095f322d
OR
sudo etckeeper vcs show a153b6847

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 odvolat změny, jak je uvedeno v další části. Pomocí kláves se šipkami můžete posouvat nahoru a dolů nebo doleva a doprava a ukončit stisknutím q.

sudo etckeeper vcs show 704cc56 a153b6847

Jak odvolat změny

Podstatou etckeeper je pomoci vám sledovat změny ve vašem adresáři /etc a v případě potřeby je vrátit zpět. Za předpokladu, že si uvědomíte, že jste udělali nějaké chyby v /etc/nginx/nginx.conf, když jste jej naposledy upravovali a službu Nginx nelze restartovat kvůli chybám v konfigurační struktuře, můžete se vrátit do uložené kopie v konkrétním odevzdání (např. 704cc56), kde si myslíte, že konfigurace byla správná následovně.

sudo etckeeper vcs checkout 704cc56 /etc/nginx/nginx.conf

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

sudo etckeeper vcs checkout 704cc56 

Jak povolit automatické potvrzení změn

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

sudo systemctl start etckeeper.timer
sudo systemctl status etckeeper.timer

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

sudo systemctl enable etckeeper.timer

Další informace najdete na stránce projektu Etckeeper: https://etckeeper.branchable.com/.

Závěr

V této příručce jsme si ukázali, jak nainstalovat a používat etckeeper pro ukládání změn v adresáři /etc v systému správy verzí (VCS) jako je git a v případě potřeby zkontrolovat nebo vrátit změny provedené v /etc. Podělte se o své myšlenky nebo se zeptejte na etckeeper prostřednictvím formuláře pro zpětnou vazbu níže.