2008-08-20 2 views

답변

6

를 IIS6에 배포됩니다. 루비 위에 구축되어 배포 스크립트를 매우 쉽게 작성하고 ssh를 사용합니다.

다른 프로젝트에서 나는 bash를 사용하여 svn을 임시 디렉토리로 내보내고 라이브 서버로 rsync하는 작은 배포 응용 프로그램이 있습니다. rsync에서 ssh를 사용할 수 있습니다.

프로젝트가 루비/레일이 아닌 경우에도 나는 Capistrano 방법을 매우 선호합니다.

0

언제든지 소스에서 암호화하고 파일을 푸시 한 다음 대상에서 암호를 해독하는 작은 클라이언트/서버 앱을 작성할 수 있습니다. 그것은 약간의 일이지만, 아마도 사소한 금액 일 것입니다. 자동화 도구가 파일 시스템에서 무언가를 실행하는 것을 지원하는 한 스크립팅 가능합니다 (모두 그렇게 생각합니다).

유일한 단점은 통합 환경에서 실패 할 경우 일부 작업을하지 않아도 의미있는 오류 메시지를받을 수 없다는 것입니다. 설정에 따라 오류 메시지를 보내는 것만 큼 간단 할 수도 있습니다. stdout).

0

hm 여기에서 우리는 라이브 환경 (실제로는 프로덕션 서버의 아파치 가상 호스트)과 araxis merge (정말 스마트 한 줄 단위 파일 비교 도구)에서 테스트 목적으로 준비 "서버"를 사용합니다. 개발 및 준비를 동기화합니다.

한번 테스트 해 보았습니다. 생산 웹 루트에있는 파일을 대체 :

/MP

4

이 SFTP 쉽게 할 수있는 일의 종류처럼 보인다. Windows의 경우 PuTTY (psftp 및 pscp) 또는 WinSCP을 보거나 Unixes의 경우 rsyncOpenSSH을 확인하십시오.

1

라이브 사이트 디렉토리의 복사본을 만들고 rsync을 사용하여 해당 복사본을 최신 버전으로 업데이트 한 다음 라이브 및 업데이트 된 디렉토리의 이름을 변경하여 업데이트 된 버전이 현재 라이브 상태가되도록하십시오. 배쉬에서

:

#!/bin/bash 

set -e 
cp -R /var/livesite /var/newversion 
rsync [email protected]:/var/readytogolive /var/newversion 
mv /var/livesite /var/oldlivesite 
mv /var/newversion /var/livesite 

비올라!

편집 : @Ted Percival - 좋은 생각입니다. 나는 "set -e"에 대해서조차 몰랐다. 업데이트 된 스크립트. 편집 : Ted의 제안에서 다시 업데이트되었습니다. (비록 어떻게 든 cp 명령이 실패하면 cp 명령이 실패하면 여전히 작동 할 것이라고 생각하지만 cp가 실패하면 더 심각한 문제가 발생할 수 있습니다.)

1

@Neall, 두 번째에 set -e을 추가합니다. 어떤 이유로 든 rsync이 실패하면 라이브 사이트가 교체되기를 원하지 않기 때문입니다. set -e은 명령이 실패 할 경우 스크립트를 종료합니다.

편집 : set -e#!/bin/bash 바로 다음에 스크립트의 첫 번째 것이어야합니다.

1

GUI 기반 솔루션을 찾고있는 경우 Webistrano 프런트 엔드를 사용해 볼 수도 있지만 Capistrano의 권장 사항은 두 번째입니다. 깨끗한 ssh 기반, 정상적인 배포 및 롤백 의미론 및 루비를 통한 쉬운 스크립팅 및 확장 성.

0

프리랜서 직업에서 저는 세 가지 환경을 설정했습니다.

  • 실행 된 Dev 서버는 CruiseControl을 사용하여 계속 빌드됩니다. 모든 체크인은 빌드를 트리거합니다. 여기에서 QA 테스트가 수행되었습니다.
  • 테스트 서버에서 사용자 수락 테스트가 수행되었습니다.
  • 생산. SourceControl 변경에

    1. 개발자 검사 :

작업 흐름은 다음과 같이했다.

  • CruiseControl은 Build를 빌드하고 Dev에 배포합니다.
  • Dev is QA'ed
  • QA를 전달한 후 Robocopy 스크립트를 실행하여 Dev 빌드를 Test에 배포합니다.
  • 테스트는 UAT'ed입니다.
  • 테스트가 통과 된 후 테스트를 PRD에 배포하는 robocopy 스크립트가 실행됩니다.
  • 관련 문제