최근 CI/CD에 대해서 공부하던 중, Jenkins(젠킨스)를 사용할 기회가 생겼다
이왕 사용해본거 정리하기로 했다.
- Jenkins 정의
- Jenkins Pipeline (?)
- Jenkins 사용법
요 3가지만 알면 된다
1. Jenkins 정의
공식문서: 소프트웨어 빌드, 테스트, 제공, 배포와 관련된 모든 종류의 작업을 자동화하는 데 사용할 수 있는 독립형 오픈소스 자동화 서버
젠킨스는 간단히 정의하면 CI 기능을 지원하는 툴이다
그러면 CI(Continuous Integration)는 뭘까?
말 그대로는 지속적 통합이다
즉, 개발자가 코드를 수정->빌드->테스트->merge 되는 단계를 자동화한 것
코드를 작성/수정할 때마다 빌드하고,, 테스트하고,, merge 되길 기다리고,,하나하나 하는건 너무 번거롭기 때문에
이를 한번에 할 수 있게 하자 하는 것을 CI라고 부를 뿐이다
그러면 왜 젠킨스는 뭘 지원하길래 CI 툴이라고 하는걸까.
2. Jenkins Pipeline
공식문서에서도 젠킨스 설치 방법 알려주고서 설명하는게 파이프라인이다
벌써 어렵다. 쉬운 단어가 하나 없다
파이프라인은,
위키백과: 데이터 처리 단계의 출력이 다음 단계의 입력으로 이어지는 형태로 연결된 구조
CI가 여러 단계를 자동화하는 것이라면, 파이프라인은 좀더 포괄적으로 여러 단계를 모아놓은 것이다
CI Pipeline을 쉽게 말하면, 개발~배포까지의 과정을 자동화 할 수 있는 단계라고 할 수 있다
우리가 뭘 할때 잔머리 굴려서 아 어떻게 편하고 빨리 해결하지,, 하는데 CI 만든 사람도 그랬나보다
어쨌든 젠킨스는 파이프라인 기능을 지원한다.
그러면 어떻게 사용할까?
3. Jenkins 사용법
젠킨스 설치는 다른 좋은 글이 많다. 공식문서도 친절한 것 같다
운영체제마다 설치 방법이 다를거라서, 간단한 팁 두가지만 남기자면,
- java 설치했는지
- 설정파일에 jdk 경로, HTTP port, jenkins home, jenkins user 설정이 맞게 되어있는지
(저는 우분투에서 진행했는데, 설정파일은 /etc/default/jenkins 여기다)
요거만 잘 되어있으면 잘 될겁니당,,(사진에 링크있츰)
잘 설치돼서 위에↑ 화면이 나오면 잠시 기뻐하면 됩니다
그러면 이런 젠킨스 대쉬보드를 만날수가 있는데, 처음에 프로젝트 만들 때 어떻게 해야하는지 잘 몰라서, 많이 헤맸습니다
젠킨스를 사용하려면 두가지 정도는 기억을 해야합니다
1) 새로운 Item으로 프로젝트 하나를 만들자
2) 만들려고하는 기능의 Plugin을 잘 설치했는가
대쉬보드를 간단히 설명하자면,
우측에 보이는 날씨 모양이 있는 표가 새로운 Item으로 생성한 프로젝트들이고,
좌측은 젠킨스를 설정할 수 있는 메뉴들이 있습니다.
그리고 젠킨스에 어떤 설정을 하고자하면, 시스템 설정이나 플러그인 관리에서 해주면 됩니다
시스템 설정은 말 그대로 설정이고 (ex. 홈 디렉터리 설정이나 IP 설정 등등)
플러그인 관리를 눌러보면
요런 창이 뜨는데, 여기서 검색부분에 원하는 기능을 써주고 설치하고 싶은거 쓰면 됩니다
pipeline 기능을 쓰고 싶다면 [설치가능]-pipeline 검색해서 체크박스 활성화해주고 설치하기(아무거나) 누르면 됩니다
Q) 검색했는데 종류 많아서 뭘 설치해야할지 모르겠다?
A) 구글에 검색하면 됩니다
Q) 설치화면(위 화면↑)까지 넘어갔는데 이상할정도 설치가 오래걸린다?
A) 새로고침하고 다시 설치됐는지 확인하면 됩니다.
파이프라인 프로젝트 만드는거까지 작성할려고 했는데 생각보다 길어졌다
다음 글에 쓸거다
+ 참고로 젠킨스 로고에 있는 아저씨는 참 귀엽다
검색해보면 엄청 다양함
* 참고 자료
젠킨스 공식 문서: www.jenkins.io/doc/
ko.wikipedia.org/wiki/%ED%8C%8C%EC%9D%B4%ED%94%84%EB%9D%BC%EC%9D%B8_(%EC%BB%B4%ED%93%A8%ED%8C%85)
dev-joo.tistory.com/m/26?category=787806
'DevOps' 카테고리의 다른 글
Docker MariaDB container 실행 방법 (2) | 2022.11.30 |
---|---|
Jenkins Pipeline / Pipeline Script 작성 (2) | 2020.12.09 |