Linux'ta Etckeeper Kullanarak Sürüm Kontrolü ile /etc Nasıl Yönetilir


Unix/Linux dizin yapısında /etc dizini, ana makineye özgü sistem çapındaki yapılandırma dosyalarının ve dizinlerinin bulunduğu yerdir; sistem çapındaki tüm yapılandırma dosyaları için merkezi bir konumdur. Yapılandırma dosyası, bir programın nasıl çalıştığını kontrol etmek için kullanılan yerel bir dosyadır; statik olmalıdır ve çalıştırılabilir bir ikili dosya olamaz.

Sistem yapılandırma dosyalarındaki değişiklikleri takip etmek için, sistem yöneticileri normalde yapılandırma dosyalarını değiştirmeden önce kopyalarını (veya yedeklerini) alırlar. Bu şekilde, orijinal dosyayı doğrudan değiştirip bir hata yapmaları durumunda kaydedilen kopyaya geri dönebilirler.

Etckeeper, /etc'in sürüm kontrolü kullanılarak yönetilmesini sağlayan basit, kullanımı kolay, modüler ve yapılandırılabilir bir araç koleksiyonudur. Değişiklikleri git (tercih edilen VCS), mercurial, bazaar veya darcs deposu gibi bir sürüm kontrol sistemindeki (VCS) /etc dizininde saklamanıza olanak tanır. . Böylece, bir hata durumunda /etc dosyasında yapılan değişiklikleri gözden geçirmek veya geri almak için git'i kullanmanıza olanak tanır.

Diğer özellikleri şunlardır:

  1. paket yükseltmeleri sırasında /etc dosyasında yapılan değişiklikleri otomatik olarak uygulamak için APT, YUM, DNF, Zypper ve pacman-g2 gibi ön uç paket yöneticileriyle entegrasyonu destekler.
  2. Git'in genellikle desteklemediği ancak /etc için önemli olan dosya meta verilerini (dosya izinleri gibi) izler ve
  3. hem bir cron işi hem de bir systemd zamanlayıcısı içerir; bunların her biri mevcut değişiklikleri günde bir kez otomatik olarak /etc dosyasına aktarabilir.

Linux'ta Etckeeper Nasıl Kurulur

Etckeeper, Debian, Ubuntu, Fedora ve diğer Linux dağıtımlarında mevcuttur. Yüklemek için gösterildiği gibi varsayılan paket yöneticinizi kullanın. Bu komutun ayrıca git'i ve diğer birkaç paketi bağımlılık olarak kuracağını unutmayın.

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

RedHat Enterprise Linux (RHEL), CentOS ve diğerleri gibi Enterprise Linux dağıtımlarında, Gösterildiği gibi yüklemeden önce EPEL deposu.

yum install epel-release
yum install etckeeper

Linux'ta Etckeeper'ı Yapılandırma

etckeeper'ı yukarıda gösterildiği gibi yükledikten sonra, nasıl çalışacağını yapılandırmanız gerekir ve ana yapılandırma dosyası /etc/etckeeper/etckeeper.conf'dur. Düzenlemek üzere açmak için, favori metin tabanlı düzenleyicilerinizden herhangi birini gösterildiği gibi kullanın.

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

Dosya, kullanılacak sürüm kontrol sistemini (VCS) ayarlamanıza, seçenekleri VSC'ye aktarmanıza olanak tanıyan çeşitli yapılandırma seçenekleri (her biri küçük ve net bir kullanım açıklamasına sahiptir) içerir; zamanlayıcıyı etkinleştirmek veya devre dışı bırakmak, özel dosya uyarısını etkinleştirmek veya devre dışı bırakmak, etckeeper'ın kurulumdan önce mevcut değişiklikleri /etc dosyasına işlemesini etkinleştirmek veya devre dışı bırakmak için.

Ayrıca, ön uç veya üst düzey paket yöneticisini (apt, yum, dnf vb. gibi) ve temel veya alt düzey paket yöneticisini (dpkg, rpm vb.) etckeeper.

Dosyada herhangi bir değişiklik yaptıysanız kaydedin ve dosyayı kapatın.

Git Deposunu Başlatma ve İlk Taahhüdü Gerçekleştirme

Artık etckeeper'ı yapılandırdığınıza göre, /etc dizininizdeki değişiklikleri aşağıdaki gibi izlemeye başlamak için Git deposunu başlatmanız gerekir. etckeeper'ı yalnızca root izinleriyle çalıştırabilirsiniz, aksi halde sudo'yu kullanın.

cd 
sudo etckeeper init

Sonraki adım, etckeeper'ın otomatik olarak çalışabilmesi için, /etc'deki değişiklikleri takip etmeye başlamak için ilk commit'i aşağıdaki gibi çalıştırmanız gerekir.

sudo etckeeper commit "first commit"

Değişiklik Yapma ve Taahhüt Etme

İlk işleminizi çalıştırdıktan sonra, git aracılığıyla etckeeper artık /etc dizinindeki değişiklikleri izliyor. Şimdi yapılandırma dosyalarından herhangi birinde değişiklik yapmayı deneyin.

Ardından, son işlemeden bu yana değişen dosyaları göstermek için aşağıdaki komutu çalıştırın; bu komut esas olarak /etc dosyasındaki, taahhüt için hazırlanmamış değişiklikleri gösterir; burada VCS git anlamına gelir ve "status" bir git alt komutudur.

sudo etckeeper vcs status

Daha sonra son değişiklikleri aşağıdaki gibi uygulayın.

sudo etckeeper commit "changed hosts and phpmyadmin config files"

Kaydetme Günlüklerini Görüntüle

Tüm taahhütlerin (her taahhüdün kimliği ve yorumu) günlüğünü görüntülemek için aşağıdaki komutu çalıştırabilirsiniz.

sudo etckeeper vcs log

Ayrıca bir taahhüdün ayrıntılarını da gösterebilirsiniz; gösterildiği gibi taahhüt kimliğini (ilk birkaç karakter çalışabilir) belirtmeniz yeterlidir.:

sudo etckeeper vcs show a153b68479d0c440cc42c228cbbb6984095f322d
OR
sudo etckeeper vcs show a153b6847

Ayrıca iki commit arasındaki farkı gösterildiği gibi görebilirsiniz. Bir sonraki bölümde gösterildiği gibi değişiklikleri iptal etmek istiyorsanız bu özellikle kullanışlıdır. Yukarı aşağı veya sola ve sağa kaydırmak için ok tuşlarını kullanabilir ve q tuşuna basarak çıkabilirsiniz.

sudo etckeeper vcs show 704cc56 a153b6847

Değişiklikler Nasıl İptal Edilir

etckeeper'ın özü, /etc dizininizdeki değişiklikleri izlemenize ve gerektiğinde değişiklikleri geri almanıza yardımcı olmaktır. /etc/nginx/nginx.conf dosyasını son düzenlediğinizde bazı hatalar yaptığınızı ve yapılandırma yapısındaki hatalar nedeniyle Nginx hizmetinin yeniden başlatılamayacağını fark ettiğinizi varsayarak, geri dönebilirsiniz. yapılandırmanın doğru olduğunu düşündüğünüz belirli bir işleme (ör. 704cc56) kaydedilen kopyaya aşağıdaki gibi.

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

Alternatif olarak, tüm değişiklikleri iptal edebilir ve /etc (ve alt dizinleri) altındaki belirli bir taahhütte saklanan tüm dosyaların sürümlerine geri dönebilirsiniz.

sudo etckeeper vcs checkout 704cc56 

Değişikliklerin Otomatik Olarak Uygulanmasını Etkinleştirme

Etckeeper ayrıca pakete dahil olan Systemd için bir hizmet ve zamanlayıcı birimleriyle birlikte gelir. /etc dizinindeki değişikliklerin "Otomatik İşlemini" başlatmak için şimdilik etckeeper.timer birimini başlatmanız ve çalışıp çalışmadığını kontrol etmeniz yeterlidir. , aşağıdaki gibi.

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

Ve gösterildiği gibi sistem önyüklemesinde otomatik olarak başlatılmasını sağlayın.

sudo systemctl enable etckeeper.timer

Daha fazla bilgi için Etckeeper Proje Sayfasına bakın: https://etckeeper.branchable.com/.

Çözüm

Bu kılavuzda, bir sürüm kontrol sistemindeki (VCS) /etc dizinindeki mağaza değişiklikleri için etckeeper'ın nasıl kurulacağını ve kullanılacağını gösterdik. örneğin git'i kullanın ve gerektiğinde /etc'de yapılan değişiklikleri inceleyin veya geri alın. Aşağıdaki geri bildirim formunu kullanarak etckeeper hakkındaki düşüncelerinizi paylaşın veya sorular sorun.