Kaip valdyti /etc naudojant versijos valdymą naudojant Etckeeper sistemoje Linux


„Unix“/„Linux“ katalogų struktūroje /etc yra katalogas, kuriame yra konkrečios prieglobos sistemos konfigūracijos failai ir katalogai; tai centrinė visų sistemos konfigūracijos failų vieta. Konfigūracijos failas yra vietinis failas, naudojamas programos veikimui valdyti – jis turi būti statinis ir negali būti vykdomasis dvejetainis failas.

Norėdami sekti sistemos konfigūracijos failų pakeitimus, sistemos administratoriai prieš keisdami konfigūracijos failus paprastai daro jų kopijas (arba atsargines kopijas). Tokiu būdu, jei jie tiesiogiai pakeitė pradinį failą ir padarė klaidą, jie gali grįžti prie išsaugotos kopijos.

Etckeeper yra paprastas, lengvai naudojamas, modulinis ir konfigūruojamas įrankių rinkinys, leidžiantis /etc valdyti naudojant versijos valdymą. Tai leidžia saugoti pakeitimus kataloge /etc versijų valdymo sistemoje (VCS), pvz., git (kuris yra pageidaujamas VCS), mercurial, turgaus ar darcs saugykloje. . Taip galite naudoti git norėdami peržiūrėti arba grąžinti pakeitimus, kurie buvo atlikti /etc, jei įvyko klaida.

Kitos jo savybės yra šios:

  1. ji palaiko integraciją su priekinių paketų tvarkytuvais, įskaitant APT, YUM, DNF, Zypper ir pacman-g2, kad paketo naujinimo metu būtų automatiškai patvirtinti /etc pakeitimai.
  2. ji seka failo metaduomenis (pvz., failo leidimus), kurių git paprastai nepalaiko, tačiau tai svarbu /etc ir
  3. ji apima ir cron užduotį, ir sisteminį laikmatį, iš kurių kiekvienas gali atlikti baigiamuosius /etc pakeitimus kartą per dieną.

Kaip įdiegti „Etckeeper“ sistemoje „Linux“.

Etckeeper pasiekiama naudojant Debian, Ubuntu, Fedora ir kitus Linux platinimus. Norėdami jį įdiegti, naudokite numatytąjį paketų tvarkyklę, kaip parodyta. Atminkite, kad ši komanda taip pat įdiegs git ir kelis kitus paketus kaip priklausomybes.

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 platinimuose, pvz., RedHat Enterprise Linux (RHEL), CentOS ir kituose, turite pridėti EPEL saugykla prieš ją įdiegdami, kaip parodyta.

yum install epel-release
yum install etckeeper

„Etckeeper“ konfigūravimas sistemoje „Linux“.

Įdiegę etckeeper, kaip parodyta aukščiau, turite sukonfigūruoti, kaip ji veiks, o pagrindinis jos konfigūracijos failas yra /etc/etckeeper/etckeeper.conf. Norėdami atidaryti jį redaguoti, naudokite bet kurį mėgstamą teksto redaktorių, kaip parodyta.

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

Faile yra kelios konfigūracijos parinktys (kiekviena su nedideliu, aiškiu naudojimo aprašymu), kurios leidžia nustatyti naudotiną versijos valdymo sistemą (VCS), perduoti parinktis VSC; Norėdami įjungti arba išjungti laikmatį, įjungti arba išjungti specialų failo įspėjimą, įjungti arba išjungti etckeeper atlikti esamus /etc pakeitimus prieš įdiegiant.

Be to, galite nustatyti, kad priekinio arba aukštesnio lygio paketų tvarkytuvė (pvz., apt, yum, dnf ir tt) ir pagrindinė arba žemo lygio paketų tvarkytuvė (dpkg, rpm ir kt.) veiktų su etckeeper.

Jei atlikote failo pakeitimą (-us), išsaugokite jį ir uždarykite failą.

„Git“ saugyklos inicijavimas ir pradinis įsipareigojimas

Dabar, kai sukonfigūravote etckeeper, turite inicijuoti Git saugyklą, kad pradėtumėte stebėti bet kokius pakeitimus kataloge /etc, kaip nurodyta toliau. etckeeper galite paleisti tik turėdami root teises, kitu atveju naudokite sudo.

cd 
sudo etckeeper init

Kitas veiksmas, kad etckeeper veiktų automatiškai, turite paleisti pirmąjį įsipareigojimą, kad galėtumėte sekti /etc pakeitimus, kaip nurodyta toliau.

sudo etckeeper commit "first commit"

Pakeitimų darymas ir įsipareigojimas

Po pirmojo įsipareigojimo etckeeper per git dabar stebi visus pakeitimus kataloge /etc. Dabar pabandykite atlikti bet kokius konfigūracijos failų pakeitimus.

Tada paleiskite šią komandą, kad parodytumėte failus, kurie pasikeitė nuo paskutinio įvedimo; ši komanda iš esmės parodo /etc pakeitimus, kurie nėra atlikti įpareigojimui, kur VCS reiškia git, o „status“ yra git antrinė komanda.

sudo etckeeper vcs status

Tada atlikite naujausius pakeitimus, kaip nurodyta toliau.

sudo etckeeper commit "changed hosts and phpmyadmin config files"

Peržiūrėkite įsipareigojimų žurnalus

Norėdami peržiūrėti visų įsipareigojimų žurnalą (kiekvieno įsipareigojimo ID ir komentarą), galite paleisti šią komandą.

sudo etckeeper vcs log

Taip pat galite parodyti išsamią įsipareigojimo informaciją, tiesiog nurodykite įsipareigojimo ID (gali veikti keli pirmieji simboliai), kaip parodyta.

sudo etckeeper vcs show a153b68479d0c440cc42c228cbbb6984095f322d
OR
sudo etckeeper vcs show a153b6847

Be to, galite pamatyti skirtumą tarp dviejų įsipareigojimų, kaip parodyta. Tai ypač naudinga, jei norite atšaukti pakeitimus, kaip parodyta kitame skyriuje. Naudodami rodyklių klavišus galite slinkti aukštyn ir žemyn arba kairėn ir dešinėn, o uždaryti paspausdami q.

sudo etckeeper vcs show 704cc56 a153b6847

Kaip atšaukti pakeitimus

etckeeper esmė yra padėti jums stebėti katalogo /etc pakeitimus ir, jei reikia, pakeisti pakeitimus. Darant prielaidą, kad suprantate, kad paskutinį kartą redaguodami /etc/nginx/nginx.conf padarėte klaidų, o Nginx paslaugos negalima paleisti iš naujo dėl konfigūracijos struktūros klaidų, galite grįžti į išsaugotą kopiją konkrečiame patvirtinime (pvz., 704cc56), kur, jūsų nuomone, konfigūracija buvo teisinga, kaip nurodyta toliau.

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

Arba galite atšaukti visus pakeitimus ir grįžti prie visų failų, esančių /etc (ir jo pakatalogių), saugomų konkrečiame įsipareigojime, versijas.

sudo etckeeper vcs checkout 704cc56 

Kaip įgalinti pakeitimus, kad jie būtų patvirtinti automatiškai

Etckeeper taip pat pristatoma kartu su Systemd paslauga ir laikmačio įrenginiais, kurie įtraukti į paketą. Norėdami paleisti Automatinis patvirtinimas keitimus kataloge /etc, kol kas tiesiog paleiskite etckeeper.timer įrenginį ir patikrinkite, ar jis veikia ir veikia , kaip nurodyta toliau.

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

Ir įgalinkite jį automatiškai paleisti sistemos įkrovos metu, kaip parodyta.

sudo systemctl enable etckeeper.timer

Norėdami gauti daugiau informacijos, žr. Etckeeper projekto puslapį: https://etckeeper.branchable.com/.

Išvada

Šiame vadove parodėme, kaip įdiegti ir naudoti etckeeper, kad būtų galima atlikti pakeitimus kataloge /etc versijų valdymo sistemoje (VCS). pvz., git ir, jei reikia, peržiūrėkite arba grąžinkite pakeitimus, kurie buvo atlikti /etc. Pasidalykite savo mintimis arba užduokite klausimų apie etckeeper naudodami toliau pateiktą atsiliepimų formą.