Wyszukiwanie w witrynie

Jak zarządzać /etc za pomocą kontroli wersji za pomocą Etckeeper w systemie Linux


W strukturze katalogów Unix/Linux katalog /etc jest miejscem, w którym znajdują się specyficzne dla hosta, ogólnosystemowe pliki konfiguracyjne i katalogi; jest to centralna lokalizacja wszystkich plików konfiguracyjnych całego systemu. Plik konfiguracyjny to plik lokalny używany do kontrolowania działania programu – musi być statyczny i nie może być wykonywalnym plikiem binarnym.

Aby śledzić zmiany w plikach konfiguracyjnych systemu, administratorzy systemu zwykle tworzą kopie (lub kopie zapasowe) plików konfiguracyjnych przed ich modyfikacją. Dzięki temu, jeśli bezpośrednio zmodyfikowali oryginalny plik i popełnili błąd, będą mogli powrócić do zapisanej kopii.

Etckeeper to prosty, łatwy w użyciu, modułowy i konfigurowalny zbiór narzędzi umożliwiający zarządzanie /etc za pomocą kontroli wersji. Umożliwia przechowywanie zmian w katalogu /etc w systemie kontroli wersji (VCS) takim jak git (który jest preferowanym VCS), repozytorium mercurial, bazaar czy darcs . Dzięki temu możesz używać gita do przeglądania lub cofania zmian wprowadzonych w /etc w przypadku błędu.

Inne jego cechy to:

  1. obsługuje integrację z front-endowymi menedżerami pakietów, w tym APT, YUM, DNF, Zypper i pacman-g2, aby automatycznie zatwierdzać zmiany wprowadzone w /etc podczas aktualizacji pakietów.
  2. śledzi metadane plików (takie jak uprawnienia do plików), których git zwykle nie obsługuje, ale są one ważne dla /etc i
  3. zawiera zarówno zadanie cron, jak i licznik czasu systemd, z których każdy może automatycznie raz dziennie zatwierdzać wychodzące zmiany w /etc.

Jak zainstalować Etckeeper w systemie Linux

Etckeeper jest dostępny w Debianie, Ubuntu, Fedorze i innych dystrybucjach Linuksa. Aby go zainstalować, użyj domyślnego menedżera pakietów, jak pokazano. Pamiętaj, że to polecenie zainstaluje także git i kilka innych pakietów jako zależności.

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

W dystrybucjach Enterprise Linux, takich jak RedHat Enterprise Linux (RHEL), CentOS i innych, musisz dodać Repozytorium EPEL przed jego zainstalowaniem, jak pokazano.

yum install epel-release
yum install etckeeper

Konfiguracja Etckeepera w systemie Linux

Po zainstalowaniu etckeeper jak pokazano powyżej, musisz skonfigurować sposób jego działania, a jego głównym plikiem konfiguracyjnym jest /etc/etckeeper/etckeeper.conf. Aby otworzyć go do edycji, użyj dowolnego z ulubionych edytorów tekstowych, jak pokazano.

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

Plik zawiera kilka opcji konfiguracyjnych (każda z małym, przejrzystym opisem użycia), które pozwalają ustawić używany system kontroli wersji (VCS), przekazać opcje do VSC; aby włączyć lub wyłączyć timer, włączyć lub wyłączyć specjalne ostrzeżenie o pliku, włączyć lub uniemożliwić etckeeperowi zatwierdzanie istniejących zmian w /etc przed instalacją.

Możesz także ustawić menedżera pakietów frontonu lub menedżera pakietów wyższego poziomu (takiego jak apt, yum, dnf itp.) oraz menedżera pakietów bazowego lub niskiego poziomu (dpkg, obr./min itp.), aby współpracowały z etckeeper.

Jeżeli dokonałeś jakichkolwiek zmian w pliku, zapisz je i zamknij.

Inicjowanie repozytorium Git i wykonanie początkowego zatwierdzenia

Teraz, gdy skonfigurowałeś etckeeper, musisz zainicjować repozytorium Git, aby rozpocząć śledzenie wszelkich zmian w katalogu /etc w następujący sposób. Możesz uruchomić etckeeper tylko z uprawnieniami roota, w przeciwnym razie użyj sudo.

cd 
sudo etckeeper init

Następnie przejdź do etckeeper, aby mógł działać automatycznie. Musisz uruchomić pierwsze zatwierdzenie, aby rozpocząć śledzenie zmian w /etc, w następujący sposób.

sudo etckeeper commit "first commit"

Wprowadzanie zmian i zatwierdzanie

Po uruchomieniu pierwszego zatwierdzenia etckeeper za pośrednictwem git śledzi teraz wszelkie zmiany w katalogu /etc. Teraz spróbuj wprowadzić zmiany w którymkolwiek z plików konfiguracyjnych.

Następnie uruchom następującą komendę, aby wyświetlić pliki, które uległy zmianie od ostatniego zatwierdzenia; to polecenie zasadniczo pokazuje zmiany w /etc, które nie zostały przygotowane do zatwierdzenia, gdzie VCS oznacza git, a „status ” to podpolecenie git.

sudo etckeeper vcs status

Następnie zatwierdź ostatnie zmiany w następujący sposób.

sudo etckeeper commit "changed hosts and phpmyadmin config files"

Wyświetl dzienniki zatwierdzeń

Aby wyświetlić dziennik wszystkich zatwierdzeń (identyfikator i komentarz każdego zatwierdzenia), możesz uruchomić następujące polecenie.

sudo etckeeper vcs log

Możesz także wyświetlić szczegóły zatwierdzenia, po prostu określ identyfikator zatwierdzenia (może zadziałać kilka pierwszych znaków), jak pokazano:

sudo etckeeper vcs show a153b68479d0c440cc42c228cbbb6984095f322d
OR
sudo etckeeper vcs show a153b6847

Poza tym możesz zobaczyć różnicę między dwoma zatwierdzeniami, jak pokazano. Jest to szczególnie przydatne, jeśli chcesz odwołać zmiany, jak pokazano w następnej sekcji. Możesz używać klawiszy strzałek do przewijania w górę i w dół lub w lewo i w prawo, a zakończyć, naciskając q.

sudo etckeeper vcs show 704cc56 a153b6847

Jak odwołać zmiany

Istotą etckeeper jest pomoc w śledzeniu zmian w katalogu /etc i odwracaniu zmian w razie potrzeby. Zakładając, że zdajesz sobie sprawę, że podczas ostatniej edycji pliku /etc/nginx/nginx.conf popełniłeś błędy i usługa Nginx nie może zostać ponownie uruchomiona z powodu błędów w strukturze konfiguracji, możesz przywrócić do zapisanej kopii w konkretnym zatwierdzeniu (np. 704cc56), gdzie Twoim zdaniem konfiguracja była prawidłowa w następujący sposób.

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

Alternatywnie możesz anulować wszystkie zmiany i powrócić do wersji wszystkich plików w /etc (i jego podkatalogach) przechowywanych w określonym zatwierdzeniu.

sudo etckeeper vcs checkout 704cc56 

Jak włączyć automatyczne zatwierdzanie zmian

Etckeeper jest również dostarczany z usługą i jednostkami czasowymi dla Systemd, zawartymi w pakiecie. Aby uruchomić „Autocommit” zmian w katalogu /etc, po prostu uruchom na razie jednostkę etckeeper.timer i sprawdź, czy działa , w następujący sposób.

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

I włącz automatyczne uruchamianie przy starcie systemu, jak pokazano.

sudo systemctl enable etckeeper.timer

Więcej informacji można znaleźć na stronie projektu Etckeeper: https://etckeeper.branchable.com/.

Wniosek

W tym przewodniku pokazaliśmy, jak zainstalować i używać etckeeper do przechowywania zmian w katalogu /etc w systemie kontroli wersji (VCS) takie jak git i w razie potrzeby przejrzyj lub cofnij zmiany wprowadzone w /etc. Podziel się swoimi przemyśleniami lub zadaj pytania dotyczące etckeepera, korzystając z poniższego formularza opinii.