CentOS7 환경에 Jenkins 설치하기, jenkins 공유 서버
- jdk 설치 및 JAVA_HOME 환경변수 추가
- Maven 설치
- Git 설치
- Jenkins 설치
4-1) jenkins 패키지 설치
4-2) jenkins 구성파일
4-3) jenkins 시작
4-4) 방화벽 개방 - 공유서버
1. JDK 1.8 설치
jenkins는 java로 작성된 프로그램으로 jdk8 또는 jdk11를 이용하여 동작합니다.
yum list 명령어를 이용하여 설치가능한 jdk8 목록을 출력합니다.
sudo yum list "java-1.8.0-openjdk-devel*"
jdk1.8 64bit용으로 설치합니다.
sudo yum install java-1.8.0-openjdk-devel.x86_64
javac 심볼릭링크의 실제 주소를 readlink 명령어로 읽어들여서,
which javac
/usr/bin/javac
readlink -f /usr/bin/javac
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.252.b09-2.el7_8.x86_64/bin/javac
javac가 위치한 bin 디렉터리를 환경변수 PATH에 추가해줍니다.
전체 시스템 사용자들에게 공통적으로 적용하기 위해 /etc/profile에 환경변수 추가합니다.
sudo vim /etc/profile
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.252.b09-2.el7_8.x86_64
PATH=$PATH:$JAVA_HOME/bin
export PATH
/etc/profile 의 맨 하단에 위와같은 정보를 추가한 후, source 명령어를 이용하여 변경사항을 적용합니다.
source /etc/profile
echo명령어로 방금전에 추가한 $JAVA_HOME 환경변수를 조회해봅니다.
echo $JAVA_HOME
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.252.b09-2.el7_8.x86_64
https://maven.apache.org/download.cgi 에서 maven 링크를 가져옵니다.
wget http://mirror.navercorp.com/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
tar xvzf apache-maven-3.6.3-bin.tar.gz
설치하고자 하는 경로에 압축파일을 다운 받아 압축을 해제한 후, 해당 폴더가 위치한 곳을 MAVEN_HOME으로 설정하면 됩니다.
sudo vim /etc/profile
export MAVEN_HOME=/usr/local/apple/Tools/apache-maven-3.6.3
PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin
export PATH
source /etc/profile
JAVA_HOME과 마찬가지로 profile의 맨 하단에 MAVEN_HOME 환경변수를 추가한 후, maven관련 명령어 실행을 위해 PATH에 bin폴더를 추가합니다.
:wq! 로 변경정보를 저장 한후 source 명령어로 변경사항을 적용합니다.
echo $MAVEN_HOME
/usr/local/apple/Tools/apache-maven-3.6.3
echo명령어로 $MAVEN_HOME 환경변수를 조회된다면 환경변수가 정상적으로 등록된 것입니다.
만일 wget 명령어를 실행할 때 아래와 같은 에러메시지를 출력한다면 wget 명령어를 설치하면 됩니다.
bash: wget: command not found
sudo dnf search wget
sudo dnf install wget
mvn -v
위 명령어를 입력했을 때 잘 나온다면 설치가 잘 된것입니다.
////////////////위 방법(최신버전 설치)이 안된다면////////////////////
CentOS로 yum을 사용해 Apache Maven 설치
간단한 프로세스입니다.
터미널에 다음 명령을 입력하여 Maven을 설치합니다.
sudo yum install maven
mvn -v명령을 입력하여 설치를 확인합니다.
mvn -v
# Apache Maven 3.0.5 (Red Hat 3.0.5-17)
# Maven home: /usr/share/maven
# Java version: 1.8.0_191, vendor: Oracle Corporation
# Java home: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el7_5.x86_64/jre
# Default locale: en_US, platform encoding: UTF-8
# OS name: "linux", version: "3.10.0-862.3.2.el7.x86_64", arch: "amd64", family: "unix"
3. Git 설치
sudo yum install git
4. Jenkins 설치
4-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
yum install epel-release # repository that provides 'daemonize'
yum repository 사용을 위해 public key를 등록합니다.
sudo yum install jenkins
jenkins 패키지를 설치합니다.
설치를 완료했습니다.
바로 jenkins를 실행해도 되지만, jenkins의 기본 포트인 8080을 이미 다른 앱에서 사용하고 있기때문에 기본 포트를 바꾼 후 시작하고자 합니다.
jenkins에 대한 configuration 파일에서 JENKINS_PORT를 수정합니다.
sudo vim /etc/sysconfig/jenkins
# JENKINS_PORT="8080"
JENKINS_PORT="8880"
저의 경우 포트를 8880으로 바꿨습니다.
/etc/sysconfig/jenkins 에는 port 이외에 JENKINS_HOME 이나 JENKINS_USER와 같은 다양한 Jenkins 관련 설정을 할 수 있습니다.
JENKINS_HOME="/var/lib/jenkins"
JENKINS_USER="jenkins"
젠킨스를 실행시키고 웹을 통해 jenkins 웹 페이지에 접속했을 때 행해지는 모든 작업들은 JENKINS_USER인 jenkins가 실행하며, 작업물들은 JENKINS_HOME에 생성됩니다.
또, jenkins를 설치한 후, /etc/passwd에 jenkins 사용자가 생성된 것을 확인할 수 있습니다.
jenkins:x:993:990:Jenkins Automation Server:/var/lib/jenkins:/bin/false
마찬가지로 jenkins 사용자의 홈디렉터리가 /var/lib/jenkins로 설정되어 있네요.
그런데 jenkins 사용자의 경우, 맨 뒤에 /bin/false라고 쓰여져 있는데, 이 것은 쉘권한이 없는 사용자로 젠킨스 웹 사이트에서 이뤄지는 행위로 생성되는 파일 및 폴더들을 jenkins 권한으로 생성되도록 하기 위함입니다.
jenkins 사용자는 쉘 권한이 없기 때문에 terminal이나 command로 로그인을 할 수 없습니다. 오로지 jenkins 웹을 통한 작업만 가능합니다.
포트를 변경했으니 이제 jenkins를 시작해봅시다.
sudo systemctl start jenkins
jenkins는 서비스로 등록되어있기 때문에 systemctl 명령어로 시작할 수 있습니다.
(재시작을 원한다면 sudo systemctl restart jenkins)
(실행상태를 알고싶다면 sudo systemctl status jenkins)
그리고, http://호스트주소:포트 로 들어가면 jenkins 웹페이지에 접속할 수 있습니다.
최초 접근시엔 초기 비밀번호를 입력하라는 창이 뜹니다.
ip addr
위 명령어를 입력하면 자신의 ip주소를 알 수 있습니다.
위의 설명대로 /var/lib/jenkins/secrets/initialAdminPassword 파일로부터 초기비밀번호를 읽어서 입력합시다.
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
그리고 필요한 플러그인도 설치합니다.
Jenkins 설치가 완료되었습니다!
만일, jenkins 웹페이지가 열리지 않는다면 젠킨스에 설정한 포트가 방화벽에 설정되어있는지 확인해보시길 바랍니다.
sudo firewall-cmd --list-all
apple (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: ssh dhcpv6-client mysql http
ports: 8989/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
8880포트가 열려있지 않네요.
sudo firewall-cmd --permanent --service=jenkins --add-port=8880/tcp
sudo firewall-cmd --permanent --add-source=192.168.0.0 (자신의 ip주소)
sudo firewall-cmd --permanent --add-service=jenkins
sudo firewall-cmd --reload
jenkins 서비스에 대한 포트를 영구적으로 설정한 후, jenkins 서비스에 대한 방화벽을 영구적으로 개방한 후 reload 합니다.
출처: https://blog.jiniworld.me/88 [hello jiniworld]
5. 공유서버
공유서버는 VirtualBox에서 설정하였습니다.
해당 머신의 설정 - 네트워크 - NAT으로 연결 - 고급 클릭 - 포트 포워딩 클릭
게스트 IP, 게스트 포트엔 리눅스 서버 IP, Jenkins 포트 주소를 입력하고
호스트 IP, 포트에는 자신의 IP주소와 접속하고자 하는 포트번호를 입력합니다.
다른 컴퓨터에서 접속이 잘 되는것을 확인할 수 있습니다!
'Study > Jenkins' 카테고리의 다른 글
Jenkins에서 Tomcat 설정 (0) | 2021.11.25 |
---|---|
What is Jenkins? (0) | 2021.11.25 |
댓글