<aside> 💡 GitLab Runner, Jenkins, Kubernetes를 지나서 결국 현재 Pikurate 서비스에 맞는 가장 적절한 CI 환경 구축은 Jenkins라고 결론을 내렸고 DEV 서버의 Jenkins 환경을 구축하는 과정을 다음과 같이 정리하였다.

</aside>

Jenkins SSH plugin 도입

기존의 서비스에서 Jenkins를 이용한 CI가 어려웠던 것은 레거시 코드로 인한 배포환경의 권한 문제라고 할 수 있다. 즉, Jenkins 유저를 새당 배포 서버에 설치하여 권한을 받아 pull과 supervisor를 사용하는 것에 문제가 생겼기 때문이다.

이 문제를 SSH 플러그인을 통해서 해당 서버에 접속하여 명령어를 실행하는 효과를 내도록 하여 CI를 구축하고자 한다.

[Jenkins] [ec2] Jenkins 원격 서버 배포(Publish Over SSH)

보완사항

일단 Pikurate 엄무를 하면서 발생할 수 있는 MR은 크게 두가지로 나뉠 수 있다.

Jenkins에서는 release 브랜치를 바라보도록 설정하였기 때문에 trigging이 되더라도 release에 변화가 없는 한 문제가 없지만, supervisorctl restart all 명령어가 매번 실행이 될 것이다. 일단 지금 상황에서는 문제가 없지만 사용자가 많아짐에 따라서 사이 시간에서 누락될 수 있는 데이터 컨트롤에 대한 고려가 필요해질 것으로 보인다.

추가적으로 python 패키지를 써야하는 경우 바로 빌드를 하는 상황에서 문제가 발생할 수 있다. 이 문제는 pip install을 파이프라인에 명시 하는 것도 필요할 것으로 보인다.