-
Etckeeper i mamy porządek w configach
Z czasem ilość usług instalowanych w naszych środowiskach serwerowych rośnie i to w zastraszającym tempie. Podobnie jest z plikami konfiguracyjnymi. Łatwo jest się wtedy pogubić, szczególnie jeśli dokonujemy wielu modyfikacji, eksperymentujemy. Gorzej bywa jak po wprowadzeniu zmian, coś przestaje działać, a my nie pamiętamy co zmieniliśmy. W takich przypadkach może pomóc nam etckeeper, czyli narzędzie oparte na gicie, które będzie w sposób automatycznie np. raz dziennie commitować wszelkie zmiana w plikach w obrębie danego katalogu (zakładając, że /etc zgodnie z nazwą) oraz przy każdej instalacji/deinstalacji jakiegoś pakietu. Przystąpmy więc do instalacji i konfiguracji. Zakładam, że macie skonfigurowane repozytorium EPEL.
yum install etckeeper
To tyle z instalacji 🙂
adduser etckeeper
Zakładamy sobie użytkownika np. etckeeper.
su etckeeper
Robimy „su” na niego
cd /GIT/configi
Wchodzimy do katalogu w którym chcemy trzymać repozytoria gita z naszymi plikami konfiguracyjnymi
git init --bare nazwa-naszego-serwera/public.git
Inicjalizujemy repozytorium. Poniżej oczekiwany efekt powyższego polecenia
Initialized empty Git repository in /GIT/configi/nazwa-naszego-serwera/public.git/
Teraz czas na konfigurację komputera klienckiego, ale wpierw instalacja etckeeper-a
yum install etckeeper
następnie
cd /etc
etckeeper init
Initialized empty Git repository in /etc/.git/
Następnie generujemy parę kluczy ssh – oczywiście jeśli ich nie mamy/ssh-keygen
cat .ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDnWGebr3ouMJkhsz0Ew5kHk9Nop7xQhelZXhrv1tB0IZXMv7ChOJdky7AkPMf+qELHWQcw9QacAwBqqSh6d0OBAaoiUHZgB17wpUFS0AzhK6PJ4SUsg1SD62uezJ6VHt6NJZiE5/4InZO6KeNHisWaV5c1T3Ht3GZpLVsQCS/9E89lw2AYeiY3lNNkQuo4pCiA6rYdBl6k5bVQLvIfPlXkLbrl+O1Aylb+k2nJIPKypypPxXhKkxu54jUtOC+8a9jCAhM34i1wIxeSUYbORSgShU1kzLAZc4Q50lMlLSjvd2Rbc2DTJOENSBO8gLRqtxayTAcIWDir5XrYLNrKqB3T root@centos.localdomain
Kopiujemy klucz i wklejamy na naszym serwerze gita (etckeeper-a) do pliku „/home/etckeeper/.ssh/authorized_keys”. Następnie konfigurujemy repozytorium dla naszego /etc.cd /etc
git remote add origin etckeeper@adres-naszego-server-git.pl:/GIT/configi/nazwa-naszego-serwera/public.git/
Nie możemy zapomnieć o dodanie do pliku „/etc/.gitignore” pliku z hasłami systemowymi.
vim /etc/.gitignore
i dopisujemy
shadow
Następnie odpalamy pierwszego commita i pusha 🙂etckeeper commit "init our configuration server"
git push --set-upstream origin master
Efekt poniżej:
To etckeeper@git.specadmin.net:/GIT/configi/nazwa-naszego-serwera/public.git/
* [new branch] master -> master
Branch master set up to track remote branch master from origin.
Na koniec edytujemy configa etckeeper-a na stacji klienckiej:vim /etc/etckeeper/etckeeper.conf
i dodajemy opcję „origin” dla „PUSH_REMOTE”
PUSH_REMOTE="origin"
W podanym pliku możemy dokonać wielu modyfikacji związanych z archiwizowaniem naszych plików konfiguracyjnych, w tym wyłączenie dziennych autocommitów.