젠킨스: 13개의 글
CI/CD ? CI(Continuous Intergration)란 개발자들이 빠른 주기로 작업한 내용을 통합 브랜치에 통합하고 빌드하는 개발 방식을 의미한다. 현재 진행하고 있는 프로젝트에서도 giflow 브랜치 전략을 이용해 하나의 기능을 feature라는 브랜치로 분리해 작업한후 develop 브랜치로 병합하는 작업을 거치고있다. CI는 위 예시처럼 개인이 작업한 코드를 master 또는 develop 브랜치에 통합하는 과정에서 발생하는 이슈를 빠르게 발견하기 위해서 필요하다. CD 는 Continuous Delivery 혹은 Continuous Depolyment 두 용어 모두의 축약어이다. Continuous Delivery는 공유 레포지토리까지 자동으로 Release하는 것을 의미하며, Cont..
오늘 다루어볼 포스팅은 Git과 Jenkins를 연동한 이후에 Jenkins Mulibranch pipeline으로 springboot web project를 docker image로 빌드 후 push하는 것까지 다루어볼 것이다. 이전까지는 오늘 다루어볼 포스팅의 연습 및 준비단계였고 본격적으로 CI/CD에 대해 다루어본다. 물론 오늘 다루어볼 포스팅 내용이 실무에서 그대로 활용하기 애매할 수는 있지만 포스팅을 이어나가면서 좀 더 보완해나갈 것이다. 1. Git & Jenkins 연동 후 Multibranch pipeline 작성 Jenkins - CentOS에 docker 환경으로 Jenkins 설치(Jenkins&GitHub CI) Jenkins - Jenkins&GitHub을 이용하여 아주 간단한 ..
아마 이번 포스팅부터 Jenkins(젠킨스)에서 정말 쓸모 있는 부분을 다룰 것 같다. 젠킨스 파이프라인을 다루기 전에 Jenkins 안에서 dood(docker out of docker)로 docker agent를 실행하는 방법에 대해 다루어 볼 것이다. 실제로 많이 사용하는 유즈케이스이기도 하다. 그 이유는 필요한 라이브러리를 직접 설치하거나 하지 않고 Jenkins pipeline 스크립트 안에서 docker agent를 이용해 설치하면 별도로 의존성있는 라이브러리를 직접 설치하지 않아도 되고, 또한 Jenkins에서 Docker image를 빌드할때도 필요하다. 즉, 요즘 같이 도커가 대중화되있는 시대에는 거의 필수이지 않을까 싶다.(더 좋은 방법이 있다면 댓글로 알려주시면 감사하겠다.) 우리가 ..
오늘 다루어볼 포스팅은 간단하게 젠킨스의 빌드 시작과 성공/실패에 대한 알림을 슬랙으로 받는 방법이다. 간단해서 아주 짧은 포스팅이 될 것 같다. 1. Slack Jenkins CI app install 예제는 이미 슬랙이 설치되어있고 계정이 있다는 가정에서 진행한다. 채널을 하나 생성해준 후 밑의 Apps 버튼을 누른다. 젠킨스(Jenkins)로 검색하여 다운로드 한다. 알림받을 채널을 입력한다. 진행하다보면 슬랙의 Team Subdomain과 인증 token을 받을 수 있다. 이러한 데이터를 이용하여 Jenkins에서 Slack과의 연동 설정을 할것이다. 젠킨스 설정에서 이제 슬랙과 연동을 할 것이다. 플러그인 관리에서 Slack Notification plugin을 install 해준다. 이제 Je..
이전 포스팅에 이어 Jenkins&GitHub을 이용한 CI 실습을 다루어볼 것이다. 이번 포스팅에서는 본격적으로 실습을 진행하기 전에 아주 간단한 echo를 찍어주는 pipeline 하나를 만들어 볼 것이다. 사실 이것을 설명하는 이유는 멀티브랜치 파이프라인에 대해 조금 이해해보기 위함이다. 1. Multibranch Pipeline 생성 사실 우리가 개발할때, 버전관리 시스템에서 브랜치를 하나만 사용하여 개발하지 않는다. 각 회사마다의 브랜치 전략이 있겠지만 가장 대중적인 브랜치 전략은 아래와 같다. Feature branch Integration branch Master branch(production branch) 이렇게 여러개의 브랜치를 가지고 개발을 진행하고 이러한 멀티 브랜치 전략에 대해 J..
오늘 다루어볼 내용은 CI의 핵심 젠킨스(Jenkins)를 다루어볼 것이다. 사실 이번 포스팅을 시작으로 젠킨스(Jenkins) 관련 몇개의 포스팅이 더 있을 듯하다. 오늘은 간단히 CentOS환경에 docker로 Jenkins를 설치해볼 것이다. 바로 예제로 넘어간다. 필자는 미리 CentOS VM을 준비하였다.(사실 회사에서 장비를 맘껏 받아쓸 수 있어서 ㅎㅎ 실습용으로 생성했다.) 이번 포스팅은 CentOS가 준비되어 있다라는 가정이다. 1. CentOS에 Docker Engine 설치 첫번째로 Docker Engine을 설치해보자. > sudo yum -y update > sudo yum -y install docker docker-registry > sudo systemctl start dock..
1. 환경- Ubuntu 12.04.4 LTS- JAVA7- jenkins 1.565- Tomcat 7.0- Maven 1.7.0_55 2. 다운로드 http://jenkins-ci.org/jenkins.war 파일을 다운받고 tomcat에 Deploy한다.tomcat에 Deploy하는 방법은 따로 설명하지 않겠다. 간단하게 webapps폴더에 넣고 tomcat실행하면 자동으로 Deploy된다. 접근 url 또한 http://localhost:8080/jenkins 이렇게 접근하면 된다. 3. 시스템 설정 - tomcat-users.xml 설정jenkins를 사용하여 tomcat에 자동 Deploy를 설정하기 위해서tomcat/conf/tomcat-users.xml 파일을 수정한다. - jenkins 관..
Jenkins 관리 - 보안, 사용자 jenkins에 로그인을 할 수 있도록 설정하는 방법!! 사용자 등록은 간단합니다 =) 'Jenkins 관리' 메뉴에 들어가면 여러가지 메뉴들이 나옵니다. 'Configure Global Security' 클릭!클릭! 체크 박스 두 개가 나오는데요, 'Enable security'를 클릭할께요~ 그 밑으로 뭐가 막 생겼어요@@ Security Realm 부분에 Jenkins' own database를 체크하면 사용자의 가입을 허용한다는게 나타나면서 자동 선택됩니다. 그대로 저장!! 오른쪽 상단에 로그인|가입 이라고 생긴게 보이실거에요~ 가입을 클릭하면 간단한 사용자 등록화면이 나타납니다. 입력 내용도 많지 않아요! 내용 입력 후 'Sign up' 클릭!클릭!로그인이 ..
Jenkins 프로젝트 빌드!! 프로젝트를 구성한 후 저장을 하게 되면 확인할 수 있는 화면입니다.작업 공간은 빌드하려는 소스를 확인할 수 있습니다. jenkins에 프로젝트를 등록하면 처음에는 작업공간이 비어있어요! 위에 화면 처럼 Error : no workspace...작업공간을 만들기 위해(소스를 가져오기 위해) 'Build Now' 클릭! 작업공간을 다시 확인하면 SVN에 있던 소스들을 확인할 수 있어요!! 'Build History'를 보면 몇 번째 빌드인지, 언제한 빌드인지, 성공 실패 여부를 확인할 수 있습니다 =)빌드 앞에 있는 파란 공은 빌드 성공을 뜻해요, 빌드를 실패하면 빨간 공이 생깁니다 ㅠㅠ 빌드 번호를 클릭하면 해당 빌드에 대한 정보를 확인할 수 있어요! 위에 그림은 세 번째 ..
Jenkins 프로젝트 등록하기!! (새로운 Item) 젠킨스를 사용하기 위해 프로젝트를 등록합니다!! -> 젠킨스 메인 화면에서 '새로운 Item' 클릭!클릭! 프로젝트 이름을 입력하고, 생성할 프로젝트의 종류를 선택합니다. -> 'Freestyle project' 를 선택 후 OK 버튼 클릭!클릭! 프로젝트 구성 화면입니다~프로젝트의 설명, 소스코드, 빌드 등의 설정을 할 수 있습니다. 소스코드 관리는 'SVN(Subversion)'을 선택했어요!! SVN정보를 입력할 수 있는 필드들이 나타납니다!!Repository URL등 필요한 정보들을 입력하시면 됩니다.접근 권한이 필요하면 빨간색 글씨가 나오는데요, 'enter credential'이라는 링크를 누르면 계정 정보를 입력할 수 있습니다. 소스 ..