GNU/Linux >> Belajar Linux >  >> OpenSuse

Cara menggunakan etckeeper untuk mengelola /etc di OpenSUSE Leap 15

Di Linux/Unix, /etc direktori adalah tempat file dan direktori konfigurasi seluruh sistem khusus host berada; ini adalah lokasi sentral untuk semua file konfigurasi seluruh sistem. File konfigurasi adalah file lokal yang digunakan untuk mengontrol cara kerja 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 memodifikasi file asli dan membuat kesalahan, mereka dapat kembali ke salinan yang disimpan.

Dalam panduan ini, kita akan mempelajari cara Menginstal dan mengkonfigurasi etckeeper di Opensuse Leap 15.

Menginstal etckeeper

Pastikan sistem Anda mutakhir

sudo zypper refresh
sudo zypper update -y

Etckeeper tersedia di repositori OpenSUSE default. Untuk menginstal, gunakan perintah berikut. Ini juga akan menginstal dependensi:

sudo zypper install etckeeper

Ketik y ketika diminta untuk menerima instalasi dan tunggu sampai selesai.

Konfirmasikan paket yang diinstal dengan perintah ini

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

Mengonfigurasi etckeeper

Setelah etckeeper diinstal, kita perlu mengkonfigurasinya. File konfigurasi etckeeper terletak di jalur ini /etc/etckeeper/etckeeper.conf.

Buka menggunakan editor teks favorit Anda, saya menggunakan vim.

sudo vim /etc/etckeeper/etckeeper.conf

Konfigurasi dalam file memiliki deskripsi yang kecil dan jelas. Opsi ini memungkinkan Anda menyetel sistem kontrol versi yang akan digunakan, meneruskan opsi ke VSC; untuk mengaktifkan atau menonaktifkan timer, mengaktifkan atau menonaktifkan peringatan file khusus, mengaktifkan atau menonaktifkan etckeeper agar tidak melakukan perubahan yang ada pada /etc sebelum penginstalan.

Selain itu, Anda dapat menyetel pengelola paket tingkat depan atau tingkat yang lebih tinggi (seperti apt, yum, dnf dll.) dan pengelola paket dasar atau tingkat rendah (dpkg, rpm dll.) agar berfungsi dengan etckeeper .

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

Inisialisasi repositori git

Selanjutnya kita akan menginisialisasi repositori git untuk melacak perubahan di /etc. Etckeeper harus dijalankan dengan root atau sebagai pengguna dengan perintah sudo. Mari kita beralih ke direktori /etc dan menginisialisasinya .

cd /etc
sudo etckeeper init

Ini adalah output di server saya

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

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

sudo etckeeper commit "initial commit with original etc configs"

Melakukan Perubahan dan Komitmen

Setelah menjalankan komit pertama Anda, etckeeper melalui git sekarang melacak setiap perubahan di /etc direktori. Sekarang coba buat perubahan apa pun di file konfigurasi mana pun.

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

sudo etckeeper vcs status

Anda akan melihat output yang mirip dengan ini dengan file yang diubah:

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

Kemudian komit perubahan terbaru sebagai berikut.

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

Anda akan melihat output yang mirip dengan ini

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

Lihat Log Komit

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

sudo etckeeper vcs log

Keluaran

/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

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

sudo etckeeper vcs show 9984ce498ba68d15c8e1ac84dbec7b3cb6e3202f

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

sudo etckeeper vcs show 9984ce 179ae

Cara Mencabut Perubahan

Inti dari etckeeper adalah untuk membantu Anda melacak perubahan pada /etc . Anda direktori dan membalikkan perubahan jika perlu. Dengan asumsi Anda menyadari bahwa Anda membuat beberapa kesalahan dalam /etc/ssh/sshd_config saat terakhir kali Anda mengeditnya dan layanan sshd tidak dapat dimulai ulang karena kesalahan dalam struktur konfigurasi, Anda dapat kembali ke salinan yang disimpan dalam komit tertentu (mis. 9984ce ) yang menurut Anda konfigurasinya benar sebagai berikut.

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

Atau, Anda dapat membatalkan semua perubahan dan kembali ke versi semua file di bawah /etc (dan sub-direktorinya) disimpan dalam komit tertentu.

sudo etckeeper vcs checkout 9984ce

Aktifkan Perubahan untuk Dikomit Secara Otomatis

Penjaga Lain juga dikirimkan dengan layanan dan unit pengatur waktu untuk Systemd , termasuk dalam paket. Untuk meluncurkan “Otomatis ” dari perubahan pada /etc direktori, cukup mulai etckeeper.timer unit untuk saat ini dan periksa apakah sudah aktif dan berjalan, sebagai berikut.

sudo systemctl start etckeeper.timer

Konfirmasi status

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

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

sudo systemctl enable etckeeper.timer

Kesimpulan

Dalam panduan ini kita mempelajari cara menginstal dan menggunakan etckeeper untuk mengelola perubahan di direktori /etc menggunakan sistem manajemen versi seperti git.


OpenSuse
  1. Cara Upgrade OpenSUSE 12.2 Ke 12.3 (Desktop &Server)

  2. Bagaimana menginstal Mongodb 5 di Opensuse Leap 15.3

  3. Bagaimana menginstal Mysql Server 8 pada OpenSUSE Leap 15.3

  1. Cara menginstal &mengkonfigurasi Redis 6 pada OpenSUSE Leap 15.3

  2. Bagaimana /etc/motd Diperbarui?

  3. Kapan saya harus menggunakan /dev/shm/ dan kapan saya harus menggunakan /tmp/?

  1. Cara menginstal dan menggunakan Podman di OpenSUSE Leap 15.3

  2. Cara mengatur server SFTP di OpenSUSE Leap 15.3 Server

  3. Cara menggunakan @reboot di /etc/cron.d