Developer Cafe

CentOS 7 Jenkins설치 빌드 설정까지 본문

Linux

CentOS 7 Jenkins설치 빌드 설정까지

개발자 카페 2021. 7. 21. 18:03
728x90
Jenkins ??

소스 repository에 대한 지속적인 통합(CI, Continuous Integration) 서비스를 제공해주는 무료 툴로

Build나 Deloy, Test 프로세스를 상시적으로 실시하는 자동화 서비스입니다.
Java 언어로 만들어진 애플리케이션으로 Jenkins WAR를 단독 또는 Tomcat에 올려 실행할 수 있습니다.

1. JDK 설치 8 버전 설치

1-1. 설치가능한 jdk8 목록 출력

sudo yum list "java-1.8.0-openjdk-devel*"

1-2. jdk1.8 64bit용으로 설치합니다.

sudo yum install java-1.8.0-openjdk-devel.x86_64

1-3. javac 위치 찾기

which javac
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.x86_64/bin/javac

1-4. javac 정확한 위치 찾기

readlink -f /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.x86_64/bin/javac
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.x86_64/bin/javac

1-5. javac 환경변수설정

sudo vim /etc/profile

저같은 경우는 gralde까지 설치한상태라서(안하신분은 설치하시고 which와 realink써서 환경설정)

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.x86_64
export GRADLE_HOME=/opt/gradle/gradle-5.0
export PATH=$JAVA_HOME/bin:$PATH
export PATH=${GRADLE_HOME}/bin:${PATH}
export CLASSPATH="."

1-6. 변경된 환경변수 저장

source /etc/profile

1-7. 환경변수 잘되어있나 조회

echo $JAVA_HOME
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.x86_64

2. jenkins 설치

2-1. jenkins 패키지 설치

sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

2-2. yum repository 사용을 위해 public key를 등록합니다.

sudo yum install jenkins

2-3. jenkins의 기본 포트인 8080은 이미 다른 앱에서 사용하고 있기때문에 바꾼 후 시작합니다.

sudo vim /etc/sysconfig/jenkins
JENKINS_PORT="9090"
sudo vim /etc/passwd
jenkins:x:996:994:Jenkins Automation Server:/var/lib/jenkins:/bin/false
마찬가지로 jenkins 사용자의 홈디렉터리가 /var/lib/jenkins로 설정되어 있네요.
그런데 jenkins 사용자의 경우, 맨 뒤에 /bin/false라고 쓰여져 있는데, 이 것은 쉘권한이 없는 사용자로 젠킨스 웹 사이트에서 이뤄지는 행위로 생성되는 파일 및 폴더들을 jenkins 권한으로 생성되도록 하기 위함입니다.
jenkins 사용자는 쉘 권한이 없기 때문에 terminal이나 command로 로그인을 할 수 없습니다. 오로지 jenkins 웹을 통한 작업만 가능합니다.

3. 젠킨스 시작

3-1. jenkins 시작

sudo systemctl start jenkins

3-2. 브라우저 창에서 http://ip주소:9090 입력

3-3. 비밀번호 알아내기

sudo cat /var/lib/jenkins/secrets/initialAdminPassword

3-4. install suggested plugins클릭

3-5. 방화벽 설정하기

sudo firewall-cmd --permanent --service=jenkins --add-port=9090/tcp
sudo firewall-cmd --permanent --add-service=jenkins
sudo firewall-cmd --reload

3-6. JDK 설정

echo $JAVA_HOME
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.x86_64

3-7. GIT 설정

git은 설치할 경우, 자동으로 /usr/bin 위치에 git 명령어가 생성됩니다.

3-8. GRADLE 설정 (필자는 Gradle로 하였다. Maven 사용자는 검색!)

echo $GRADLE_HOME
/opt/gradle/gradle-5.0

3-9. Item(프로젝트) 생성

General(프로젝트 간단하게 소개) 설정. 저같은 경우 보관할 최대 갯수는 3개로 설정함

Build 설정

3-10. 빌드 유발 GitHub hook

코드 상에 push와 같은 이벤트 발생시 GitHub로부터 hook 트리거를 받아 빌드를 유발시킵니다.

 



push 이벤트 발생시 GitHub Hook을 발생시켜 demo앱을 자동으로 빌드하것까지 끝났습니다.
이제 기존에 서비스 중이였던 앱을 새로 빌드한 앱으로 교체하여 실행시키려면 어떻게 해야할까요?

 


1. 서비스 중인 앱을 종료
2. 백업 폴더 비우기
3. 백업 폴더에 기존 앱을 복사(기존 서비스 앱 백업하기)
4. deploy된 최신 빌드 앱을 복사
5. 앱 실행


여기서 기존 앱을 백업할 필요가 없다면 2, 3번 빼고 기존 앱을 삭제하는 과정을 가지시면 됩니다.

4. 이번 포스트에서는 맛만 보고 다음에 제대로 공부해서 백업도하고 배포하는 과정을 포스트하겠습니다.

4-1. Post build task 플러그인 설치


다시 맨 아래 Post build task 클릭하면 설치한 Post build task 사용가능

Build 성공/실패시 출력되는 BUILD SUCCESS 와 BUILD FAILURE 메시지의 콘솔 출력 여부에 따라 별도의 Script를 실행하도록 할 것입니다.

728x90

'Linux' 카테고리의 다른 글

centOS7 환경설정  (0) 2021.07.16
Comments