[server] Puppet을 사용한 응용 프로그램 배포

저는 Puppet을 처음 사용하고 몇 년 동안 * nix 시스템을 사용해 왔지만 시스템 관리자 나 운영 부서에서 일한 적이 없습니다.

현재 (PHP / MySQL / MongoDB, git의 코드) 웹 응용 프로그램 집합을 호스팅하기 위해 Puppet 매니페스트를 작성하고 있습니다. 분명히 각각의 가상 호스트를 설정하기 때문에 Puppet은 실제 응용 프로그램에 대한 지식이 필요하지만 Puppet이 코드 배포 및 데이터베이스 생성과 같은 것을 관리해야하는지 확실하지 않습니다.

Puppet은 응용 프로그램 배포에 적합한 도구입니까? 그렇지 않은 경우 더 적절한 도구를 추천 할 수 있습니까?



답변

배포를 위해 Capistrano 또는 Fabric 을 살펴 봅니다 .

이 두 도구를 사용하여 배포가 수행되는 방식을보다 잘 제어 할 수 있습니다.


답변

Puppet은 많은 대규모 조직의 배포에 사용되지만 항상 완벽하지는 않습니다. 대부분 배포 방법에 따라 다릅니다. 한 번에 많은 컴퓨터에 배포하고 있습니까? 롤링 배포를 수행합니까?

일부 조직은 배포 패키지를 구축 한 다음 꼭두각시 정책을 통해 해당 패키지의 올바른 버전이되도록 Puppet을 사용합니다. 퍼펫에는 환경 개념이 포함되어 있으므로 환경을 사용하여 단계별 배포 (예 : 개발, 테스트, 생산)를 수행 할 수 있습니다.

다른 조직에서는 꼭두각시를 사용하여 rsync, git checkout 또는 꼭두각시를 사용하여 재귀 적으로 파일 복사본을 실행하여 배포를 조정합니다 (아주 느리지 만).

배포에 사용할 수있는 다른 훌륭한 도구들도 있습니다. 과거에는 Whisky Disk (간단한 루비 도구)를 사용해 왔으며 많이 좋아했습니다.

(면책 조항, Puppet Labs에서 일합니다)


답변

애플리케이션에서 패키지를 빌드하려면 FPM을 살펴보십시오 . 코드는 GitHub있습니다 .


답변

Puppet은 제 생각에 응용 프로그램을 배포하는 데 적합한 도구가 아닙니다.

테스트 및 준비를 위해 코드를 작성하고 배포 하는 데 Jenkins 를 사용 합니다.

Jenkins는 원래 지속적인 통합 서버이지만 실제로 유연하고 모듈 식입니다. 애플리케이션 배포에 도움이되는 Jenkins 용 플러그인이 많이 있습니다.

응용 프로그램의 경우 SSH통해 게시 된 WAR 파일을 대상 서버에 복사 한 다음 백업 및 배포를 수행하는 스크립트를 실행하는 Jenkins를 구성 했습니다. 도움이 되었기를 바랍니다!


답변

원격 실행 + 구성 관리 도구는 응용 프로그램 배포에 적합합니다. 소금은 이것의 좋은 예입니다 .


답변

Puppet은 실제로 배포 용으로 설계되지 않았습니다. 많은 파일이 포함되어 있으면 문제가 발생할 수 있기 때문입니다. 앱 배포를 위해 capistrano를 살펴볼 수 있습니다.

http://rubyforge.org/projects/capistrano/


답변