프로젝트를위한 CI (Continuous Integration) 서비스를 설정하려고합니다. 해당 CI 서비스는 배포를 포함하여 프로젝트 수명의 모든 측면을 제어해야합니다.
즉, 각 반복마다 CI 에이전트가 깨끗한 시스템 (특히 Ubuntu Server)을 가져 와서 프로젝트를 배치하고 테스트를 실행하기를 원합니다.
생태계가 다소 특이하기 때문에 CI 서비스를 처음부터 직접 작성할 것입니다. 문제는 각 CI 반복에 대해 클린 슬레이트 시스템을 효과적으로 제공하는 방법입니다.
프로젝트 배포는 데비안 패키지 몇 개를 설치하고 여러 nginx 사이트를 구성하며 시스템 전체의 구현 언어 별 패키지 관리자 (LuaRocks)에 일부 패키지를 설치합니다. 그보다 더 방해가되는 것은 없습니다 (믿습니다). 따라서 절대적인 격리와 청결을 보장하는 것보다 깨끗한 슬레이트를 빠른 속도로 (최신 하드웨어에서 1 분 이내에, 더 빠르면 더 좋게) 설정할 수있는 것이 더 중요합니다.
필요한 작업을 수행하는 방법에는 두 가지가 있습니다.
- 어떤 종류의 감옥을 만들 수도 있습니다 (예 : lxc).
- 또는 스냅 샷을 생성하고 사용할 수있는 가상 머신을 설치하십시오.
그러나이 시점에서 나는 결정할 정보가 충분하지 않습니다.
무엇을 조언 하시겠습니까? 다른 옵션이 있습니까? 특정 공구 이름이 있습니까?
참고 : CI 서비스는 Citrix XenServer 게스트 내에서 실행됩니다. 가격이 합리적이라면 유료 솔루션도 괜찮습니다. (일반적으로이 분야에서는 합리적이지 않습니다.) 원격 CI 솔루션이 양호하지 않습니다.