2010-06-30 12 views
4

저는 Web2Py 기반 웹 응용 프로그램을 구축하고 있으며 원격 EC2 개발 서버에서 대부분의 개발을하고 있습니다. 나는 모든 파이썬 모듈, 웹 페이지, 아파치 설정 파일을 포함한 전체 시스템을 버전 제어하고 싶다. 파일은 분명히 내 리눅스 박스에 흩어져 있지만, 한 명령을 사용하여 체크 아웃/커밋 할 수 있기를 원합니다. 명령 행에서 SVN을 처음 사용합니다. sym 링크가있는 일종의 가상 디렉토리를 사용하여이 작업을 수행하는 방법이 있습니까?웹 서버 버전 관리

모든 의견을 환영합니다. 감사.

+0

Google 버전의 web2py 소스 코드를 유지 관리하는 데 사용되는 mercurial을 고려하십시오. – hoju

+0

감사합니다. Richard Richard - Mercurial vs Git을보고 - Git을 기울이지 만 Windows 지원이 마음에 들지 않습니다. ... – Yarin

답변

3

단일 개발자의 경우 Git (book)이 더 편리합니다. 로컬에서 "쉽게"커밋 할 수 있으며 EC2 인스턴스가 될 수있는 원격 서버에 변경 사항을 적용하면 SSH 연결이 작동하기 만하면됩니다. 하지만 아마도 GitHub 또는 SSH를 가지고있는 Git을 설치할 수있는 다른 호스팅 솔루션과 같은 호스팅 솔루션으로 갈 것입니다. 내 "개인"프로젝트에 내 public projectsDreamHost GitHub를 사용합니다.

모든 파일을 하나의 디렉토리 구조에 넣은 다음 을 자동 프로세스를 사용하여 배포합니다. 파이썬에 대해서는 distutils 또는 심지어 easy_install과 같은 Python 표준을 제안합니다. 더 복잡한 환경의 경우 Chef과 같은 것을 고려해야합니다. 두 개 이상의 EC2 인스턴스로 스케일 아웃을 시작하면 매우 중요합니다. 여러 서버가 없어도 반복적 인 자동화 된 배치를위한 요리사 같은 것이 효율적인 개발자가하는 것입니다.

배포를 수행하기 위해 "빠르고 더러운"셸 스크립트를 작성하지 않으려 고해도 부서지기 쉽고 관리하기가 쉽지 않습니다. 요리사가 마음에 들지 않으면 대안을 연구하고 배울 시간이 필요합니다. 보낸 시간은 줄을 서서히 보냅니다.

+0

감사합니다. 퍼지, 힘내는 굉장해 보입니다. 나는 그것을 고려하지 않았습니다. 그래서 내 전체/var/www 디렉토리를 힘내게하는 문제를 안다면? 또한, "단일 개발자에게"자격을 부여하는 이유는 무엇입니까? - 공동 작업에 문제가 있습니까? – Yarin

+0

단일 개발자 git vs svn, git이기 때문에 설치, 사용 및 유지 관리가 더 간단하기 때문입니다. 나는 svn의 설정이 git보다 복잡하기 때문에 여전히 자식이 승리한다고 생각한다. –

3

이미 개발을 시작했다면 쉬운 경로는 SVN 트리를 구성한 다음 sym 및 모듈과 httpd.conf를 링크하는 것입니다. virtualenv을 사용하고 virtualenv config 만 체크인 할 수도 있습니다.

0

VM을 S3에 고스트로 생각한 적이 있습니까? 거의 클라우드 버전의 "가난한 사람 버전 제어"와 비슷합니다.

나는 symlinking을 해봤지만 좋은 해결책이긴하지만 처음에는 다루기가 쉽지 않다.

1

퍼지 lolipop처럼 나는 git도 제안 할 것입니다. 특히 그 이유는 낮은 오염 물질 발자국 때문입니다. SVN은 귀하의 Repo의 각 하위 폴더에 .svn 폴더를 남겨 두었습니다. 자동화 된 스크립트가 복사/붙여 넣기를하면 비용이 많이 듭니다.

내가 제안하는 것은 중심 git repo와 버전을 체크 아웃하는 게시 스크립트를 가지고 그 위치에 파일을 복사하는 것입니다.

은 또한 당신은 세그먼트 당신의 repo를 조금 당신의 웹 사이트를 묶는 심볼릭 링크를를 사용할 수

은, 그러나 그것은하는 REPO에 생산 소스를 가리 키도록 아마 가난한 연습의 난을 활용 아직도 좋겠 위에 나열된 복제 스크립트 방법.

+0

고마워요.하지만 "생산 소스를 레포로 가리키기위한 열악한 실천"이란 무엇을 의미합니까? 나는 그것에 관해 명확하지 않다. – Yarin

1

개인적으로 git을 사용하여 웹 사이트 및 설정 파일을 관리합니다.

동일한 repo에서 아파치 설정과 웹 사이트를 섞어 놓을 지 모르겠습니다.하지만이 방법을 사용하려면 별도의 브랜치에서 원격으로 설정해야합니다.

실행중인 OS에 따라, etckeeper가 좋으며 debian/apt 기반 시스템과 잘 통합됩니다.

+0

좋은 제안 - 감사합니다. – Yarin