2010-08-03 8 views
1

QA 환경으로의 배포를 자동화하는 방법을 찾으려고합니다. 문제는 우리 릴리스가 상당히 크다는 것입니다. 따라서 압축해야하고, FTP를 수행 한 다음 QA 서버에서 압축을 풀어야합니다. 원격으로 압축을 풀 때 최상의 방법을 모르겠습니다.QA 환경에 자동 배포하는 동안 원격으로 압축을 해제하려면 어떻게해야합니까?

나는 몇 가지 옵션을 생각할 수 있지만, 그들 중 누구도 바로 소리하지 :

  • 사용 PsExec를이 릴리스 압축을 해제 할 QA 서버에 원격 명령 행 호출을 실행 할 수 있습니다.
  • 릴리스를 압축 해제하고 올바른 위치에 복사하는 웹 서비스를 QA 서버에 호스팅합니다. 이 서비스는 파일 업로드가 완료되면 릴리스 될 수 있습니다.
  • 파일 위치를 모니터링하고 압축을 풀어주는 QA 서버에서 Windows 서비스를 호스팅합니다.

아무도 꽤 있습니다. 다른 사람들이이 문제를 어떻게 해결했는지 궁금합니다.

추신 : 우리는 CruiseControl.NET을 사용하여 건물, 압축 및 FTP를 수행하는 NAnt 스크립트를 실행합니다.

+0

은 원격 유닉스/리눅스 서버입니까? 그 서버에 ssh 할 수 있습니까? 왜 rsync를 사용하지 않습니까? – berkes

답변

2

압축 및 압축 해제 대신 rsync과 같은 도구를 사용할 수 있습니다. 파일 전송 중에 데이터를 투명하게 압축 할 수 있습니다. -z 옵션은 압축을 사용하도록 rsync에 지시합니다.

그러나 저는 Windows 환경에 있다고 가정합니다.이 경우 cwRsync ("Windows 용 rsync")을 사용할 수 있습니다.

QA 상자에 액세스 할 수 있는지 여부에 따라 실행 가능한 솔루션이 아닐 수도 있습니다.

  • 원격 시스템에서 cwRsync 서버를 설치하고
  • 어떤 방화벽을 통해 트래픽을 허용 :에 당신은해야합니다.
2

내가 근무한 마지막 장소에서 CI 메일 박스에 Windows 서비스를 작성하여 압축을 풉니 다. TFS Team Server는 빌드를 완료하고 완료된 빌드를 압축하여 CI 상자에 복사하도록 서비스에 알립니다. CI 상자가 새 파일을 가져와 압축을 풉니 다. 약간 무거웠지만 제대로 작동 했으므로 이벤트 로그에 모든 작업을 기록 할 수 있으므로 서버가 재설정되고 서비스가 시작되지 않았는지 여부를 쉽게 진단 할 수있었습니다.

업데이트 :이 프로세스를 개선하는 것이 좋겠지 만, CI 상자의 서비스에서 압축을 위해 x 개월보다 오래된 zip 파일과 압축되지 않은 파일을 확인하도록했습니다. 우리는 일상적으로 디스크 공간이 부족하여 (VM을 거의 보지 않았습니다), 수동으로 오래된 빌드를 제거해야했습니다.

관련 문제