사용자 도구

사이트 도구


wiki:3party:jenkins

Jenkins

  • description : jenkins 관련 내용 기술
  • author : 도봉산핵주먹
  • email : hylee@repia.com
  • lastupdate : 2020-06-10

Jenkins

Jenkins란?

  • 젠킨스(Jenkins)는 소프트웨어 개발 시 지속적 통합(CI : continuous integration) 서비스를 제공하는 툴이다.
  • 다수의 개발자들이 하나의 프로그램을 개발할 때 버전 충돌을 방지하기 위해 각자 작업한 내용을 공유 영역에 있는 Git등의 저장소에 빈번히 업로드함으로써 지속적 통합이 가능하도록 해 준다.
  • 젠킨스는 오라클과의 분쟁 이후 허드슨으로부터 분기되었다.
  • CI/CD 도구 플러그인으로 정적분석도구(SpotBugs, …)를 추가할 수 있음
출처

설치

1. 다운로드

Jenkins download
아래 표시된 Past Releases 로 들어갑니다.
제일 높은 버전을 받으면 됩니다.
Tip : ex) 2.50, 2.100 이 있으면 2.100이 최신입니다. (.뒤에 숫자가 높은게 최신)
Tip : jenkins는 2.54버전 부터 자바 8을 사용해야 합니다.

2. 구동 및 화면 띄우기

.sh 파일을 만들어줍니다..
아래 code에 보면 알다싶이 #{jenkins 경로}/log 폴더를 만들어줘야 합니다.

#jenkins.sh
#!/bin/bash
JAVA_HOME=#{java 경로}
HTTP_PORT=9090
JENKINS_HOME=#{jenkins 경로}
 
export JAVA_HOME HTTP_PORT
 
 
nohup $JAVA_HOME/bin/java -jar $JENKINS_HOME/jenkins.war --httpPort=$HTTP_PORT --sessionTimeout=120 -XX:+AggressiveOpts >> ./logs/jenkins.log 2>&1 &


jenkins.sh 파일을 만든 후 port 방화벽을 풀고 실행해 줍니다.

[search@localhost jenkins]$ sudo firewall-cmd --zone=public --add-port=9090/tcp --permanent
success
[search@localhost jenkins]$ sudo firewall-cmd --reload
success
[search@localhost jenkins]$ sudo firewall-cmd --list-ports
22/tcp 3306/tcp 8080/tcp 80/tcp 9090/tcp
 
[search@localhost jenkins]$ ./jenkins.sh


그럼 아래와 같이 나옵니다.

3. 로그인

위 화면을 보면 /home/search/.jenkins/secrets/initialAdminPassword 이런 문구가 있습니다.
이건 search 계정으로 ./jenkins.sh를 실행해서 사용자가 search가 된거고 그 경로안에 패스워드가 있다는 겁입니다.

vi /home/search/.jenkins/secrets/initialAdminPassword

이렇게 치면 한줄로된 문자열이있는데 그걸 복사해서 Administrator password에 붙여넣고 로그인하면 됩니다.

플러그인 설치화면이 나옵니다.
그럼 suggested를 클릭하면 플러그인을 설치합니다.
Tip : 플러그인 설치화면에서 다 false이 되면 jenkins 낮은 버전을 받은것입니다.

4. 설정 (svn + war배포)


로그인을 한다음 왼쪽 위에 새로운 Item을 클릭 합니다.


Item name을 입력한 다음 Freesyle project를 클릭합니다.


그림과 같이 네모 설정해주면 됩니다.
Credentials은 계정정보이며 Add를 클릭해서 계정정보를 입력해주면 됩니다.
Tip : Repository URL은 현재 우리 Apps에 대한 Url (eclips에 설정되어 있는 Url)이며 꼭 /trunk까지 지정해야 됩니다.



여기까지 저장하고 Jenkins > Jenkins 관리 > Global Tool Configuration 로 들어가서 maven 설정을 먼저해줍니다.


그 후에 다시 설정하고 있던 Item으로 돌아 갑니다.

Maven Version : 방금 위에서 설정한 값이 나오면 선택해 주면 됩니다.
Goals : clean install 을 입력해줍니다.

5. 빌드 후 조치

5-1. jenkins 설치 서버내에 배포

4.번까지 완료후에 아래 Add build step을 클릭해서 Execute shell을 클릭하면 Command가 나오는데
이 셋팅은 jenkins를 설치한 서버에 .war를 풀어 배포를 하는 것이라면 추천합니다.
평소에 .war를 풀던 .sh 파일을 실행만 시키면 됩니다.

5-2. jenkins 설치 서버외에 배포

5.1과는 달리 jenkins서버말고 다른서버나 여러 서버를 설정해서 다발적으로 또는 효율적으로 쓰려면
빌드 후 조치에서 Send build artifacts over SSH 를 선택해야 합니다.
Send build artifacts over SSH가 안보인다면 Publish Over SSH Plugin를 설치해야 합니다.

Plugin이 설치가 됬다면 Jenkins > 환경설정에 들어가서 맨 하단에 SSH Servers가 생겼을 겁니다.
그럼 아래 사진과 같이 설정해 주면됩니다.(Apps 기준 설정)

그 후에 다시 설정하고 있던 Item으로 돌아 갑니다.

Remove prejix : 설정 안해주면 ROOT 경로에 ROOT/trunk/target/apps-1.0.0.war가 복사됩니다.
Exec command : 설정한 대로 빌드하고 끝나면 bash에 사용할 명령어를 쓰면 됩니다.

Tip

Troubleshooting

Ref

/var/services/web/dokuwiki/data/pages/wiki/3party/jenkins.txt · 마지막으로 수정됨: 2023/01/13 18:44 (바깥 편집)