티스토리 뷰
이제 서버 구동도 완료되었고 계정과 플러그인 설치도 마무리되었으니 빌드를 위한 세팅을 해보자!
먼저 mavenProject를 진행하기 위해서 두 가지 플러그인을 설치해 줘야 한다.
설치경로 : Jenkins관리 -> 플러그인 관리 -> 설치가능 탭 -> 검색창에서 아래와 같이 입력
1.Maven integration plugin

Maven integration plugin 을 설치한다. 해당 플러그인을 설치하지 않았을 시

위 이미지처럼 MavenProject가 존재하지 않기 때문에 먼저 플러그인을 설치해 줘야 한다.
2. Deploy to container

젠킨스가 빌드한 결과물(war파일)을 톰캣에게 배포하려면 Deploy to container Plugin 플러그인이 필요하기 때문에 설치 해줘야 한다.
설치가 완료 되었다면 젠킨스가 톰캣 서버에 접근하기 위해서 톰캣 conf/userSetting.xml
에 권한정보를 셋팅 해줘야 된다

</tomcat-users> 루트 태그 바로 안쪽에 추가!

참고정보

해당 셋팅이 모두 끝났다면
젠킨스에서 메이븐 프로젝트를 빌드하려면 jdk, maven 을 연동해야한다.
jenkins 관리 -> Global Tool Configuration 으로 이동 후
1. jdk 경로 설정

2. maven 경로 설정

3. ant 경로 설정

해당 설정이 모두 끝나면 프로젝트를 만들어 보자!


프로젝트명 입력후 메이븐 프로젝트를 시작하게 되는데
총 4가지 셋팅을 진행해야 한다.
1. 형상관리 연동

1-1. Repository Url
Svn Repository 를 만들고 난뒤 생성되는 svn Url 을 입력한다.
1-2. Credentials

svn에서 생성한 id와 pw 랑 동일하게 만들어 준다.
id는 username과 동일하게 작성해주자.
2. 빌드유발

1. Build whenever a SNAPSHOT dependency is built
Maven Project를 선택한 Job에서는 기본으로 설정되어 있는 값이며, POM에 설정되어 있는 모든 의존적인 프로젝트들에 대해서도 같이 빌드를 진행합니다.
특별히 문제가 발생하지 않는이상 기본으로 설정을 해두시길 권장드립니다.
2. 빌드를 원격으로 유발
외부에서 URL을 통해 빌드를 진행 할 수 있도록 설정합니다. 인증토큰값을 임의로 설정해 놓고 외부에서 파라미터로 토큰을 전달받아 일치하면 빌드를 진행하는 방식입니다.
요청 URL은 GET방식으로 호출을 하는 것이기 때문에 일반 브라우저에서 호출하여 빌드를 진행할 수 있습니다.
3. Build after other project are built
다른 프로젝트를 빌드한 후 이어서 현재 프로젝트를 빌드하는 설정입니다. 해당 설정은 3가지 옵션을 제공하는데요.
기본값은 다른 프로젝트가 빌드 결과가 정상인 경우 빌드를 진행(Trigger only if build is stable)로 설정되어 있습니다.
남아 있는 다른 설정은 빌드 결과가 정상이 아닌 경우에도 빌드를 진행(Trigger even if the build is unstable)과 빌드 결과가 실패가 났을때도 해당 빌드를 진행(Trigger even if the build fails)이 있습니다.
여기서 unstable은 빌드는 성공했지만 테스트 결과가 실패하여 현재 시스템에 문제가 있는 상황을 애기하며 fails 상태는 빌드가 완전히 실패난 경우를 의미합니다.
Projects to watch에는 다른 프로젝트의 Job 이름을 입력하시면 됩니다.

4. Build periodically
빌드를 배치 프로세스 처럼 설정해 놓은 시간에 자동으로 빌드를 진행하도록 하는 설정 값입니다. 시간 설정값은 crontab이나 쿼츠와 비슷하게 설정을 하면 되는데요, 기본 설정 포맷은 공백을 기준으로 구분하며 "분(minute) 시간(hour) 일(day of month) 월(month) 주(week)" 입니다.
분(minute) : 0부터 59까지의 숫자를 입력합니다.
시간(hour) : 0부터 23까지의 숫자를 입력합니다.
일(day of month) : 1부터 31까지의 숫자를 입력합니다.
월(month) : 1부터 12까지의 숫자를 입력합니다.
주(week) : 0부터 7까지의 숫자를 입력하며 0과 7은 일요일을 의미합니다.
위 값들이 입력되는 부분에 여러개의 값을 설정을 하기 위해서 다음과 같은 구분자들을 제공하고 있습니다.
* 을 지정하면 입력되는 값의 모든 범위를 허용 한다는 의미 입니다.
M-N 과 같이 값 사이에 '-'를 입력 하면 범위를 지정할 수 있습니다. ex) 2-4 = 2부터 4까지의 값
M-N/X 또는 */X : '/' 뒤에 오는 X값은 간격을 의미 합니다. 만약 시간 필드에 */2 이라고 설정을 하면 2시간 간격으로 실행을 하게 되니 2시 4시 6시..와 같은 시간이 설정 됩니다.
A,B,C, .. : 콤마를 이용해 여러개의 값을 열거하여 설정해 놓을 수 있습니다.
주기적으로 실행되는 Job이 여러개가 있을경우 Jenkins는 'H' 키워드를 사용하길 권장하고 있습니다. 예를 들어 Jenkins에 여러개의 Job을 등록해 놓고 모든 Job에 대해 빌드 스케쥴 시간을
'0 0 * * *' 로 설정해 놓는다면 매일 0시에 모든 Job이 빌드를 실행하게 될것입니다. 정말 많은 Job이 등록 되어 있다면 Jenkins에 서버에 굉장히 많은 부하가 발생하게 되겠죠.
그래서 설정 값을 'H H * * *'로 등록하고 사용하게 되면 Jenkins가 시간을 임의로 지정하여 부하가 적은 시간에 빌드를 진행 시킵니다.
H도 마찬가지로 범위를 지정을 해 둘 수 있습니다. 'H H(0-6) * * *' 과 같이 설정해 놓으면 매일 0시부터 6시 사이에 부하가 적은 시간에 한번만 빌드가 진행이 됩니다.
몇가지 예제를 통해 시간 설정하는 값을 알아보겠습니다.
15분 간격으로 빌드 작업을 수행
H/15 * * * *
모든 시간의 첫 30분 동안에 10분 간격으로 빌드를 수행
H(0-29)/10 * * * *
주말을 제외한 주중에 9시부터 16시 사이에 2시간에 한번씩 빌드를 수행
H 9-16/2 * * 1-5
12월 달은 제외하고 매달 1일과 15일에 한번씩 빌드를 수행
H H 1,15 1-11 *
5. Poll SCM
형상관리 서버에를 주기적으로 감시하여 변경된 사항이 존재할때 빌드를 수행하는 설정입니다.
주기적으로 감시를 하기 위해서 위 4번 항목에 설정하는 시간값을 등록을 하게 되며, 해당 시간에 형상관리 서버를 확인하여 변경된 사항이 있다면 빌드를 수행한다.
3. Build

설정시 주의사항
빌드자체를 svn Repository 에있는 프로젝트를 빌드하기 때문에 pom.xml 위치를 잘 파악해서 맞춰줘야 한다.
Goals에는 clean install 를 입력하자!
4. 빌드 후 조치
빌드 후 조치에서 Deploy war/ear to a container 를 click 후 사용중인 톰캣 서버버전을 맞춘다.

Credentails 는 좀 전에 Tomcat-User.xml 에 설정해놓은 아이디와 비번으로 해야한다.

Tomcat url 에는 구동시켜놓은 tomcat url를 입력 해주면 된다.
나는 이부분이 조금 많이 헷갈렸었다...

Tomcat Server 를 실행시키지 않고 Build Now 를 하게 되면 빌드까지는 Success 하나
배포하는과정에서 faild가 발생한다.
그러니 꼭 구동시켜 놓고 하자ㅠ
또 참고로 Server.xml 의 doc-base 와 Jenkins의 Context-Path 를 꼭 맞춰 줘야 한다.
자 이제 빌드를 하면~

빌드중...

빌드완료.
성공적으로 계속 빌드/배포 가 진행 된다면 화창한 날씨를 감상할 수 있다

jenkins 의 일부만 사용 했지만 다음엔 좀 더 여러 방법으로 사용 해봐야 겠다ㅎ
'Project > Jenkins' 카테고리의 다른 글
CentOS Jenkins 설치방법 (0) | 2023.06.01 |
---|
- Total
- Today
- Yesterday
- SQLD
- mysql
- json
- CentOS
- JWT 완전정복
- JPA
- SQL
- Oracle
- 정규화
- 코테
- 코딩테스트
- 청도 미나리 식당
- 배포
- jenkins
- 청도 미나리
- SpringBoot
- 배포자동화
- 비양도 위치
- 젠킨스
- API
- RDBMS
- 비양도 리뷰
- 솔루션
- 비양도 후기
- Deadlock
- 알고리즘
- spring
- db
- Java
- Query
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |