이번 포스팅에서는 Webhook을 사용해서 Github에서 Push 이벤트가 발생할 때 자동으로 Jenkins 가 자동으로 빌드하도록 설정해보겠습니다.

 

1. Webhook 이란 ?

Webhook은 이벤트 핸들러입니다.

Github에서 Push 이벤트가 발생했을 때 설정된 EndPoint로 Post요청을 보내게 되고 Jenkins는 빌드를 수행하게 됩니다.

 

https://simsimjae.medium.com/%EC%9B%B9%ED%9B%85%EC%9D%B4%EB%9E%80-e41cf1ba92f0

 

웹훅이란?

위 사진은 웹훅을 정말 잘 설명해주고 있다.

simsimjae.medium.com

 

2. Jenkins 설정

-  Jenkins 프로젝트 -> 구성 -> GitHub hook trigger for GITScm polling 를 체크하고 저장합니다.

3. Github Repository Webhook 설정

- Repository -> Settings -> Webhook에서 Add Webhook 을 클릭한 후 

젠킨스 주소 +/github-webhook/을 추가해줍니다.

 

 

그리고 Push를 하면 빌드가 자동으로 되는 것을 확인할 수 있습니다.

'CI CD' 카테고리의 다른 글

Jenkins + SpringBoot + AWS EC2 배포 (3)  (1) 2021.11.30
Jenkins + SpringBoot + AWS EC2 배포 (1)  (0) 2021.10.28
어플리케이션 배포 전략  (0) 2021.10.23

EC2 Ubuntu Server 프리티어에서 Jenkins를 설치하고 빌드 할때마다 멈추는 현상이 발생했습니다.

검색 결과 메모리 부족라는 걸 알게 되었고 Swap 메모리 할당으로 해결했습니다.

 

Swap 메모리란 ?

RAM 용량이 부족할 경우  HDD의 일부를 RAM 처럼 사용하는 것입니다. 

이걸 사용해서 RAM 용량이 부족하여 시스템에 문제가 생기는 일을 방지할 수 있습니다.

 

Swap 공간 크기 계산

AWS EC2 에서 아래와 같이 권장 스왑 공간을 제공하고 있습니다.

 

시스템 RAM의 양권장 스왑 공간
RAM 2GB 이하 RAM 용량의 2배(최소 32MB)
RAM 2GB 초과, 32GB 미만 4GB + (RAM – 2GB)
RAM 32GB 이상 RAM 용량의 1배
 

Swap 메모리 할당 방법

1. dd 명령을 사용해서 루트 파일 시스템에 스왑 파일을 생성합니다

bs 는 블록 크기, count는 블록 수 입니다. 스왑 파일의 크기는 bs * count 입니다.

 

아래 dd 명령어의 스왑 파일은 프리티어 권장 스왑 공간인 2GB(128M x 16) 입니다.

sudo dd if=/dev/zero of=/swapfile bs=128M count=16

 

2. 스왑 파일의 읽기 및 쓰기 권한을 업데이트합니다.

sudo chmod 600 /swapfile

3. Linux 스왑 영역을 설정합니다.

sudo mkswap /swapfile

4. 스왑 공간에 스왑 파일을 추가하여 스왑 파일을 즉시 사용할 수 있도록 합니다.

sudo swapon /swapfile

5.  작업이 제대로 수행되었는지 확인합니다.

sudo swapon -s

6. /etc/fstab 파일을 편집해서 부팅 시 스왑 파일을 활성화합니다.

#명령어로 파일을 열고
sudo vi /etc/fstab
#fstab 파일에 아래 줄을 추가 후 저장, 종료합니다
/swapfile swap swap defaults 0 0

 

* 참고

https://tape22.tistory.com/22

 

EC2 프리티어에서 Jenkins가 돌아가지 않는 문제 해결하기

❗️앗 프리티어 사양이 코딱지다~! 🥲 프리티어 계정은 램이 1GB입니다. jenkins를 돌리기엔 매우 나약나약한.....나약한.....그래서 처음에 jenkins 설정을 세팅하고 빌드를 했는데 ec2 터미널이 먹통

tape22.tistory.com

https://aws.amazon.com/ko/premiumsupport/knowledge-center/ec2-memory-partition-hard-drive/

 

하드 드라이브의 파티션을 사용하여 Amazon EC2 인스턴스의 스왑 공간으로 메모리 할당

하드 드라이브의 파티션을 사용하여 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스에서 스왑 공간으로 사용할 메모리를 할당하려고 합니다. 어떻게 해야 합니까?

aws.amazon.com

 

https://aws.amazon.com/ko/premiumsupport/knowledge-center/ec2-memory-swap-file/

 

스왑 파일을 사용하여 Amazon EC2 인스턴스의 스왑 공간으로 메모리 할당

1.    dd 명령을 사용하여 루트 파일 시스템에 스왑 파일을 생성합니다. 명령에서 bs는 블록 크기이고 count는 블록 수입니다. 스왑 파일의 크기는 dd 명령의 블록 크기 옵션에 블록 수 옵션을 곱

aws.amazon.com

 

'AWS' 카테고리의 다른 글

Mac에서 AWS EC2 Ubuntu GUI 접속하기  (0) 2021.11.02
  1. EC2 Ubuntu Instance을 SSH 로 접속합니다.
    •  접속 방법은 해당 인스턴스에서 연결을 클릭하면 확인할 수 있습니다.
  2. Ubuntu-desktop 설치 및 tightvncserver를 설치합니다.
sudo apt update
sudo apt install ubuntu-desktop
sudo apt install tightvncserver
sudo apt install gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal

   3. vncserver 를 터미널에 입력해서 실행합니다.

          - 이 때 Password를 설정하라고 나올텐데 원격 접속시 사용할 Password라서 잊어먹으면 안됩니다.

 

   4. vnc config 파일을 열어줍니다.

sudo vi ~/.vnc/xstartup

xstartup 파일을 아래와 같이 수정해줍니다.

#!/bin/sh
# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey vncconfig -iconic &
x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
x-window-manager &
gnome-panel &
gnome-settings-daemon &
metacity &
nautilus &
gnome-terminal &

 5. 설정 적용을 위해 vncserver를 재시작 해줍니다.

vncserver -kill :1
vncserver

6. AWS 로그인 후 보안그룹에서 인바운드 규칙에서 5901 포트를 열어줍니다.

7. Finder에서 command+k로 VNC 실행 후 vnc://우분투 instance Ip:5901로 연결해서 3번에서 입력한 비밀번호로 로그인하면 끝!

 

'AWS' 카테고리의 다른 글

EC2 프리티어에서 Jenkins 가 동작하지 않을 때 해결법  (0) 2021.11.11

+ Recent posts