2021-3-6 젠킨스(1) 설치
젠킨스
Credentials
- 젠킨스는 secret text, username, pw, secret file, ssh username with private key, certificate, docker host cetificate 등을 저장할 수 있다.
파이프라인
- 젠킨스 파이프라인을 사용하기 위해서는 레포지토리에 Jenkinsfile을 작성해야한다. 이를 Pipeline-as-code라고 부른다.
- Jenkinsfile의 장점
- Jenkinsfile를 작성하고 커밋하면 모든 브랜치의 PR에 대해 자동으로 빌드 프로세스가 생성된다.
- Jenkinsfile는 선언적타입과 스크립트타입 2가지 종류로 작성될 수 있다. => 선언적타입이 젠킨스 파이프라인의 최근 특징에 가깝다.
- 파이프라인은 자동화된 툴을 많이 지원한다.
컨셉
- pipeline : 파이프라인에서 전체 빌드 과정을 정의한다.
- node : 젠킨스 환경의 일부이고, 파이프라인을 실행할 수 있다.
- stage : stage블록은 전체 파이프라인을 통해 실행되는 부분 task, Build 스테이지, Test스테이지, Deploy 스테이지 등으로 구별할 수 있다.
- step : 단일 테스크, 젠킨스가 특정 시점에 뭘 하는지 가리킨다.
Jenkinsfile (Declarative Pipeline)
Jenkinsfile (Declarative Pipeline)
pipeline {
agent any
options {
skipStagesAfterUnstable()
}
stages {
stage('Build') {
steps {
sh 'make'
}
}
stage('Test'){
steps {
sh 'make check'
junit 'reports/**/*.xml'
}
}
stage('Deploy') {
steps {
sh 'make publish'
}
}
}
}
-
파이프라인은 Blue Ocean, UI, SCM에서 생성될 수 있다.
-
my_jenkins_url/pipeline-syntax를 통해 built-in 문서를 검색할 수 있다.
-
global variable ref : 플러그인에서 동적으로 전역변수를 생성할 수 있다. 하지만 전역변수는 document에 포함된 변수만 파이프라인이나 플러그인을 통해 생성가능.
-
env.PATH env.BUILD_ID ${jenkin_url}/pipeline-syntax/global#env에서 관리
- params : params.MY_PARAM_NAME을 통해 관리
-
설치
$brew install jenkins-lts # 젠킨스 설치
$vi /usr/local/Cellar/jenkins-lts/2.263.1/homebrew.mxcl.jenkins-lts.plist # 내부 포트를 8080 => 9090으로변경
$brew services start jenkins-lts
- port를 9090으로 설정하고 localhost:9090으로 접속하면 로그인을 하라고한다.
$cat cd /Users/사용자이름/.jenkins/secrets/initialAdminPassword
- 초기화 패스워드를 복사하여 입력하자
- 로그인후 Install suggested plugins를 선택
- Install suggested plugins를 선택하면 위와같이 플러그인들이 설치된다.
- 플러그인이 설치가 완료되면, 위와 같이 계정생성을 합니다.
- 세팅이 완료되고 localhost:9090으로 접속하면 위와 같이 초기화면이 구성된것을 확인할 수 있습니다.
느낀점
- Travis, CircleCI의 경우 이미 다 구축이 되어있는걸 사용하기 때문에 Jenkins 초기설정은 익숙하지 않았다. 많은 대기업에서 젠킨스를 이용하여 빌드 시스템을 구축하고 있는데, 젠킨스를 꾸준히 학습해서 자동배포+도커 등 다양한 파이프라인을 구축해봐야겠다.
Written on March 6, 2021