Giunsa Pagdumala/etc nga adunay Pagkontrol sa Bersyon Gamit ang Etckeeper sa Linux


Sa Unix/Linux directory structure, ang /etc directory diin nahimutang ang host-specific system-wide configuration files ug mga direktoryo; kini usa ka sentro nga lokasyon alang sa tanan nga mga file sa pag-configure sa tibuuk nga sistema. Ang configuration file kay usa ka lokal nga file nga gigamit aron makontrol kung giunsa ang paggana sa usa ka programa – kini kinahanglan nga static ug dili mahimong usa ka executable binary.

Aron masubay ang mga pagbag-o sa mga file sa pag-configure sa sistema, ang mga tagdumala sa sistema kasagarang maghimo mga kopya (o pag-backup) sa mga file sa pag-configure sa dili pa kini usbon. Nianang paagiha kon direkta nilang giusab ang orihinal nga payl ug masayop, mahimo nilang ibalik ang gitipigan nga kopya.

Ang Etckeeper usa ka yano, dali gamiton, modular ug ma-configure nga koleksyon sa mga himan aron tugutan ang /etc nga madumala gamit ang pagkontrol sa bersyon. Makapahimo kini kanimo sa pagtipig sa mga kausaban sa /etc nga direktoryo sa usa ka version control system (VCS) sama sa git (nga mao ang gusto nga VCS), mercurial, bazaar o darcs repository. Sa ingon nagtugot kanimo sa paggamit sa git aron marepaso o ibalik ang mga pagbag-o nga gihimo sa /etc, kung adunay sayup.

Ang ubang mga bahin niini mao ang:

  1. kini nagsuporta sa integrasyon sa front-end package managers lakip na ang Zypper ug pacman-g2 sa auto commit mga kausaban nga gihimo sa /etc atol sa package upgrades.
  2. kini nagsubay sa metadata sa payl (sama sa mga permiso sa payl) nga kasagarang wala gisuportahan sa git, pero importante kana para sa /etc, ug
  3. kini naglakip sa usa ka cron nga trabaho ug usa ka systemd timer, diin ang matag usa makahimo sa paggawas sa mga pagbag-o sa /etc awtomatik nga kausa kada adlaw.

Giunsa ang Pag-install sa Etckeeper sa Linux

Ang Etckeeper anaa sa Debian, Ubuntu, Fedora, ug uban pang mga distribusyon sa Linux. Aron ma-install kini, gamita ang imong default package manager sama sa gipakita. Timan-i nga kini nga sugo mag-instalar usab sa git ug pipila ka uban nga mga pakete isip mga dependency.

$ 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

Sa mga distribusyon sa Enterprise Linux sama sa RedHat Enterprise Linux (RHEL), CentOS ug uban pa, kinahanglan nimong idugang ang EPEL repository sa dili pa kini i-install sama sa gipakita.

# yum install epel-release
# yum install etckeeper

Pag-configure sa Etckeeper sa Linux

Kung na-install na nimo ang etckeeper sama sa gipakita sa ibabaw, kinahanglan nimo nga i-configure kung giunsa kini molihok ug ang panguna nga file sa pag-configure mao ang /etc/etckeeper/etckeeper.conf. Aron maablihan kini alang sa pag-edit, gamita ang bisan unsang paborito nimo nga mga editor nga nakabase sa teksto sama sa gipakita.

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

Ang file adunay daghang mga kapilian sa pag-configure (ang matag usa adunay gamay, tin-aw nga paghulagway sa paggamit) nga nagtugot kanimo nga itakda ang sistema sa pagkontrol sa bersyon (VCS) nga gamiton, ipasa ang mga kapilian sa VSC; aron ma-enable o ma-disable ang timer, makapahimo o maka-disable sa espesyal nga file warning, makapahimo o maka-disable sa etckeeper gikan sa paghimo sa kasamtangan nga mga pagbag-o sa /etc sa dili pa i-install.

Usab, mahimo nimong itakda ang front-end o mas taas nga lebel nga tagdumala sa pakete (sama sa rpm ug uban pa) aron magtrabaho kauban ang etckeeper.

Kung nakahimo ka ug bisan unsang (mga) pagbag-o sa file, i-save kini ug isira ang file.

Pag-initialize sa Git Repository ug Pagbuhat sa Initial Commit

Karon nga na-configure na nimo ang etckeeper, kinahanglan nimo nga unahon ang Git repository aron masugdan ang pagsubay sa bisan unsang mga pagbag-o sa imong /etc nga direktoryo sama sa mosunod. Mahimo ka lang magpadagan sa etckeeper nga adunay mga pagtugot sa gamut, kung dili gamiton ang sudo.

$ cd 
$ sudo etckeeper init

Sunod, lakang alang sa etckeeper aron awtomatik nga makatrabaho, kinahanglan nimo nga ipadagan ang una nga commit aron masugdan ang pagsubay sa mga pagbag-o sa /etc, ingon sa mosunod.

$ sudo etckeeper commit "first commit"

Human sa pagpadagan sa imong unang commit, ang etckeeper pinaagi sa git nagsubay na karon sa bisan unsang kausaban sa /etc nga direktoryo. Karon sulayi paghimo ang bisan unsang mga pagbag-o sa bisan unsang mga file sa pag-configure.

Dayon padagana ang mosunod nga sugo aron ipakita ang mga file nga nausab sukad sa kataposang commit; kini nga sugo sa esensya nagpakita sa mga kausaban sa /etc nga wala gi-stage para sa commit, diin ang VCS nagpasabot nga git ug ang \status usa ka git sub-command.

$ sudo etckeeper vcs status

Dayon i-commit ang bag-o nga mga pagbag-o sama sa mosunod.

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

Aron matan-aw ang usa ka log sa tanan nga mga commit (ang matag commit id ug komento), mahimo nimong ipadagan ang mosunud nga mando.

$ sudo etckeeper vcs log

Mahimo usab nimo nga ipakita ang mga detalye sa usa ka commit, ipiho lang ang commit ID (ang unang pipila ka mga karakter mahimong molihok) sama sa gipakita.:

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

Gawas pa, mahimo nimong tan-awon ang kalainan tali sa duha nga commit sama sa gipakita. Kini labi ka mapuslanon kung gusto nimo nga bawion ang mga pagbag-o sama sa gipakita sa sunod nga seksyon. Mahimo nimong gamiton ang mga arrow key sa pag-scroll up ug down o left and right, ug mohunong pinaagi sa pagpindot sa q.

$ sudo etckeeper vcs show 704cc56 a153b6847

Ang esensya sa etckeeper mao ang pagtabang kanimo sa pagsubay sa mga kausaban sa imong /etc nga direktoryo ug balihon ang mga kausaban kung gikinahanglan. Sa pag-ingon nga nakaamgo ka nga nakahimo ka og pipila ka mga sayup sa /etc/nginx/nginx.conf sa diha nga katapusan nimo nga gi-edit kini ug ang serbisyo sa Nginx dili na ma-restart tungod sa mga sayup sa istruktura sa pag-configure, mahimo nimong ibalik ang na-save nga kopya sa usa ka piho. commit (e.g 704cc56) diin sa imong hunahuna husto ang configuration sama sa mosunod.

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

Sa laing paagi, mahimo nimong kanselahon ang tanan nga mga pagbag-o ug ibalik ang mga bersyon sa tanan nga mga file ubos sa /etc (ug ang mga sub-direktoryo niini) nga gitipigan sa usa ka piho nga commit.

$ sudo etckeeper vcs checkout 704cc56 

Giunsa Pag-enable ang mga Pagbag-o nga Awtomatikong Itugyan

Nagpadala usab ang Etckeeper nga adunay serbisyo ug mga yunit sa timer alang sa Systemd, nga gilakip sa package. Aron ilunsad ang \Autocommit sa mga pagbag-o sa /etc nga direktoryo, sugdi lang ang etckeeper.timer nga yunit sa pagkakaron ug susiha kung kini nakaandar na ba, sama sa mosunod.

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

Ug himoa kini nga awtomatikong magsugod sa boot sa sistema sama sa gipakita.

$ sudo systemctl enable etckeeper.timer

Para sa dugang nga impormasyon, tan-awa ang Etckeeper Project Page: https://etckeeper.branchable.com/.

Niini nga giya, among gipakita kon unsaon pag-instalar ug paggamit sa etckeeper alang sa mga kausaban sa tindahan sa /etc nga direktoryo sa usa ka version control system (VCS) sama sa git ug pagrepaso o pag-uli sa mga kausaban nga gihimo ngadto sa /etc, kung gikinahanglan. Ipaambit ang imong mga hunahuna o pangutana bahin sa etckeeper pinaagi sa feedback form sa ubos.