AWS

EC2에 Jenkins 구축하기

JAEJUNG 2022. 5. 3. 13:13
Jenkins란

Jenkins는 소프트웨어 구축, 테스트, 전달 및 배포와 관련된 모든 종류의 작업을 자동화하는 데 사용할 수 있는 오픈 소스 자동화 서버이다.

서비스를 개발하는 과정에서 개발자들이 코드 작성 외에 Test, Build, Deploy 등의 번거로운 과정을 직접 하지 않고,

Pipeline 구축을 통해 자동화하여 처리할 수 있는 CI/CD 도구라고 할 수 있다.

 

Jenkins는 여러 장점이 있지만 대표적으로 아래와 같다.

  • 무료
  • 다양한 플러그인 지원
  • 많은 사용자를 보유(레퍼런스 많음)

Jenkins 이외에도 Travis, GitLabCI 등의 다양한 CI 도구가 있으니 본인의 환경에 맞춰 적절하게 사용하면 될 것 같다.

 


설치 방법

  1. JAVA 설치
  2. Jenkins 설치

(원활한 실습 진행을 위해 root 사용자로 모든 작업을 진행했음.)

 

JAVA 설치

 

jenkins docs를 보면 Java 8 or Java 11 are required for running modern versions of Jenkins. 라고 되어 있다.

OpenJDK/JRE 8, 11도 지원하며, 이외 다른 모든 Java 버전은 지원되지 않는다고 한다.

(Jenkins 최신 버전은 Java 17도 지원한다고 함)

 

Java 버전을 선택하여 사용할 수 있으니, 1.8과 17 모두 설치해보자.

설치 경로는 아래와 같다.

 

JAVA 1.8 : https://docs.aws.amazon.com/ko_kr/corretto/latest/corretto-8-ug/amazon-linux-install.html

sudo yum -y update
sudo amazon-linux-extras enable corretto8
sudo yum install java-1.8.0-amazon-corretto-devel
[root@ip-10-0-1-57 ~]# java -version
openjdk version "1.8.0_332"

 

JAVA 17 : https://docs.aws.amazon.com/corretto/latest/corretto-17-ug/amazon-linux-install.html

sudo yum install java-17-amazon-corretto-devel
[root@ip-10-0-1-57 ~]# java -version
openjdk version "17.0.3" 2022-04-19 LTS

 

alternatives 명령어를 통해 java version을 선택하여 사용할 수 있다.

[root@ip-10-0-1-57 ~]# alternatives --config java

There are 2 programs which provide 'java'.

  Selection    Command
-----------------------------------------------
   1           /usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/bin/java
*+ 2           /usr/lib/jvm/java-17-amazon-corretto.x86_64/bin/java

Enter to keep the current selection[+], or type selection number:

 

Jenkins 설치

 

이제 Jenkins를 설치해보자

 

설치 경로는 아래와 같다.

https://www.jenkins.io/doc/tutorials/tutorial-for-installing-jenkinson-AWS/

 

먼저 패키지 업데이트 작업을 진행한다.

[root@ip-10-0-1-57 ~]# sudo yum -y update

 

Jenkins repository를 추가한다.

[root@ip-10-0-1-57 ~]# sudo wget -O /etc/yum.repos.d/jenkins.repo \
>     https://pkg.jenkins.io/redhat-stable/jenkins.repo

 

Jenkins의 public key를 import 해준다.

[root@ip-10-0-1-57 ~]# sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
[root@ip-10-0-1-57 ~]# sudo yum upgrade

 

jenkins를 설치한다.

[root@ip-10-0-1-57 ~]# sudo yum install jenkins -y

 

이제 설치 작업이 완료되었다.

service 상태를 확인하고 start 시켜주자.

[root@ip-10-0-1-57 ~]# systemctl status jenkins
● jenkins.service - Jenkins Continuous Integration Server
   Loaded: loaded (/usr/lib/systemd/system/jenkins.service; disabled; vendor preset: disabled)
   Active: inactive (dead)
   
[root@ip-10-0-1-57 ~]# sudo systemctl enable jenkins
Created symlink from /etc/systemd/system/multi-user.target.wants/jenkins.service to /usr/lib/systemd/system/jenkins.service.

[root@ip-10-0-1-57 ~]# sudo systemctl start jenkins

 

이렇게 active로 표시되면 서비스가 정상적으로 구동중인 것이다.

 

이제 Jenkins 웹 콘솔에 접속해보자.

브라우저에서 EC2의 Public IP:8080 형태로 입력하면 된다.

 

Administrator password는 /var/lib/jenkins/secrets/initialAdminPassword 파일을 확인하면 된다.

[root@ip-10-0-1-57 secrets]# cat /var/lib/jenkins/secrets/initialAdminPassword
40371389a9464b9eb8215ae81ed227c8

 

Jenkins에서 지원하는 plug-in을 설치하는 과정이며, 실습 진행을 위해 [Install suggested plugins] 옵션을 선택한다.

 

선택하면 아래와 같이 많이 사용되고 있는 plug-in 설치 과정을 볼 수 있다.

 

이제 Admin 계정을 생성하면 구축이 완료된다.

 

현재 URL은 EC2 인스턴스의 Public IP로 설정되어 있으며, [Save and Finish]를 눌러준다.

 

이것으로 Jenkins에 대한 설치 과정이 완료되었다.