Kif Immaniġġja /etc bil-Kontroll tal-Verżjoni billi tuża Etckeeper fuq Linux


Fl-istruttura tad-direttorju Unix/Linux, id-direttorju /etc huwa fejn jinsabu fajls u direttorji tal-konfigurazzjoni tas-sistema kollha speċifiċi għall-host; huwa post ċentrali għall-fajls kollha tal-konfigurazzjoni tas-sistema kollha. Fajl ta 'konfigurazzjoni huwa fajl lokali użat biex jikkontrolla kif jaħdem programm - għandu jkun statiku u ma jistax ikun binarju eżekutibbli.

Biex iżommu kont tal-bidliet fil-fajls tal-konfigurazzjoni tas-sistema, l-amministraturi tas-sistema normalment jagħmlu kopji (jew backups) tal-fajls tal-konfigurazzjoni qabel ma jimmodifikawhom. B'dan il-mod jekk immodifikaw direttament il-fajl oriġinali u għamlu żball, jistgħu jerġgħu lura għall-kopja ssejvjata.

Etckeeper huwa ġabra ta' għodod sempliċi, faċli biex tużah, modulari u konfigurabbli biex tħalli /etc jiġi ġestit bl-użu tal-kontroll tal-verżjoni. Jippermettilek taħżen bidliet fid-direttorju /etc f'sistema ta' kontroll tal-verżjoni (VCS) bħal git (li huwa l-VCS preferut), mercurial, bazaar jew repożitorju darcs. B'hekk tippermettilek tuża git biex tirrevedi jew terġa 'lura bidliet li saru f'/etc, f'każ ta' żball.

Il-karatteristiċi l-oħra tiegħu huma:

  1. tappoġġa l-integrazzjoni ma' maniġers tal-pakketti ta' quddiem inklużi Zypper u pacman-g2 biex jimpenjaw awtomatikament il-bidliet li saru fuq /etc waqt l-aġġornamenti tal-pakketti.
  2. jissegwi l-metadata tal-fajl (bħall-permessi tal-fajl) li git normalment ma jappoġġjax, iżda li huwa importanti għal /etc, u
  3. jinkludi kemm xogħol cron kif ukoll timer systemd, li kull wieħed jista' jikkommetti bidliet li joħorġu għal /etc awtomatikament darba kuljum.

Kif Tinstalla Etckeeper fil-Linux

Etckeeper huwa disponibbli f'Debian, Ubuntu, Fedora, u distribuzzjonijiet oħra tal-Linux. Biex tinstallah, uża l-maniġer tal-pakkett default tiegħek kif muri. Innota li dan il-kmand se jinstalla wkoll git u ftit pakketti oħra bħala dipendenzi.

$ 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

Fuq distribuzzjonijiet Enterprise Linux bħal RedHat Enterprise Linux (RHEL), CentOS u oħrajn, trid iżżid ir-repożitorju EPEL qabel ma tinstallah kif muri.

# yum install epel-release
# yum install etckeeper

Konfigurazzjoni ta' Etckeeper fil-Linux

Ladarba tkun installajt etckeeper kif muri hawn fuq, għandek bżonn tikkonfigura kif se topera u l-fajl tal-konfigurazzjoni prinċipali tiegħu huwa /etc/etckeeper/etckeeper.conf. Biex tiftaħha għall-editjar, uża kwalunkwe editur favorit tiegħek ibbażat fuq it-test kif muri.

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

Il-fajl fih diversi għażliet ta 'konfigurazzjoni (kull waħda b'deskrizzjoni żgħira u ċara tal-użu) li jippermettulek tissettja s-sistema ta' kontroll tal-verżjoni (VCS) biex tuża, tgħaddi l-għażliet lil VSC; biex jawtorizza jew tiddiżattiva t-tajmer, tippermetti jew tiddiżattiva twissija speċjali ta' fajl, tippermetti jew tiddiżattiva etckeeper milli jikkommetti bidliet eżistenti għal /etc qabel l-installazzjoni.

Ukoll, tista 'tissettja l-maniġer tal-pakkett ta' quddiem jew ta 'livell ogħla (bħal rpm eċċ.) biex taħdem ma' etckeeper.

Jekk għamilt xi tibdil(i) fil-fajl, issalvaha u agħlaq il-fajl.

Inizjalizza r-Repożitorju Git u Wettaq Initial Commit

Issa li kkonfigurajt l-etckeeper, għandek bżonn tibda r-repożitorju Git biex tibda ssegwi kwalunkwe tibdil fid-direttorju /etc tiegħek kif ġej. Tista 'biss tmexxi etckeeper bil-permessi ta' l-għeruq, inkella uża sudo.

$ cd 
$ sudo etckeeper init

Sussegwentement, pass biex etckeeper tkun tista 'taħdem awtomatikament, għandek bżonn tmexxi l-ewwel impenn biex tibda żżomm kont tal-bidliet f'/etc, kif ġej.

$ sudo etckeeper commit "first commit"

Wara li tmexxi l-ewwel impenn tiegħek, etckeeper permezz ta' git issa qed issegwi kwalunkwe tibdil fid-direttorju /etc. Issa ipprova agħmel xi tibdil fi kwalunkwe mill-fajls tal-konfigurazzjoni.

Imbagħad mexxi l-kmand li ġej biex turi fajls li nbidlu mill-aħħar impenn; dan il-kmand essenzjalment juri l-bidliet f'/etc mhux imfassla għall-kommit, fejn VCS tfisser git u \status huwa sub-kmand git.

$ sudo etckeeper vcs status

Imbagħad ikkommetti l-bidliet riċenti kif ġej.

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

Biex tara log tal-kommessi kollha (id u kumment ta' kull impenn), tista' tmexxi l-kmand li ġej.

$ sudo etckeeper vcs log

Tista 'wkoll turi d-dettalji ta' impenn, sempliċement speċifika l-ID tal-kommit (l-ewwel ftit karattri jistgħu jaħdmu) kif muri.:

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

Barra minn hekk, tista 'tara d-differenza bejn żewġ impenji kif muri. Dan huwa speċjalment utli jekk trid tirrevoka bidliet kif muri fit-taqsima li jmiss. Tista' tuża l-vleġeġ biex tiskrollja 'l fuq u' l isfel jew xellug u lemin, u tieqaf billi tagħfas q.

$ sudo etckeeper vcs show 704cc56 a153b6847

L-essenza ta' etckeeper hija li jgħinek issegwi l-bidliet fid-direttorju /etc tiegħek u ireġġa' lura l-bidliet fejn meħtieġ. Jekk wieħed jassumi li tirrealizza li għamilt xi żbalji fil-/etc/nginx/nginx.conf meta editjejtha l-aħħar u s-servizz Nginx ma jistax jerġa’ jinbeda minħabba żbalji fl-istruttura tal-konfigurazzjoni, tista’ terġa’ lura għall-kopja ssejvjata f’mod speċifiku. commit (eż. 704cc56) fejn taħseb li l-konfigurazzjoni kienet korretta kif ġej.

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

Alternattivament, tista' tikkanċella l-bidliet kollha u terġa' lura għall-verżjonijiet tal-fajls kollha taħt /etc (u s-subdirettorji tiegħu) maħżuna f'kommit speċifiku.

$ sudo etckeeper vcs checkout 704cc56 

Kif Tippermetti Bidliet li jsiru Awtomatikament

Etckeeper wkoll vapuri ma 'servizz u unitajiet ta' tajmer għal Systemd, inklużi fil-pakkett. Biex tniedi \Autocommit ta' bidliet fid-direttorju /etc, sempliċement ibda l-unità etckeeper.timer għalissa u ċċekkja jekk hix taħdem, kif ġej.

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

U ppermettiha li tibda awtomatikament fil-boot tas-sistema kif muri.

$ sudo systemctl enable etckeeper.timer

Għal aktar informazzjoni, ara l-Paġna tal-Proġett Etckeeper: https://etckeeper.branchable.com/.

F'din il-gwida, urejna kif tinstalla u tuża etckeeper għal bidliet fil-maħżen fid-direttorju /etc f'sistema ta' kontroll tal-verżjoni (VCS) bħal git u tirrevedi jew terġa' lura bidliet li saru f', fejn meħtieġ. Aqsam il-ħsibijiet tiegħek jew staqsi mistoqsijiet dwar etckeeper permezz tal-formola ta' feedback hawn taħt.