[Jenkins] CentOS7.8에 Jenkins 설치하기
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 설치 완료