Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Git для сисадминов: etckeeper

Evgenii Terechkov
October 18, 2018
20

Git для сисадминов: etckeeper

Evgenii Terechkov

October 18, 2018
Tweet

Transcript

  1. slurm.io 4 Что это, Берримор? Обёртка вокруг вашей любимой VCS

    (git) для контроля содержимого /etc локальной машины
  2. slurm.io 5 Плюшки • Видно, кто, когда, что изменил (до

    дня) • Можно не делать "cp foo foo.bak" на каждый чих • Видно, какие пакеты установлены/удалены при транзакциях yum-а • Если сервер управляется ansible - всё уже настроено, можно пользоваться :-) • Можно пушить изменения в удалённый репозиторий (ssh/https)
  3. slurm.io 6 Установка • sudo -i; cd /etc; git status

    • yum -y install etckeeper • etckeeper init • git config --global user.name root • git config --global user.email root • etckeeper commit "Initial commit"
  4. slurm.io 7 cheat sheet • etckeeper init - инициализация •

    etckeeper commit "сообщение" - ручной коммит изменений с пояснением • git status - где изменено (и не закоммичено) • git diff - что именно изменено (не показывает новые!) • git log FILE.conf - история файла/каталога • git checkout FILE.conf - откатить незакоммиченное изменение в файле • git reset --hard - откатить все незакоммиченные изменения • git blame FILE.conf - кто когда и что правил в файле, построчно
  5. slurm.io 8 Типичный случай #cd etc/ # nginx -t #

    провал :-( # git diff # посмотрели, чего наколбасили недавно # git checkout nginx/nginx.conf # откатили как было # nginx -t # провал :-( #git log nginx | less # смотрим историю #git checkout 8b89fae85bbd4923e65b25a2f4e36d1597a53e2b – nginx/vhosts.d/foobar.conf # откатили один файл
  6. slurm.io 9 Проблемы • Симлинки на /srv/www/x.y/conf/ не контролируются –

    Смотри: #240308 • По умолчанию не игнорирует *.bak – Решение: cd /etc;echo "*.bak" » .gitignore; git rm --cached *.bak • /etc/.git распухает от постоянных правок – Решение: git repack -a -d