🚗 EC2 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 |
- 투에모스문자열
- 날짜일수
- 14466
- dockercompose
- 2167. 2차원 배열의 합
- 소가길을건너간이유6
- 2108_통계학
- Error
- docker
- 자바
- 알고리즘
- 별자리 만들기
- CMD
- jenkins
- 백준
- Error fetching remote repo 'origin'
- SpringBoot
- Eclipse
- documentationpluginsbootstrapper
- 이산수학
- Java
- 호석이두마리치킨
- to display the conditions report re-run your application with 'debug' enabled
- 프로그래머스
- 설정
- 21278
- 18222
- EC2
- 20055
- 이클립스
- Today
- Total
계단을 오르듯이
EC2 Jenkins와 GitLab 연동하여 빌드 및 배포 자동화하기 본문
EC2 Docker-Compose를 yaml파일로 Jenkins 설치하기
1. docker-compose.yml 파일 아래는 Docker-compose.yml 파일이다. 현재 java8을 사용하고 있으므로 lts-jdk8 버전의 Jenkins를 설치하였다. 🔔 privileged 와 user의 명령어를 사용하지 않으면 에러가 발생했다!!..
happyayun.tistory.com
1. git 설치
EC2에 git을 설치해준다.
sudo yum install git

2. SSH 접속을 위한 Key 생성
Gitlab은 SSH Public Key로 인증 후 사용할 수 있기에 GitLab과 연동을 위해 SSH 접속을 위한 키를 생성해야 한다.
ssh-keygen -t rsa -C [연결하고자하는 깃랩 이메일]
1. Key 파일 저장 위치를 묻는 내용으로 디폴트 위치에 저장할거면 그냥 엔터! - 변경할 것이면 그 경로 위치 입력
2. key 파일의 비밀번호 입력 ⭐ 무조건 기억!! → 연동시 필요
3. 2번 비밀번호 확인
Key 생성 완료!!

3. SSH Key 권한 부여
SSH Key 생성이 완료되면 ‘cd ~/.ssh’ 위치에 id_rsa, id_rsa.pub 두가지 파일로 저장됩니다.
해당 파일들은 읽기, 쓰기, 실행 모든 권한을 사용자만 가져야 하기 때문에 권한을 부여해주어야 한다.
chmod 700 ~/.ssh/id_rsa*

4. pub key 값 복사
아래의 명령어로 id_rsa.pub 파일 내용을 열어
cat ~/.ssh/id_rsa.pub
👌 ssh-rsa부터 입력했던 Gitlab 계정 이메일 주소까지 모두 Key값이므로 전부 복사를 한다.

5. Gitlab 로그인 후 SSH Keys 등록
1. Gitlab 로그인
2. Gitlab 화면 우측 상단 프로필 선택 후 Edit profile로 이동

3. SSH Keys 메뉴 이동

4. 복사한 pub key 값 붙여놓은 후 Add key 버튼 클릭
아래와 같이 이메일이 Title에 자동 입력된다.
Add key 클릭!

6. Jenkins에 git plugin 설치
1. jenkins 로그인
아이디 → 계정명
암호 → 비밀번호

2. Jenkins 관리 → 플러그인 관리

3. 설치 가능 탭을 누르고 ‘git plugin’을 검색한다.
본인은 이미 설치되어 있으므로 설치된 플러그인 목록을 통해 설치여부를 확인하였다.

4. 설치 완료 후 다시 Jenkins 를 재시작
설치 페이지 맨 하단에 설치가 끝나고 실행 중인 작업이 없다면 Jenkins 재시작 문구에 체크를 하면 설치 완료 후 자동 재시작 된다.

7. Jenkins 새로운 Item 생성
새로운 Item을 선택 후 원하는 Project 명을 입력하고 Freestyle project로 생성하고 아래의 OK 버튼을 클릭한다.


8. Jenkins Project 설정
1. 소스 코드 관리에서 git 선택 및 빌드를 원하는 branch 설정
GitLab repository 중 빌드하기를 원하는 repository를 선택하여 SSH 주소를 복사한다.

2. Jenkins 소스 코드 관리 화면 설정
- git 체크 후 Repository URL에 위에서 복사한 SSH 주소를 붙여넣는다.
- 그 후 아래에 Branch Specifier 부분에 빌드할 Gitlab branch명을 넣어주면 된다.
- 기본 설정은 master로 되어있다.

3. Credentials(private key) 생성
Add를 눌르면 보이는 jenkins 을 클릭한다.

- kind : credentials 종류 선택
- 현재는 SSH key를 사용할 것이기 때문에 SSH Username with private key를 선택
- ID : credentials 의 이름
- Description : credientials 설명이 필요하다면 입력 (선택)
- Username : 사용자 입력
- 현재는 gitlab의 이메일로 하였다. (@이전까지 아이디 부분만을 하기도 함)

위를 모두 작성하였다면 Username아래에 private key가 존재할 것이다.
Enter directly 버튼을 체크해준다.

그럼 아래와 같이 좌물쇠 모양의 text를 넣을 수 있는 공란이 생길 것이다.
현재 나는 그 부분을 놓쳐 시스템 설정으로 다시 들어간 상태이다.

아래의 명령어를 해당 EC2에 치면 BEGIN OPENSSH PRIVATE KEY 부터 END OPENSSH PRIVATE KEY까지 나오는 것을 확인할 수 있다.
그럼 ——BEGIN~~~ —— 부터 ——END~~~——까지 출력된 모든 것을 복사한다.
cat ~/.ssh/id_rsa

그리고 해당 공란에 붙여넣기를 하고 SAVE 버튼을 눌러 저장한다.

처음에는 Build when a change is pushed to GitLab 의 버튼이 보이지 않았다.
왜 안보이지.. 하고 있다가 밥을 먹고 다시 왔는데 보여졌다!!
오잉 역시 신비의 세계... 🙄
아래와 같이 빌드 유발의 네비를 클릭하고 Build when a change is pushed~~ 를 체크해준다.
아래부터는 이제 선택적으로 자신에게 알맞은 Build 유형을 선택하면 된다.

🔑 그리고 위에서 체크한 부분의 끝에 webhook URL: 뒤의 부분을 기억하자!!
이제 gitlab과의 연결에서 사용될 URL 이기 때문이다.

이제 설정을 모두 했다면 오른쪽 아래의 고급버튼을 클릭하면 Secret token 이 보일 것이다.
Secret token의 오른쪽 끝에 Generate 버튼을 클릭한다.
그럼 클릭과 동시에 Secret token이 생성될 것이다. 이것도 저장!

9. Gitlab Webhook 설정
jenkins와 연결할 gitlab respository webhooks 화면으로 들어가기 위해 Settings → Webhooks를 클릭한다.

이제 아까 기억해두었던 Webhook URL과 Secret token을 넣어준다.
Trigger은 push events를 선택한 후 원하는 브랜치를 넣어주면 된다.
현재 token은 나는 한번 더 받았기에 위에와는 다르다.

설정을 마쳤으면 SSL verification 아래와 같이 체크 후 Add webhook을 클릭한다.
그럼 아래와 같은 Project Hooks가 생겨난다.

이제 Test를 클릭하고 Push events를 위에서 체크했으므로 Push events를 클릭하면 된다.

그럼 아래의 사진처럼 위에 Hook executed successfully: HTTP 200 이 나오면 성공!

이제 Jenkins에서 빌드를 확인하면 된다.
빌드 성공!!! 😍

'AWS' 카테고리의 다른 글
EC2 Docker-Compose를 yaml파일로 Jenkins 설치하기 (0) | 2022.02.10 |
---|---|
02. AWS에서 EC2 인스턴스 생성 및 작업 (0) | 2021.03.10 |
01. AWS Identity and Access Management (IAM) 소개 (0) | 2021.03.06 |