/etc menedžments ar subversion (svn)
2009-09-11 09:07:25 UTC by maris in Linux, gentoo, Quick Tips,Kas ir subversion visi zina :)
Tā pielietojumu atradu arī /etc menedžēšanai, šad tad gribas redzēt kas kādam konfigam ko ir mainījis, un šad tad ir nepieciešams uztaisīt kādu izmaiņu rollback.
Tiek izveidota repozitorija struktūra
mkdir svnprep
mkdir -p {branches,logs,trunk}
svn import -m 'Initial import' svn://mansSVNservers/repozitorijs
cd ../
rm -rf svnprep
Tiek uztaisīta lokāla darba kopija
svn co svn://mansSVNservers/repozitorijs/trunk /Configs
cd /Configs
Struktūra ir apmēram šāda:
svn:
->branches
->logs
->trunk:
--->all (konfigi kopēji visiem serveriem)
--->$(hostname) (katra hosta individuālie konfigi)
tālāk visi konfigi, kas ir vienādi visiem serveriem tiek pārnesti zem /Configs/all/etc/ un izveidots simlinks.
mv /etc/make.conf /Configs/all/etc/
ln -s /Configs/all/etc/make.conf /etc/
konfigi, kas ir unikāli hostam tiek ienesti iekš /Configs/HOSTNAME
tad jaunie faili tiek pievienoti pie svn un uztaisīts komits.
pēc komita nostrādā post-commit hook, kas caur ssh uz katra servera izpilda 'svn update'.
post-commit hooks
#!/bin/sh
hosts=`ls /Configs`
for h in $hosts
do
ssh root@${h} "cd /Configs; svn update"
done
tādējādi izdarot izmaiņas uz viena hosta updeitojas visi hosti.
Vienīgais priekšnoteikums ir tāds, ka autorizācija uz serveriem notiek ar ssh atslēgām bez paroles.