Post

EC2 위에 Jenkins Server 구축하기

EC2 위에 Jenkins Server 구축하기

https://www.whatap.io/ko/blog/77/ 와탭랩스에서 공유한 글을 보고 한 번 적용해 볼까 하는 생각이 들었습니다. 기존 계획은 Jenkins Server를 하나 만들어 사용하는 것이었지만 이미 MicroK8s Server를 구축해 둔 만큼 해당 클러스터를 활용해 Jenkins Agent를 Pod로 동적으로 생성해 보는 건 어떨까요? 하고 싶은 건 해봐야겠죠.


일단 이번에는 Jenkins Server를 구축하는 내용을 기반으로 포스트를 작성하겠습니다.
EC2 ⇒ t4g.small
OS ⇒ Ubuntu 24.04 LTS


1. Java 설치

Jenkins는 실행에 Java가 필요합니다. OpenJDK를 설치해봅시다

1
2
3
4
5
6
sudo apt update
sudo apt install fontconfig openjdk-17-jre
java -version
openjdk version "17.0.11" 2024-04-16
OpenJDK Runtime Environment (build 17.0.11+9-Ubuntu-1)
OpenJDK 64-Bit Server VM (build 17.0.11+9-Ubuntu-1, mixed mode, sharing)

2. Jenkins 설치

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
sudo wget -O /usr/share/keyrings/jenkins-keyring.asc \
  https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key
echo "deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc]" \
  https://pkg.jenkins.io/debian-stable binary/ | sudo tee \
  /etc/apt/sources.list.d/jenkins.list > /dev/null
sudo apt-get update
sudo apt-get install jenkins
sudo systemctl enable jenkins

---

## 확인

root@ip-10-0-0-24:~/jenkins# systemctl status jenkins
● jenkins.service - Jenkins Continuous Integration Server
     Loaded: loaded (/usr/lib/systemd/system/jenkins.service; enabled; preset: enabled)
     Active: active (running) since Sun 2024-05-05 06:54:50 UTC; 1min 27s ago
   Main PID: 3338760 (java)
      Tasks: 45 (limit: 2197)
     Memory: 594.5M (peak: 602.5M)
        CPU: 26.886s
     CGroup: /system.slice/jenkins.service
             └─3338760 /usr/bin/java -Djava.awt.headless=true -jar /usr/share/java/jenkins.war --webroot=/var/cache/j>

May 05 06:54:32 ip-10-0-0-24 jenkins[3338760]: 39ea4f81e4ca4b0cb3669573128b5aed
May 05 06:54:32 ip-10-0-0-24 jenkins[3338760]: This may also be found at: /var/lib/jenkins/secrets/initialAdminPassw>
May 05 06:54:32 ip-10-0-0-24 jenkins[3338760]: *************************************************************
May 05 06:54:32 ip-10-0-0-24 jenkins[3338760]: *************************************************************
May 05 06:54:32 ip-10-0-0-24 jenkins[3338760]: *************************************************************
May 05 06:54:50 ip-10-0-0-24 jenkins[3338760]: 2024-05-05 06:54:50.698+0000 [id=33]        INFO        jenkins.InitR>
May 05 06:54:50 ip-10-0-0-24 jenkins[3338760]: 2024-05-05 06:54:50.814+0000 [id=24]        INFO        hudson.lifecy>
May 05 06:54:50 ip-10-0-0-24 systemd[1]: Started jenkins.service - Jenkins Continuous Integration Server.
May 05 06:54:52 ip-10-0-0-24 jenkins[3338760]: 2024-05-05 06:54:52.453+0000 [id=49]        INFO        h.m.DownloadS>
May 05 06:54:52 ip-10-0-0-24 jenkins[3338760]: 2024-05-05 06:54:52.454+0000 [id=49]        INFO        hudson.util.R>
lines 1-20/20 (END)

3. Jenkins 접속해보기

Jenkins Server에 접속하려면 EC2 인스턴스 인바운드 규칙에서 8080 포트를 허용해야 합니다.


{EC2_Public_IP}:8080.
위와 같이 웹브라우저에서 접속해줍니다.

Untitled

비밀번호가 필요한 것을 알 수 있습니다. /var/lib/jenkins/secrets/initialAdminPassword를 확인해볼까요?

1
2
root@ip-10-0-0-24:~# cat /var/lib/jenkins/secrets/initialAdminPassword
39a746af851e4dca44bcbe3669r153128ab 

해당 비밀번호로 접속해봅시다.

Untitled

접속했습니다. Install suggested plugins를 눌러 기본 플러그인을 설치해 보겠습니다.


4. Jenkins 설정

Admin 계정부터 설정해보겠습니다.
플러그인 설치하다가 캡쳐 까먹은건 비밀.

Untitled

Untitled


5. 마무리

Untitled

다음 글에는 Kubernetes Pod를 Agent로 사용하는 방법을 올려보도록 하겠습니다.

6. Reference


궁금하신 점이나 추가해야 할 부분은 댓글이나 아래의 링크를 통해 문의해주세요.
Written with KKamJi

This post is licensed under CC BY 4.0 by the author.