git을 사용하여 /etc를 관리하시겠습니까?

git을 사용하여 /etc를 관리하시겠습니까?

/etc원격 Git 저장소를 추적하는 시스템을 고려 중입니다 . 각 호스트에 서로 다른 분기가 있는 git 작업 흐름을 고려하고 있습니다.

모든 시스템의 모든 이전 버전을 쉽게 추적, 비교, 병합할 수 있습니다.

/etc많은 시스템에서 수정 사항을 커밋해야 하는 경우 일부 병합 스크립트를 사용하여 쉽게 수행할 수 있습니다.

"원치 않는" 변경 사항이 발생하는 경우 /etc가시성이 좋아질 수 있습니다 (경고 스크립트도 관찰하도록 조정할 수 있음).

이런 구성을 사용해본 사람이 있나요? 보안 문제가 있나요?

답변1

프로그램은 에서 etckeeper관리하므로 기본 vcs 백엔드를 에서 으로 변경하기만 하면 됩니다 ./etcgitbzrgit/etc/etckeeper/etckeeper.conf

Ubuntu Linux에 기본적으로 설치되며 커밋이 자동으로 수행되는 일반적인 경우를 처리합니다.
커밋되지 않은 수동 변경 사항이 있는 경우 패키지 설치 전후에 커밋됩니다.

답변2

구성 추적의 문제점은 /etcgit작업을 수행하면 실제로 얻을 수 있는 것은 버전 제어(대부분의 초보자는 제대로 수행하는 git방법조차 모르기 때문에 현 시점에서는 거의 불가능함)와 롤백 기능(다시 말하지만, 그렇지 않습니다.) 아니요 , 다른 사람이 멍청하다고 비난하는 것 외에는 아무것도 얻지 못합니다. 그러나 템플릿을 잃게 됩니다(git이 템플릿을 제공하지 않기 때문에 템플릿을 사용할 수 없음), 수평 확장(다른 곳에 구성을 적용할 수 없음) .Elasticsearch와 같은 분산 데이터베이스와 자동화된 시스템 관리(역시 git은 이 기능을 제공하지 않습니다)를 사용하는 경우.tagbranchtagging

그렇다면 아마도 당신이 찾고 있는 것은구성 관리;이것은 다음과 관련이 있습니다.템플릿git구성을 관리하는 기본 스크립트입니다. 물론 이는 DevOps 방향으로 움직이고 있습니다.코드로서의 인프라.

여기에 Ansible을 추가하면 ansible-pull다음에서 플레이북의 최신 저장소를 가져올 수 있습니다 git. Chef의 경우에도 마찬가지입니다. 기본적으로 현대 Linux 관리자는 Chef와 같은 기능을 사용해서는 안 됩니다 . Chef에는 Chef 및 Cookbook 에디션을 etckeeper기반으로 모든 시스템을 관리할 수 있는 클라이언트-서버 모델도 있습니다.chef-clientenvironmentrolesgit

관련 정보