Jenkins는 아무래도 많이 사용하는 CI/CD 일것이다. 우선 컨테이너 환경에서 CI를 구성하기 위해서 Jenkins를 구성 하였고, 클러스터가 많은 환경에서도 접근을 할 수 있게 (물론 컨테이너로 구성을 해도 되나. 굳이 컨테이너로 구성할 필요성이 있나 싶어 별도의 VM으로 구성)
VM형태로 설치를 하였다.
CI/CD
CI/CD는 애플리케이션 개발 단계를 자동화하여 애플리케이션을 보다 짧은 주기로 고객에게 제공한다.
CI (Continuous Integration) CI를 통해 개발자들은 코드 변경사항을 공유 브랜치로 다시 병합하는 작업을 더욱 수월하게 자주 수행 할 수 있다.
CD (Continuous Delivery || Continuous Deploy) 두용어는 상호 교환적으로 사용됨.
Continuous Deliver의 경우 코드 변경 , 병합으로부터 Prodcution에 적합한 빌드를 제공하여 모든 단계에 테스트 및 릴리스를 자동화한다.
내부에서 사용하기 때문에 HTTP로 구성을 해도 되나 보안상 HTTPS를 구성이 필요할 경우가 있을 수 있기 때문에 2가지 경우로 HTTPS 구성의 대해서 설명하고자 하자. 하나는 자체적으로 구성을 하는 것이고 다른 하나는 NGINX를 구성해요 HTTPS를 구성 하는 것이다. 물론 L4를 사용해서 구성 할 수 도 있으나, 굳이 L4 장비까지 사용할 이유가 없으니 간단하게 NGINX를 사용하기로 한다.
vi /etc/default/jenkins
HTTP_PORT=8080### ---> 이부분을 찾아서 아래 부분을 채워 넣어주자.HTTP_PORT_DISABLE=-1 ### HTTP DISABLEHTTPS_CERT=/data/cert/yourdomain.com.cert ### 인증서HTTPS_KEY=/data/cert/yourdomain.com.key ### KEY### args 마지막 줄에 빨간 부분을 채워서 넣어준다.JENKINS_ARGS="--webroot=/var/cache/$NAME/war --httpPort=$HTTP_PORT --httpPort=$HTTP_PORT_DISABLE --httpsPort=$HTTP_PORT --httpsCertificate=$HTTPS_CERT --httpsPrivateKey=$HTTPS_KEY"### jenkins restartsystemctl restart jenkins
2.2. NGINX로 HTTPS 구성
NGINX를 구성하기 위해 Jenkins 설정은 그냥 HTTP로 구성을 해도 무방하다. 여기서는 위에서 설정을 했기 때문에 별도로 설정을 변경하지 않고했기 때문에 뒷단의 Jenkins를 HTTPS로 그대로 놔둔것이라고 봐도 된다.
만약에 Jenkins Server는 HTTP로 구성을 하려면 그냥 두고 NGINX에서 Reverse Proxy 구성을 하면 된다.
용어가 나와서 헷갈릴수도 있지만. Proxy_pass 부분만 http:// 로 바꾸면 된다.