Cara Mengelola /etc dengan Kontrol Versi Menggunakan Etckeeper di Linux


Dalam struktur direktori Unix/Linux, direktori /etc adalah tempat file dan direktori konfigurasi sistem spesifik host berada; ini adalah lokasi pusat untuk semua file konfigurasi seluruh sistem. File konfigurasi adalah file lokal yang digunakan untuk mengontrol cara kerja suatu program – file tersebut harus statis dan tidak boleh berupa biner yang dapat dieksekusi.

Untuk melacak perubahan pada file konfigurasi sistem, administrator sistem biasanya membuat salinan (atau cadangan) file konfigurasi sebelum memodifikasinya. Dengan begitu jika mereka langsung mengubah file asli dan melakukan kesalahan, mereka dapat kembali ke salinan yang disimpan.

Etckeeper adalah kumpulan alat yang sederhana, mudah digunakan, modular, dan dapat dikonfigurasi agar /etc dapat dikelola menggunakan kontrol versi. Ini memungkinkan Anda untuk menyimpan perubahan dalam direktori /etc dalam sistem kontrol versi (VCS) seperti git (yang merupakan VCS pilihan), mercurial, bazaar atau repositori darcs . Sehingga memungkinkan Anda menggunakan git untuk meninjau atau mengembalikan perubahan yang dibuat pada /etc, jika terjadi kesalahan.

Fitur lainnya adalah:

  1. ini mendukung integrasi dengan pengelola paket front-end termasuk APT, YUM, DNF, Zypper dan pacman-g2 untuk secara otomatis melakukan perubahan yang dilakukan pada /etc selama peningkatan paket.
  2. itu melacak metadata file (seperti izin file) yang biasanya tidak didukung oleh git, tapi itu penting untuk /etc, dan
  3. ini mencakup tugas cron dan pengatur waktu systemd, yang masing-masing dapat melakukan perubahan yang ada pada /etc secara otomatis satu kali per hari.

Cara Install Etckeeper di Linux

Etckeeper tersedia di Debian, Ubuntu, Fedora, dan distribusi Linux lainnya. Untuk menginstalnya, gunakan manajer paket default Anda seperti yang ditunjukkan. Perhatikan bahwa perintah ini juga akan menginstal git dan beberapa paket lainnya sebagai dependensi.

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

Pada distribusi Enterprise Linux seperti RedHat Enterprise Linux (RHEL), CentOS dan lainnya, Anda perlu menambahkan Repositori EPEL sebelum menginstalnya seperti yang ditunjukkan.

yum install epel-release
yum install etckeeper

Mengkonfigurasi Etckeeper di Linux

Setelah Anda menginstal etckeeper seperti yang ditunjukkan di atas, Anda perlu mengonfigurasi cara pengoperasiannya dan file konfigurasi utamanya adalah /etc/etckeeper/etckeeper.conf. Untuk membukanya untuk diedit, gunakan salah satu editor berbasis teks favorit Anda seperti yang ditunjukkan.

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

File tersebut berisi beberapa opsi konfigurasi (masing-masing dengan deskripsi penggunaan yang kecil dan jelas) yang memungkinkan Anda menyetel sistem kontrol versi (VCS) yang akan digunakan, meneruskan opsi ke VSC; untuk mengaktifkan atau menonaktifkan pengatur waktu, mengaktifkan atau menonaktifkan peringatan file khusus, mengaktifkan atau menonaktifkan penjaga dll agar tidak melakukan perubahan yang ada pada /etc sebelum instalasi.

Selain itu, Anda juga dapat mengatur manajer paket front-end atau tingkat yang lebih tinggi (seperti apt, yum, dnf, dll.) dan manajer paket dasar atau tingkat rendah (dpkg, rpm, dll.) agar bekerja dengan etckeeper.

Jika Anda telah membuat perubahan apa pun pada file, simpan dan tutup file.

Inisialisasi Repositori Git dan Lakukan Komit Awal

Sekarang setelah Anda mengonfigurasikan penjaga dll, Anda perlu menginisialisasi repositori Git untuk mulai melacak perubahan apa pun di direktori /etc Anda sebagai berikut. Anda hanya dapat menjalankan etckeeper dengan izin root, jika tidak, gunakan sudo.

cd 
sudo etckeeper init

Selanjutnya, langkah agar etckeeper dapat bekerja secara otomatis, Anda perlu menjalankan commit pertama untuk mulai melacak perubahan di /etc, sebagai berikut.

sudo etckeeper commit "first commit"

Membuat Perubahan dan Berkomitmen

Setelah menjalankan commit pertama Anda, etckeeper melalui git kini melacak perubahan apa pun di direktori /etc. Sekarang cobalah membuat perubahan apa pun pada file konfigurasi mana pun.

Kemudian jalankan perintah berikut untuk menampilkan file yang telah berubah sejak komit terakhir; perintah ini pada dasarnya menunjukkan perubahan dalam /etc yang tidak dilakukan untuk penerapan, dengan VCS berarti git dan “status ” adalah sub-perintah git.

sudo etckeeper vcs status

Kemudian komit perubahan terkini sebagai berikut.

sudo etckeeper commit "changed hosts and phpmyadmin config files"

Lihat Log Komit

Untuk melihat log semua komit (setiap id dan komentar komit), Anda dapat menjalankan perintah berikut.

sudo etckeeper vcs log

Anda juga dapat menampilkan detail penerapan, cukup tentukan ID penerapan (beberapa karakter pertama dapat berfungsi) seperti yang ditunjukkan.:

sudo etckeeper vcs show a153b68479d0c440cc42c228cbbb6984095f322d
OR
sudo etckeeper vcs show a153b6847

Selain itu, Anda dapat melihat perbedaan antara dua penerapan seperti yang ditunjukkan. Ini sangat berguna jika Anda ingin mencabut perubahan seperti yang ditunjukkan di bagian selanjutnya. Anda dapat menggunakan tombol panah untuk menggulir ke atas dan ke bawah atau ke kiri dan ke kanan, dan keluar dengan menekan q.

sudo etckeeper vcs show 704cc56 a153b6847

Cara Mencabut Perubahan

Inti dari etckeeper adalah membantu Anda melacak perubahan pada direktori /etc dan membalikkan perubahan bila diperlukan. Dengan asumsi Anda menyadari bahwa Anda membuat beberapa kesalahan di /etc/nginx/nginx.conf saat terakhir kali Anda mengeditnya dan layanan Nginx tidak dapat dimulai ulang karena kesalahan dalam struktur konfigurasi, Anda dapat mengembalikannya ke salinan yang disimpan dalam penerapan tertentu (misalnya 704cc56) yang menurut Anda konfigurasinya benar sebagai berikut.

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

Alternatifnya, Anda dapat membatalkan semua perubahan dan mengembalikan ke versi semua file di bawah /etc (dan subdirektorinya) yang disimpan dalam commit tertentu.

sudo etckeeper vcs checkout 704cc56 

Cara Mengaktifkan Perubahan untuk Dikomit Secara Otomatis

Etckeeper juga dilengkapi dengan layanan dan unit pengatur waktu untuk Systemd, yang disertakan dalam paket. Untuk meluncurkan “Autocommit ” perubahan dalam direktori /etc, cukup jalankan unit etckeeper.timer sekarang dan periksa apakah sudah aktif dan berjalan , sebagai berikut.

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

Dan aktifkan untuk memulai otomatis saat boot sistem seperti yang ditunjukkan.

sudo systemctl enable etckeeper.timer

Untuk informasi lebih lanjut, lihat Halaman Proyek Etckeeper: https://etckeeper.branchable.com/.

Kesimpulan

Dalam panduan ini, kami telah menunjukkan cara menginstal dan menggunakan etckeeper untuk menyimpan perubahan di direktori /etc dalam sistem kontrol versi (VCS) seperti git dan meninjau atau mengembalikan perubahan yang dibuat pada /etc, jika diperlukan. Bagikan pemikiran Anda atau ajukan pertanyaan tentang dllkeeper melalui formulir umpan balik di bawah.