2

CentOS6.2 시스템의 OpenStack 클러스터에서 프로젝트를 실행하고 있습니다. 프로젝트는 약 10 git repos로 구성됩니다. 서비스에 대한 하나의 레포 또한 서비스는 일부 역할에 따라 20 개의 다른 노드에서 실행됩니다. 그래서 우리는 서비스와 역할 사이에 일종의 매핑을 할 수 있습니다. 클러스터를 통해 변경 사항을 전달하는 것은 수동으로 수행하는 경우 엉망입니다. 현재 우리는 git pull과 각 노드의 일부 구성 변경을 결합하여 사용하고 있습니다. 인간과 관련된 요인이 있으므로 수동 오류로 인해 클러스터를 오프라인으로 설정하지 않으려합니다.클러스터에서 실행중인 프로젝트 업데이트

소스를 업데이트 한 후 (db 마이그레이션 또는 구성 파일 업데이트 실행) 구성을 게시 할 수있는 기능으로 클러스터에 변경 사항을 제공하는 솔루션을 찾고 있습니다. 그것에 대한 좋은 해결책이 있습니까?

업데이트 : 아래 프로젝트가 적합합니다. 이들에 대한 실제적인 경험이 있습니까?

답변

0

스케일에서 당신이, 당신이 chef 같은 것을 잘 활용할 수있을 작업중인 것 같다 또는 puppet.

+0

초기 규모 배포를 수행 할 때처럼 프로비저닝하는 것이 좋습니다. 프로젝트 업데이트를위한 적절한 메커니즘으로 간주 될지 확실하지 않습니다. –

1

우리는 Springloops를 사용하여 배포를 관리합니다. 이를 통해 각 저장소의 각 지점마다 서로 다른 서버를 구성 할 수 있습니다. 중앙 저장소로 이동하여 여기에서 배포를 관리하기 만하면됩니다. 배치는 자동화되거나 수동 일 수 있습니다.

사용자 지정 콜백을 실행하기위한 지원이 일부 있으므로 사용자 지정 스크립팅을 트리거 할 수있는 푸시 알림을 받아들이는 클러스터의 어딘가에 (프로젝트 기준 일 수 있음) URL 끝점을 설정할 수 있습니다. .

새 서버에 새로운 배포가 필요한 경우 스프링클러에서 새 서버를 추가하고 밀어 넣는 것이 매우 쉽습니다. 소스 제어 관리가 서버에서 수행되어야하므로 잘 작동합니다. 각 새 서버에서 git 저장소를 복제하고 cron 또는 트리거 된 작업을 구성하여 repo를 업데이트하십시오.

명령 줄 도구와 타사 관리 서비스의 조합은 여러 가지가 있지만 몇 가지를 시도해 보았습니다. 현재 Springloops는 현재 진행중인 수십 개의 프로젝트 배포 관리에 적합합니다.

살펴볼 가치가 있습니다.

+0

springloops는 타임 쉬트, issuetracker 및 기타와 약간 다른 프로젝트처럼 보입니다. 도움이 될 수있는 유일한 기능은 webhooks 관리입니다. –