문제

나는 현재 방화벽과 다른 비트와 밥을 구축하기 위해 OpenBSD 시스템에서 땜질하고 있습니다.

이것은 상당히 실험적이기 때문에 (나는 OpenBSD N00B이고, 이미 시스템을 3 ~ 4 번 버렸습니다), 다른 사람들이 파일 시스템의 일부 또는 전부를 만드는 경험이 궁금합니다 (특히 생각하고 있습니다. /etc) 일부 VC 또는 기타의 작업 사본.

  • 이것이 좋은 생각입니까?

  • 나는 특히 VCS 사람들이 이것에 사용했던 것에 관심이 있습니다. 나는 전복, 바자 및 git을 고려하고 있습니다. 이것은 공유 리포지토리가 아니므로 분산 또는 논증보다 기본 VCS 기능에 더 관심이있을 것입니다.

  • 또한 사람들이 찾은 상상력이나 실제 함정에 대해 듣고 싶습니다. 파일 소유권과 권한의 보존이 신중한 생각이 필요하다고 상상할 수 있습니다!

  • 물론 VC와 관련이없는 대안 접근법

도움이 되었습니까?

해결책

여기 GIT를 사용하여 / etc / extion 컨트롤을 넣는 것에 대한 자세한 개정이 있습니다.

또 다른 단계별 방법.

다른 팁

당신이하고있는 일을 위해 OpenBSD에서 시작하기보다는 제안 할 것입니다. pfsense.

VCS 자체는 고려하고 싶을 것입니다. 수은제 그것은 성공적으로 사용되고 있습니다 이 프로젝트

나는 아무도 언급하지 않는다고 생각합니다 기타 주인 아직.

등은 저장소 (Git (기본값), Mercurial 또는 BZR)에 저장합니다. 파일 소유권 보존, 권한 및 빈 디렉토리의 보존 문제를 해결합니다. 패키지 managemnet (적어도 APT와 함께)과 통합하여 새 패키지를 설치하는 동안 발생하는 /etc에 대한 변경 사항을 자동으로 커밋 할 수 있습니다. 설치가 자신의 변경 사항을 변경하면 매우 좋습니다.

나는 우분투에서 잠시 동안 그것을 성공적으로 사용해 왔습니다.

개정 제어 시스템에 구성 파일이있는 것 이상으로 구성 관리 시스템을 사용하는 것이 좋습니다. 요리사 또는 인형 구성 파일이 변경 될 때 애플리케이션 재시작과 같은 구성 파일의 내용, 권한 및 기타 세부 사항을 관리하고 해당 파일을 git/subversion/yourfavoritevcs에서 관리합니다.

나는 "GNU/Linux Magazine France"에서 무언가를 읽었습니다. 그 사람은 / etc에서 root로 rsync를 사용하여 작업 사본을 만들지 않고 전복을 통해 저장합니다.

나는 잡지를 조금 인용 할 것이다.

좋아, 예에서, 서버는 freebsd를 실행하고 "Sparky"인 반면, 저장 될 기계는 데비안 아래에 있고 "복제"입니다. 사용자 "복제"를 만듭니다.

/usr/local/etc/ssh/sshd_config add :

Match User replica
X11Forwarding no
AllowTcpForwarding no
ForceCommand /usr/local/bin/svnserv -t -r /home/replica/svnrepo -tunnel-user=replica

저장소 생성

Sparky # svnadmin 만들기/홈/복제/svnrepo

수정 권리 :

sparky # chown -R replica:nogroup /home/replica
sparky # chown -R o-rwx /home/replica
sparky # chown -R g-rwx /home/replica

고객 입장에서:

Subversion을 설치하십시오

replica # mkdir -p /root/scripts/svnrepo
replica # rsync -av /etc /root/scripts/svnrepo

export SVN_SSH ="ssh -i /root/.ssh/id_rsa"
svn import -m "replica config files" /root/scripts/svnrepos svn+ssh://replica@sparky/home/replica/svnrepo

이제 폴더는 아직 작동하지 않으므로 만들어야합니다. .SVN 파일을 만들 수 있습니까? 그는 할 수 없다 :)

cd /root/scripts
mv svnrepo svnrepo.old
svn checkout svn+ssh://replica@sparky/home/replica/svnrepo

이제 호스트와 같은 ETC에서 파일을 수정하십시오.

다시 rsync. 수정 된 파일 만 가져와야합니다.

이제 커밋 할 수 있습니다.

svn commit -m "backup 1" /root/scripts/svnrepo

마지막으로 하나가 있습니다. 파일을 전복으로 가져 오려면 추가해야합니다. 예를 들어, 새 파일을 /etc로 만들면 기본적으로 저장되지 않습니다.

무엇을해야합니까?

svn status /root/scripts/svnrepo | grep -e '^!' | awk '{ print $2 }' | xargs -r svn delete 
svn status /root/scripts/svnrepo | grep -e '^?' | awk '{ print $2 }' | xargs -r svn add

그런 다음 자신의 대본을 만들어야합니다.

도움이 되었기를 바랍니다.

(GTG, 나중에 타이틀을 설정하기 위해 편집 할 것입니다.

내가 관리하는 모든 서버의 /etc (300 + 및 counting)의 모든 내용은 아래에 있습니다. 수은제. 왜요?

  • SVN 또는 CVS를 사용한 사람이라면 누구나 사용하기 쉽습니다 (그렇지 않은 경우 내 생산 기계에서 /등에서 사업을하는 비즈니스가 없습니다).
  • 한 서버의 구성에서 다른 많은 사람들에게 쉽게 변경할 수 있습니다.
  • 다른 관리자가 뇌 방귀를 가질 때 롤백 할 수 있습니다.

Git 은이 경우 문제가 너무 적기 때문에 너무 많은 힘이었습니다. HG는 DVC이므로 커밋 및 롤백은 깨끗하고 쉽습니다. 나는 또한 HG를 사용합니다 내 웹 사이트의 대부분을 관리합니다.

소스 코드뿐만 아니라 :) 또 다른 더 기본적인 옵션은 Writes (COW)에서 스냅 샷을 가져 오는 일종의 버전 작성 파일 시스템을 사용하는 것입니다. DVC는 훨씬 쉽습니다.

피드백 : 내가 한 일

(@aif, 내 좋은 매너가 약간 빠졌다는 것을 상기시켜 주셔서 감사합니다)

나는 /etc를 git 리포지토리로 갔지만, 여전히 이것에 대해 조금 불안하기 때문에 (나, git이 아닌), 나는 수동으로 gitwork를하고 있습니다.

부작용으로, 나는보다 일반적인 버전 관리 컨텍스트 (합병 등)에 있지만, 나란히, 전복, git, bazaar, mercurial, monotone, darcs 및 fossil을 평가하기 위해 작은 프로젝트를 시작했습니다.


당신의 대답에 대한 나의 반응

도와 주셔서 감사합니다. 나는 어떤 대답을 받아 들일지 선택하는 데 어려움이 있었기 때문에 그것이 당신의 것이 아니라면, 저를 믿으십시오. 나는 당신의 것도 감사했습니다.

@루이스 멜 그라 티

루이스, 몇 가지 훌륭한 참고 문헌에 감사드립니다. 나는 당신의 대답을 가장 유용한 것으로 받아 들였습니다.


@콘래드

콘래드, 나는 당신의 제안 모두 감사합니다.

나는 확실히 조사 할 것이다 pfsense, 이것의 나의 목표 중 하나는 내 손을 실제로 더럽게 만들고 방화벽을 만드는 것이므로 "획득보다는 만들기"가 중요합니다.

Mercurial에 관해서는, 나는 그것을 시도했기 때문에 내 목록에 포함시키지 않았고, 나는 바자르를 더 좋아한다고 느꼈고, Git은 처음에 많은 힘을 가지고있는 것처럼 보인다 (나는 인정했다. 필요하지 않을 수 있습니다). 현재 "메인"VC는 현재 전복이지만이 경우에 좋은 답변이 확실하지 않습니다. 따라서 세 가지 목록입니다.

(이제 PFSense를보고 네트워크에서 발사했습니다. 아주 좋지만, 손을 약간 더러워도 할 것입니다 ...)


@aif

감사합니다, aif. 나는 확실히 그것을 시도 할 것입니다.


@Tinkertim

나는 지금은 바자회에 만족하지만 지금은 다시 방문 할 계획 인 Mercurial에 대한 당신의 생각에 감사드립니다.


@Wiklander 당

매우 흥미로운 제안에 감사드립니다! 나는 현재 워크 파일 아래에서 나올 수있을 때, Etckeeper를 살펴볼 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top