load-net

etckeeper1

Dec 2nd, 2024
23
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.58 KB | None | 0 0
  1. git remote add origin [email protected]:load-net/aster-keeper.git
  2. git push -u origin master
  3.  
  4.  
  5. apt install etckeeper git
  6. cd /etc
  7. git remote add origin [email protected]:bashdays/etc.git
  8.  
  9. incrontab -e
  10. /etc/asterisk IN_MODIFY /usr/bin/etckeeper commit "modified $@/$#"
  11.  
  12. Запускаю nginx reload, хм, ничего не изменилось… Лезу в nginx.conf, а в нем все мои локейшены, которые я добавил — похерены отсутствуют.
  13.  
  14. Почесываю свою лысую кабину. Ага, значит какой-нибудь puppet агент тут крутится или ансибл.
  15.  
  16. Смотрю процессы, паппета нет, смотрю логи auth на момент подключения ансибла. Смотрю логи крона и сам крон, ничо нет. В логах нет —
  17. Списываю всё на глюки симуляции этого мира и магнитные бури. Добавляю еще раз локейшены, перезапускаю nginx, ! Локейшенов нет ))
  18. Курю, бегаю по каталогам, размеренно думаю. Ииии замечаю забавнейшую вещь. В корне каталога etc есть директория .git!!! Вот и сложился пазл. Картина маслом.
  19.  
  20. Как я и думал, здесь установлен ETCKeeper.
  21.  
  22. Эта такая херабора, которая отслеживает изменения в каталоге etc. Если что-то изменилось, оно это откатывает из git репозитория.
  23. (https://bashdays.t.me/)
  24. А чтобы поправить nginx конфиг, предварительно нужно запушить в репу актуальные правки иии только потом оно останется на сервере.
  25.  
  26. Штука довольно интересная, в своё время я ее втыкал где только можно. Очень полезна от криворуких разработчиков/тестировщиков с рутом. Которые ломают и потом утверждают, что они ничего не делали.
  27.  
  28. А ты просто смотришь диффы в git и тыкаешь их носом как нагадивших в макбук котяток (https://t.me/bashdays/302).
  29.  
  30. Ставится эта штука очень просто, через apt, ну а дальше почти из коробки работает, достаточно сказать с каким репозиторием ей взаимодействовать и по желанию добавить всякие конфиденциальные файлы в .gitignore.
  31.  
  32. apt install etckeeper git
  33. cd /etc
  34. git remote add origin [email protected]:bashdays/etc.git
  35. В git репе в разделе Deploy Keys, добавляем public root ключик с галочкой Allow write access.
  36. А затем применяем бест практику и пушим в мастер:
  37. git push -u origin master
  38. Всё Initial Commit почти со всем содержимым, запушен в репу. Красотища!
  39. ✔️ Но перед пушем не забываем поправить файлик .gitignore и добавить в него например всякие shadows и т.п.
  40. Ну а теперь пробуем отредактировать какой-нибудь fstab и добавить новую строчку. Добавил? Ок, запускай!
  41.  
  42. etckeeper commit "поправил fstab" && git push
  43.  
  44. Всё! Правки в git репе. Ну и по желанию всё это дело можно откатить, либо пачкой, либо один файл.
  45.  
  46. Делается так, смотрим список коммитов:
  47.  
  48. etckeeper vcs log --pretty=oneline
  49.  
  50. e36f279 (HEAD -> master, origin/master)
  51. 9c24a66 поправил fstab
  52. c1ee020 Initial commit
  53.  
  54. Теперь откатываем правленый fstab:
  55.  
  56. etckeeper vcs checkout 9c24a66 /etc/fstab
  57.  
  58. Ееее! Откатилось. Ну и не забываем, что после отката нужно зафиксировать все изменения.
  59.  
  60. etckeeper commit "вернул как было"
  61. git push
  62.  
  63. Вот и всё! Функционал etckeeper намного шире, я рассказал про основное и саму концепцию. А если будет интересно думаю ты и сам найдешь всю нужную информацию в гугле.
  64.  
  65. Вообще можно и через Bash скрипт такое размутить, не устанавливая никакой софт, но иногда проще сделать apt install чем отлаживать баги в своем коде.
  66.  
  67. Я как-то на коленке изобретал нечто подобное для nginx, писал в этом посте. (https://t.me/bashdays/30)
  68.  
  69. Отслеживать изменения можно через incron и автоматически коммитить:
  70.  
  71. incrontab -e
  72. /etc IN_MODIFY /usr/bin/etckeeper commit "modified $@/$#"
  73.  
  74. Incron запускает таски не по временным меткам, а по событиям.
  75.  
  76. Добавить больше нечего. Хорошего тебе дня!
  77.  
  78. tags: #linux #utils
  79.  
  80. @ВА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