Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- git remote add origin [email protected]:load-net/aster-keeper.git
- git push -u origin master
- apt install etckeeper git
- cd /etc
- git remote add origin [email protected]:bashdays/etc.git
- incrontab -e
- /etc/asterisk IN_MODIFY /usr/bin/etckeeper commit "modified $@/$#"
- Запускаю nginx reload, хм, ничего не изменилось… Лезу в nginx.conf, а в нем все мои локейшены, которые я добавил — похерены отсутствуют.
- Почесываю свою лысую кабину. Ага, значит какой-нибудь puppet агент тут крутится или ансибл.
- Смотрю процессы, паппета нет, смотрю логи auth на момент подключения ансибла. Смотрю логи крона и сам крон, ничо нет. В логах нет —
- Списываю всё на глюки симуляции этого мира и магнитные бури. Добавляю еще раз локейшены, перезапускаю nginx, ! Локейшенов нет ))
- Курю, бегаю по каталогам, размеренно думаю. Ииии замечаю забавнейшую вещь. В корне каталога etc есть директория .git!!! Вот и сложился пазл. Картина маслом.
- Как я и думал, здесь установлен ETCKeeper.
- Эта такая херабора, которая отслеживает изменения в каталоге etc. Если что-то изменилось, оно это откатывает из git репозитория.
- (https://bashdays.t.me/)
- А чтобы поправить nginx конфиг, предварительно нужно запушить в репу актуальные правки иии только потом оно останется на сервере.
- Штука довольно интересная, в своё время я ее втыкал где только можно. Очень полезна от криворуких разработчиков/тестировщиков с рутом. Которые ломают и потом утверждают, что они ничего не делали.
- А ты просто смотришь диффы в git и тыкаешь их носом как нагадивших в макбук котяток (https://t.me/bashdays/302).
- Ставится эта штука очень просто, через apt, ну а дальше почти из коробки работает, достаточно сказать с каким репозиторием ей взаимодействовать и по желанию добавить всякие конфиденциальные файлы в .gitignore.
- apt install etckeeper git
- cd /etc
- git remote add origin [email protected]:bashdays/etc.git
- В git репе в разделе Deploy Keys, добавляем public root ключик с галочкой Allow write access.
- А затем применяем бест практику и пушим в мастер:
- git push -u origin master
- Всё Initial Commit почти со всем содержимым, запушен в репу. Красотища!
- ✔️ Но перед пушем не забываем поправить файлик .gitignore и добавить в него например всякие shadows и т.п.
- Ну а теперь пробуем отредактировать какой-нибудь fstab и добавить новую строчку. Добавил? Ок, запускай!
- etckeeper commit "поправил fstab" && git push
- Всё! Правки в git репе. Ну и по желанию всё это дело можно откатить, либо пачкой, либо один файл.
- Делается так, смотрим список коммитов:
- etckeeper vcs log --pretty=oneline
- e36f279 (HEAD -> master, origin/master)
- 9c24a66 поправил fstab
- c1ee020 Initial commit
- Теперь откатываем правленый fstab:
- etckeeper vcs checkout 9c24a66 /etc/fstab
- Ееее! Откатилось. Ну и не забываем, что после отката нужно зафиксировать все изменения.
- etckeeper commit "вернул как было"
- git push
- Вот и всё! Функционал etckeeper намного шире, я рассказал про основное и саму концепцию. А если будет интересно думаю ты и сам найдешь всю нужную информацию в гугле.
- Вообще можно и через Bash скрипт такое размутить, не устанавливая никакой софт, но иногда проще сделать apt install чем отлаживать баги в своем коде.
- Я как-то на коленке изобретал нечто подобное для nginx, писал в этом посте. (https://t.me/bashdays/30)
- Отслеживать изменения можно через incron и автоматически коммитить:
- incrontab -e
- /etc IN_MODIFY /usr/bin/etckeeper commit "modified $@/$#"
- Incron запускает таски не по временным меткам, а по событиям.
- Добавить больше нечего. Хорошего тебе дня!
- tags: #linux #utils
- @ВАSНDАYS (https://t.me/+68hWB_gbcaMwYmEy) | BАSHDАYS.CОM (https://bit.ly/4aI1N4I)
Add Comment
Please, Sign In to add comment