IT/DevOps

[Jenkins] CentOS7.8에 Jenkins 설치하기

호도과자 2022. 8. 31. 22:06

1. JDK 설치

jenkins 설치를 위해서는 jdk 1.8.0 or 1.11.0 버전이 필요하다고 함.

+2022.11.02 기준 최신 버전 젠킨스 설치는 java 11버전 이후부터 가능함

[centos@jenkins ~]$ sudo yum list "java-1.8.0-openjdk-devel*"
Loaded plugins: fastestmirror, versionlock
Loading mirror speeds from cached hostfile
 * base: mirror.kakao.com
 * epel: hkg.mirror.rackspace.com
 * extras: mirror.kakao.com
 * updates: mirror.kakao.com
Available Packages
java-1.8.0-openjdk-devel.i686                                                                                  1:1.8.0.342.b07-1.el7_9
java-1.8.0-openjdk-devel.x86_64                                                                                1:1.8.0.342.b07-1.el7_9
[centos@jenkins ~]$ sudo yum install -y java-1.8.0-openjdk-devel.x86_64

설치된 버전 확인하고 싶으면 $ rpm -qa | grep jdk 명령어 통해 확인

[centos@jenkins ~]$ rpm -qa | grep jdk
java-1.8.0-openjdk-1.8.0.342.b07-1.el7_9.x86_64
java-1.8.0-openjdk-headless-1.8.0.342.b07-1.el7_9.x86_64
java-1.8.0-openjdk-devel-1.8.0.342.b07-1.el7_9.x86_64
copy-jdk-configs-3.3-10.el7_5.noarch

2. 환경 변수 설정

  • javac 심볼릭링크와 실제 주소 확인
[centos@jenkins ~]$ which javac
/usr/bin/javac
[centos@jenkins ~]$ readlink -f /usr/bin/javac
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.342.b07-1.el7_9.x86_64/bin/javac
  • 환경 변수 설정
[centos@jenkins ~]$ sudo vi /etc/profile
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.342.b07-1.el7_9.x86_64

/* 설정 적용 */
[centos@jenkins ~]$ source /etc/profile
  • 환경 변수 적용 확인
[centos@jenkins ~]$ echo $JAVA_HOME
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.342.b07-1.el7_9.x86_64

3. MAVEN 설치

https://maven.apache.org/download.cgi 에서 maven 링크 주소 복사 통해 설치

wget https://dlcdn.apache.org/maven/maven-3/3.8.6/binaries/apache-maven-3.8.6-bin.tar.gz --no-check-certificate

/* 다운받은 파일 압축 해제 */
[centos@jenkins ~]$ tar -zxvf apache-maven-3.8.6-bin.tar.gz

apache maven 폴더가 위치한 경로를 $MAVEN_HOME으로 설정

[centos@jenkins apache-maven-3.8.6]$ vi /etc/profile
export MAVEN_HOME=/home/centos/apache-maven-3.8.6
PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin
export PATH

/* 설정 적용 */
[centos@jenkins apache-maven-3.8.6]$ source /etc/profile

4. Git 설치

sudo yum install -y git

5. Jenkins 설치

(1) jenkins repo 설정

/* jenkins repo 등록 */
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo

/* public key 등록 */
/* rpm --import 옵션은 gpg key 등록시 사용 */
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

https://pkg.jenkins.io/redhat-stable/jenkins.repo 내용이 궁금해서 보니 아래와 같다.

/etc/yum.repos.d에 repo도 잘 생성됨

[jenkins]
name=Jenkins-stable
baseurl=http://pkg.jenkins.io/redhat-stable
gpgcheck=1

(2) jenkins 패키지 설치

[centos@jenkins yum.repos.d]$ sudo yum install -y jenkins

(3) jenkins 설정

jenkins의 기본 포트는 8080이나 config 파일에서 포트 변경 가능하다.

 

[config 파일 경로]

/etc/sysconfig/jenkins

[centos@jenkins yum.repos.d]$ sudo vi /etc/sysconfig/jenkins
...
...
#JENKINS_PORT="8080"
JENKINS_PORT="9090"

jenkins web 에서 수행되는 모든 작업들은 JENKINS_USER인 jenkins가 실행,

결과물은 JENKINS_HOME 디렉토리에 저장됨

  • jenkins 설치 후에, /etc/passwd 에서 jenkins user가 생성되어 있음
jenkins:x:997:994:Jenkins Automation Server:/var/lib/jenkins:/bin/false

/bin/false : shell 권한이 없음. terminal이나 cmd로 로그인 불가

jenkins 웹 페이지에서 동작하여 생성되는 파일 및 폴더들을 오직 jenkins 권한으로 생성되도록 함

 

젠킨스 상태 확인

[centos@jenkins ~]$ sudo systemctl status jenkins
● jenkins.service - Jenkins Continuous Integration Server
   Loaded: loaded (/usr/lib/systemd/system/jenkins.service; disabled; vendor preset: disabled)
   Active: inactive (dead)

젠킨스 기동 및 상태 확인

[centos@jenkins ~]$ sudo systemctl start jenkins

[centos@jenkins ~]$ sudo systemctl status jenkins
● jenkins.service - Jenkins Continuous Integration Server
   Loaded: loaded (/usr/lib/systemd/system/jenkins.service; disabled; vendor preset: disabled)
   Active: active (running) since 수 2022-08-31 14:17:44 KST; 3s ago
 Main PID: 31573 (java)
   CGroup: /system.slice/jenkins.service
           └─31573 /usr/bin/java -Djava.awt.headless=true -jar /usr/share/java/jenkins.war --webr...

 8월 31 14:17:35 jenkins.novalocal jenkins[31573]: This may also be found at: /var/lib/jenkins...rd
 8월 31 14:17:35 jenkins.novalocal jenkins[31573]: *******************************************...**
 8월 31 14:17:35 jenkins.novalocal jenkins[31573]: *******************************************...**
 8월 31 14:17:35 jenkins.novalocal jenkins[31573]: *******************************************...**
 8월 31 14:17:44 jenkins.novalocal jenkins[31573]: 2022-08-31 05:17:44.918+0000 [id=31]       ...on
 8월 31 14:17:44 jenkins.novalocal jenkins[31573]: 2022-08-31 05:17:44.931+0000 [id=21]       ...ng
 8월 31 14:17:44 jenkins.novalocal systemd[1]: Started Jenkins Continuous Integration Server.
 8월 31 14:17:45 jenkins.novalocal jenkins[31573]: 2022-08-31 05:17:45.713+0000 [id=48]       ...er
 8월 31 14:17:45 jenkins.novalocal jenkins[31573]: 2022-08-31 05:17:45.714+0000 [id=48]       ...#1
 8월 31 14:17:45 jenkins.novalocal jenkins[31573]: 2022-08-31 05:17:45.716+0000 [id=48]       ...ms
Hint: Some lines were ellipsized, use -l to show in full.

jenkins가 정상 구동됨을 확인했으면 웹 페이지에 접속해서 확인

http://<IP>:<jenkins 설정 port>

나는 이상하게 접속이 안돼서 포트를 다시 8080으로 바꿨더니 정상적으로 접속이 됐다;

아무래도 클라우드 위에 올려서 포트가 충돌나는 것 같기도 하고...

 

IP와 port 입력 하면 하기와 같은 웹 페이지가 뜬다

웹 페이지에 나온대로 /var/lib/jenkins/secrets/initialAdminPassword 에서 키 값 복사하여 접속

필요한 Package 들을 설치해준다.

계정 입력 등등 진행해주고 나면 jenkins 설치 완료

 

 


참고 : https://blog.jiniworld.me/88