2009-09-14 2 views
2

내 질문은 : 여러 컴퓨터에서 사용하는 [D] VCS에서 동일한 코드를 어떻게 배포합니까? 자동 배포 시스템이 있습니까? 그렇다면 무엇입니까? 사내에 건설 되었습니까? 이 작업을 자동으로 수행 할 수있는 도구가 있습니까? 몇 가지 수정을 할 때마다 최대 20 대의 컴퓨터를 업데이트하는 것이 지루하기 때문에 묻습니다.리포지토리 코드를 여러 컴퓨터에 동시에 배포

피씨 : 아마 이것은 ServerFault에 속해 있지만, 내 자신의 맞춤형 배포 시스템을 작성할 생각이기 때문에 여기에서 묻습니다.

답변

2

자신의 rpm/deb/무엇이든 패키지를 롤백하고, 자신의 레포를 설정하고, 기계를 정기적으로 가져 오게하십시오. 실제로 그렇게하기가 어렵지 않고 시스템에 이미 내장되어 있으며 잘 테스트되고 기능이로드됩니다. 대신 Func과 같은 것을 사용할 수 있습니다.

+0

DEBIAN 호환 저장소는 설치하기 쉽고 문제의 80 %를 처리합니다. – jldupont

+0

Func 란 무엇입니까? 그것을 찾는 방법? – temoto

+0

@temoto https://fedorahosted.org/func/ – EvilRyry

1

상황에 따라 버전 시스템에서 직접 배포하는 것이 항상 최선의 방법은 아닐 수도 있습니다. 파일을 업데이트하는 것만으로도 많은 것을 할 수 있으며 배포와 개발을 혼합하면 버전 관리 시스템의 개발 사용이 줄어들 것입니다.

흥미로운 두 가지 대안이 있습니다.

  • 연속 통합 서버에서 배포하십시오. (모든 성공적인 빌드 후에 실행되는 작업을 추가하고 파일을 복사하고 일부 원격 명령을 실행합니다. 테스트 서버에 배포 할 때이 방법을 사용하여 생산을 업그레이드하는 것이 어렵습니다)

  • 배포 기존 패키지 관리자를 사용합니다. 자신의 apt (또는 이와 동등한) 저장소를 설정하고 apt를 사용하여 업데이트를 패키지화 할 수 있습니다. 지속적인 빌드 시스템으로 apt 패키지를 빌드하고 관리자가 업데이트 서버에 푸시해야하는지 결정하게하십시오. 나는 이것이 생산 기계를위한 유일한 안전한 해결책이라고 생각한다.

0

puppet과 함께 deb 패키지의 조합을 사용하여 코드를 배치하고 여러 대의 기계를 구성합니다.

0

대부분의 프로젝트에서 저는 최종 단계에서 항상 스크립팅 된 rsync 배포를 사용했습니다. 그래서 여러 타겟이이 프로세스에 내장됩니다.

1

우리는 서버를 유지하고 많은 개발자/엔지니어 패키지 목록 및 구성 파일 수리를 할 때 피할 수없는 '구성 드리프트'를 피하는 배포 & Puppet에 대한 Capistrano를 사용합니다.

이 두 프로그램은 모두 Ruby로 작성되었지만 git 저장소에 저장된 PHP 코드베이스에 사용됩니다.

관련 문제