Devops/Jenkins

[Jenkins] AWS EC2에서 설치하기

keyhong-DE 2023. 6. 22. 11:22

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

 

Jenkins on AWS

Jenkins – an open source automation server which enables developers around the world to reliably build, test, and deploy their software

www.jenkins.io

AWS EC2에서 젠킨스를 설치하는 과정을 정리하였다.

기본 환경 구성

Jenkins는 jvm 위에서 구동되는 프로그램이다. 따라서 java를 설치해주어야 한다. 다음 커맨드는 설치하는 과정에서 패키지 관리자인 yum을 업데이트 해주고 java-11-openjdk를 설치하는 과정이다.

# Ensure that your software packages are up to date
$ sudo yum update –y

# Add the Jenkins repo using the following command
$ sudo wget -O /etc/yum.repos.d/jenkins.repo \
    https://pkg.jenkins.io/redhat-stable/jenkins.repo

# Import a key file from Jenkins-CI to enable installation from the package
$ sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key
$ sudo yum upgrade

# Install Java (Amazon Linux 2)
$ sudo yum install java-11-openjdk

Jenkins 설치 & 시작

# Jenkins 설치
$ sudo yum install jenkins

# 부팅 시 Jenkins 서비스 활성화
$ sudo systemctl daemon-reload

# Jenkins 서비스 시작
$ sudo systemctl start jenkins

# Jenkins 상태 확인
$ sudo systemctl status jenkins

# 정상동작시
# Loaded: loaded (/lib/systemd/system/jenkins.service; enabled; vendor preset: enabled)
# Active: active (running) since Tue 2018-11-13 16:19:01 +03; 4min 57s ago
# ...

설치 Trouble Shooting

하지만,, 역시나 원큐에 바로 다 되지는 않는다고,, 나의 경우 정상동작이 되지 않고 에러가 발생했다.

커맨드 라인 출력에 쓰인대로 로그를 보기 위해 journalctl -xe 커맨드로 로그를 보았다.

로그의 중간에 보면 Faile to bind to 0.0.0.0:8080 이라는 표현이 나온다. 내가 사용하고 있는 포트의 프로그램을 보려면 다음과 같은 커맨드를 치면 된다.

$ netstat -nltp

젠킨스는 하나의 애플리케이션으로 web interface ui를 사용하는데, 나의 경우 이미 airflow가 8080 포트에 자리 잡고 있어 젠킨스의 포트를 바꿔주어야 했다. 

$ sudo vim /etc/sysconfig/jenkins

$ sudo vim /usr/lib/systemd/system/jenkins.service

해당 두 파일에 들어가면 여러 설정이 나오는 데, 다음 이미지에서 보다시피 PORT가 "8080"으로 자리 잡고 있다. 이 포트를 사용 가능한 포트로 바꿔주어야 한다. (AWS EC2에서 사용할 경우, 보안그룹을 설정하여 외부에서 접속가능한 포트를 추가해주어야 하는 작업이 있다.)

"/etc/sysconfig/jenkins" & "/usr/lib/systemd/system/jenkins.service"

Jenkins Configure

정상 실행 됬다면 http://<ip>:<port> 로 진입한다. 들어가면 잠금을 해제하라는 표시가 나오고, 패스워드는

문구에 따라 /var/lib/jenkins/secrets/initialAdminPassword 를 확인해서 안의 값을 넣으면 설치를 할 수 있다.
이후 Install suggested plugins 를 선택한다! 이후 configure은 입력하는 양식이 보이고 입력하면 된다.
(configure은 현재 화면에서 skip하고 차후 설정을 해도 무방하다)