본문 바로가기
[Cloud]/Rancher1

rancher1.6 설치 와 운영 (jenkins - rancher plugin)

by journes 2018. 11. 7.

rancher1.6 설치 와 운영 (jenkins - rancher plugin)


정의(https://jenkins.io/)

  • 젠킨스(Jenkins)는 거의 모든 언어의 조합과 소스코드 리포지토리(Repository)에 대한 지속적인 통합과 지속적인 전달 환경을 구축하기 위한
    간단한 방법을 제공한다.젠킨스는 다른 일상적인 개발 작업을 자동화할 뿐 아니라 파이프라인(Pipeline)을 사용해 거의 모든 언어의 조합과
    소스코드 리포지토리에 대한 지속적인 통합과 지속적인 전달 환경을 구축하기 위한 간단한 방법을 제공한다.젠킨스가 각각의 단계에 대한
    스크립트 작성의 필요성을 없애주지는 않지만, 사용자가 쉽게 구축할 수 있는 것보다 더 빠르고 더 강력하게 빌드(Build), 테스트, 그리고 배
    포(deployment) 도구 등 체인 전체를 통합할 수 있는 방법을 제공해 준다




  • architecture

    • 형상관리(Git.)과 연동

    • 각종 배치 작업의 간략화

      • 데이터베이스 구축, 어플리케이션 서버에 Deploy, 라이블러리 릴리즈와 같은 작업들을 WEB UI에서 손쉽게 진행

    • Build 자동화 수립
      • Maven(Java 빌드관리 툴)과의 연동.
    • 자동화 테스트
      • 잘못된 코드를 리팩토링을 통해 적극적으로 제거 할수 있게 해 줌.
    • 테스트 커버리지
      • 테스트 커버리지 리포팅.
    • 코드표준 준수여부 검사.
    • 빌드 파이프라인 구성.
      • 선형 뿐만 아니라, 간단한 스크립트를 통해 매우 복잡한 제어도 가능.


  • 이상적인 빌드시스템

    • 참조 : Travis-ci를 이용한 CI/CD와 도커를 이용한 jenkins for Android 구성하기중 일부 캡처.
      • CI/CD(Continuous Integration) : Build, Test 실시하는 프로세스를 말하며 이러한 통합 프로세스를 상시로 실시해 주는 것.



Rancher1.6 + Jenkins (rancher-plugin)

rancher-plugin(https://wiki.jenkins.io/display/JENKINS/Rancher+Plugin)

  • Enables Jenkins to deploy or upgrade Rancher stack service instance



Service Flow

  • jenkins(rancher-plugin)을 통해,  특정 rancher 환경 (dev, / stage / prod 등)에  api 틍한 image 배포 (&rolling update) 진행. 및 History 등록 관리. 




설치방법

  • Jenkins Install

    • [CATALOG] - "Jenkins CI server" 설치 



 설치 내역

  • [STACK] - "Jenkins" 

    • Jenkins 메인 페이지 접속을 위한 "8080" 포트가  오픈 됨.



rancher-plugin install (https://wiki.jenkins.io/display/JENKINS/Rancher+Plugin)

  • rancher1.6에 설치된 jenkins의 Web UI로 접속.
    • [jenkins 관리] - [플로그인 관리] 에서 "rancher-plugin" 설치



"Freestyle Project" 설정

  • 소스관리 / Build - Deploy / "Upgrade Rancher Server" 선택




  • 내용추가
    • API Endpoint : 적용대상 Rancher  api Endpoint 등록 (rancher 에서 생성 후 등록 하면 됩니다.)
    • Rancher API Key : API Key 등록
    • Rancher Environment id : rancher 의 id 등록
    • Server Name : 배포 대상 Stack / Service name 등록
    • Docker Image : 배포 대상 image 등록



  • image   배포
    • Jenkins 에서 "Build Now" 클릭
    • Rancher에서 대상 Stack/Service 의 Image 배포 및 rolling update 진행
    • Jenkins 에서 Build 기록 관리 ( 성공 / 실패 )



  • 이력관리
    • 이미지 배포 후, 세부내용을 수동입력 가능.