Πώς να διαχειριστείτε το /etc με έλεγχο έκδοσης χρησιμοποιώντας το Etckeeper στο Linux


Στη δομή καταλόγου Unix/Linux, ο κατάλογος /etc είναι ο χώρος όπου βρίσκονται τα αρχεία διαμόρφωσης και οι κατάλογοι για το σύνολο του συστήματος για συγκεκριμένο υπολογιστή. είναι μια κεντρική τοποθεσία για όλα τα αρχεία διαμόρφωσης σε όλο το σύστημα. Ένα αρχείο διαμόρφωσης είναι ένα τοπικό αρχείο που χρησιμοποιείται για τον έλεγχο του τρόπου λειτουργίας ενός προγράμματος – πρέπει να είναι στατικό και δεν μπορεί να είναι ένα εκτελέσιμο δυαδικό αρχείο.

Για να παρακολουθείτε τις αλλαγές στα αρχεία διαμόρφωσης συστήματος, οι διαχειριστές συστήματος δημιουργούν συνήθως αντίγραφα (ή αντίγραφα ασφαλείας) των αρχείων διαμόρφωσης πριν τα τροποποιήσουν. Με αυτόν τον τρόπο, εάν τροποποίησαν απευθείας το αρχικό αρχείο και έκαναν λάθος, μπορούν να επιστρέψουν στο αποθηκευμένο αντίγραφο.

Το Etckeeper είναι μια απλή, εύχρηστη, αρθρωτή και διαμορφώσιμη συλλογή εργαλείων που επιτρέπουν τη διαχείριση του /etc χρησιμοποιώντας τον έλεγχο έκδοσης. Σας δίνει τη δυνατότητα να αποθηκεύετε αλλαγές στον κατάλογο /etc σε ένα σύστημα ελέγχου έκδοσης (VCS) όπως το git (που είναι το προτιμώμενο VCS), το Mercurial, το Bazaar ή το Darcs repository . Επιτρέποντάς σας έτσι να χρησιμοποιήσετε το git για να ελέγξετε ή να επαναφέρετε τις αλλαγές που έγιναν στο /etc, σε περίπτωση λάθους.

Τα άλλα χαρακτηριστικά του είναι:

  1. υποστηρίζει ενσωμάτωση με διαχειριστές πακέτων διεπαφής, συμπεριλαμβανομένων των Zypper και pacman-g2 για αυτόματη δέσμευση αλλαγών που έγιναν στο /etc κατά τις αναβαθμίσεις πακέτων.
  2. παρακολουθεί μεταδεδομένα αρχείων (όπως τα δικαιώματα αρχείων) που συνήθως δεν υποστηρίζει το git, αλλά είναι σημαντικά για το /etc και
  3. περιλαμβάνει τόσο μια εργασία cron όσο και ένα χρονόμετρο συστημικού, το καθένα από το οποίο μπορεί να πραγματοποιήσει αλλαγές εξόδου στο /etc αυτόματα μία φορά την ημέρα.

Πώς να εγκαταστήσετε το Etckeeper στο Linux

Το Etckeeper είναι διαθέσιμο σε Debian, Ubuntu, Fedora και σε άλλες διανομές Linux. Για να το εγκαταστήσετε, χρησιμοποιήστε τον προεπιλεγμένο διαχειριστή πακέτων όπως φαίνεται. Σημειώστε ότι αυτή η εντολή θα εγκαταστήσει επίσης το git και μερικά άλλα πακέτα ως εξαρτήσεις.

$ 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

Σε διανομές Enterprise Linux όπως RedHat Enterprise Linux (RHEL), CentOS και άλλες, πρέπει να προσθέσετε το αποθετήριο EPEL πριν το εγκαταστήσετε όπως φαίνεται.

# yum install epel-release
# yum install etckeeper

Διαμόρφωση του Etckeeper στο Linux

Αφού εγκαταστήσετε το etckeeper όπως φαίνεται παραπάνω, πρέπει να ρυθμίσετε τον τρόπο λειτουργίας του και το κύριο αρχείο διαμόρφωσής του είναι το /etc/etckeeper/etckeeper.conf. Για να το ανοίξετε για επεξεργασία, χρησιμοποιήστε οποιονδήποτε από τους αγαπημένους σας επεξεργαστές που βασίζονται σε κείμενο όπως φαίνεται.

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

Το αρχείο περιέχει πολλές επιλογές διαμόρφωσης (η καθεμία με μια μικρή, σαφή περιγραφή χρήσης) που σας επιτρέπουν να ρυθμίσετε το σύστημα ελέγχου έκδοσης (VCS) για χρήση, να μεταβιβάσετε τις επιλογές στο VSC. για να ενεργοποιήσετε ή να απενεργοποιήσετε το χρονοδιακόπτη, να ενεργοποιήσετε ή να απενεργοποιήσετε την ειδική προειδοποίηση αρχείων, να ενεργοποιήσετε ή να απενεργοποιήσετε το etckeeper να πραγματοποιήσει υπάρχουσες αλλαγές στο /etc πριν από την εγκατάσταση.

Επίσης, μπορείτε να ρυθμίσετε τη διαχείριση πακέτων διεπαφής ή υψηλότερου επιπέδου (όπως rpm κ.λπ.) να λειτουργεί με το etckeeper.

Εάν έχετε κάνει οποιαδήποτε αλλαγή στο αρχείο, αποθηκεύστε το και κλείστε το αρχείο.

Εκκίνηση του αποθετηρίου Git και εκτέλεση αρχικής δέσμευσης

Τώρα που έχετε διαμορφώσει το etckeeper, πρέπει να αρχικοποιήσετε το αποθετήριο Git για να αρχίσετε να παρακολουθείτε τυχόν αλλαγές στον κατάλογό σας /etc ως εξής. Μπορείτε να εκτελέσετε το etckeeper μόνο με δικαιώματα root, διαφορετικά χρησιμοποιήστε το sudo.

$ cd 
$ sudo etckeeper init

Στη συνέχεια, βήμα για το etckeeper να μπορεί να λειτουργεί αυτόματα, πρέπει να εκτελέσετε την πρώτη δέσμευση για να αρχίσετε να παρακολουθείτε τις αλλαγές στο /etc, ως εξής.

$ sudo etckeeper commit "first commit"

Κάνοντας Αλλαγές και Δέσμευση

Αφού εκτελέσετε την πρώτη σας δέσμευση, το etckeeper μέσω git παρακολουθεί τώρα τυχόν αλλαγές στον κατάλογο /etc. Τώρα προσπαθήστε να κάνετε αλλαγές σε οποιοδήποτε από τα αρχεία διαμόρφωσης.

Στη συνέχεια, εκτελέστε την ακόλουθη εντολή για να εμφανίσετε αρχεία που έχουν αλλάξει από την τελευταία δέσμευση. αυτή η εντολή ουσιαστικά εμφανίζει τις αλλαγές στο /etc που δεν έχουν γίνει για δέσμευση, όπου το VCS σημαίνει git και το \status” είναι μια υποεντολή git .

$ sudo etckeeper vcs status

Στη συνέχεια, πραγματοποιήστε τις πρόσφατες αλλαγές ως εξής.

$ sudo etckeeper commit "changed hosts and phpmyadmin config files"

Προβολή αρχείων καταγραφής δέσμευσης

Για να δείτε ένα αρχείο καταγραφής όλων των δεσμεύσεων (το αναγνωριστικό και το σχόλιο κάθε δέσμευσης), μπορείτε να εκτελέσετε την ακόλουθη εντολή.

$ sudo etckeeper vcs log

Μπορείτε επίσης να εμφανίσετε τις λεπτομέρειες μιας δέσμευσης, απλώς καθορίστε το αναγνωριστικό δέσμευσης (οι πρώτοι χαρακτήρες μπορούν να λειτουργήσουν) όπως φαίνεται.:

$ sudo etckeeper vcs show a153b68479d0c440cc42c228cbbb6984095f322d
OR
$ sudo etckeeper vcs show a153b6847

Επιπλέον, μπορείτε να δείτε τη διαφορά μεταξύ δύο δεσμεύσεων όπως φαίνεται. Αυτό είναι ιδιαίτερα χρήσιμο εάν θέλετε να ανακαλέσετε τις αλλαγές όπως φαίνεται στην επόμενη ενότητα. Μπορείτε να χρησιμοποιήσετε τα πλήκτρα βέλους για κύλιση προς τα πάνω και προς τα κάτω ή αριστερά και δεξιά και να τερματίσετε πατώντας q.

$ sudo etckeeper vcs show 704cc56 a153b6847

Πώς να ανακαλέσετε τις αλλαγές

Η ουσία του etckeeper είναι να σας βοηθήσει να παρακολουθείτε τις αλλαγές στον κατάλογό σας /etc και να αντιστρέψετε τις αλλαγές όπου χρειάζεται. Αν υποθέσουμε ότι συνειδητοποιήσετε ότι κάνατε κάποια λάθη στο /etc/nginx/nginx.conf όταν το επεξεργαστήκατε τελευταία φορά και ότι η υπηρεσία Nginx δεν μπορεί να επανεκκινηθεί λόγω σφαλμάτων στη δομή διαμόρφωσης, μπορείτε να κάνετε επαναφορά στο αποθηκευμένο αντίγραφο σε μια συγκεκριμένη δέσμευση (π.χ. 704cc56), όπου πιστεύετε ότι η διαμόρφωση ήταν σωστή ως εξής.

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

Εναλλακτικά, μπορείτε να ακυρώσετε όλες τις αλλαγές και να επιστρέψετε στις εκδόσεις όλων των αρχείων στο /etc (και στους υποκαταλόγους του) που είναι αποθηκευμένα σε μια συγκεκριμένη δέσμευση.

$ sudo etckeeper vcs checkout 704cc56 

Πώς να ενεργοποιήσετε τις αλλαγές που θα πραγματοποιούνται αυτόματα

Το Etckeeper αποστέλλεται επίσης με μονάδες σέρβις και χρονοδιακόπτη για το Systemd, που περιλαμβάνονται στη συσκευασία. Για να εκκινήσετε την \Autocommit” των αλλαγών στον κατάλογο /etc, απλώς ξεκινήστε τη μονάδα etckeeper.timer προς το παρόν και ελέγξτε εάν είναι ενεργοποιημένη και τρέξιμο, ως εξής.

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

Και ενεργοποιήστε την αυτόματη εκκίνηση κατά την εκκίνηση του συστήματος όπως φαίνεται.

$ sudo systemctl enable etckeeper.timer

Για περισσότερες πληροφορίες, ανατρέξτε στη σελίδα του έργου Etckeeper: https://etckeeper.branchable.com/.

συμπέρασμα

Σε αυτόν τον οδηγό, δείξαμε πώς να εγκαταστήσετε και να χρησιμοποιήσετε το etckeeper για αποθήκευση αλλαγών στον κατάλογο /etc σε ένα σύστημα ελέγχου έκδοσης (VCS) όπως git και ελέγξτε ή επαναφέρετε τις αλλαγές που έγιναν στο /etc, όπου είναι απαραίτητο. Μοιραστείτε τις σκέψεις σας ή κάντε ερωτήσεις σχετικά με το etckeeper μέσω της παρακάτω φόρμας σχολίων.