-
[CI/CD 구축] EC2에 젠킨스 설치하기 - windowsProject/CICD 2022. 3. 1. 03:45728x90반응형
[Project workflow]
EC2로 윈도우/리눅스 EC2 생성Mac에서 EC2 접속 test(테스트 빌드용) 로컬 젠킨스 서버 배포젠킨스 프로젝트 생성 및 빌드 코드 짜기
EC2 젠킨스 설치 및 배포
배포된 젠킨스 서버와 깃헙 웹훅 연결
코드 merge시 EC2에서 빌드되는지 테스트
젠킨스는 자바 기반이므로 먼저 jdk를 설치해주어야한다.
JDK 설치
1. Microsoft edge로 https://adoptopenjdk.net 으로 접속
2. 해당 사이트에서 파란색 버튼을 클릭
3. 이동 된 사이트에서 최신 LTS 버전을 선택한 뒤 Latest release 버튼 클릭 (여기서 17버전 클릭하면 젠킨스 구동 안된다. 젠킨스 문서를 보면 java8이나 11버전을 쓰라고 친절히 나와있다. 11버전을 선택하자)
4. Downloads 폴더에 다운받아져 있는 openjdk 설치 파일 실행
Jenkins 설치
1. Microsoft edge로 https://www.jenkins.io/download/ 접속
2. Doiwnload Jenkins에서 Windows 선택
3. Downloads 폴더에 다운받아져 있는 jenkins 설치 파일 실행
4. 이 부분은 서비스 구동 계정을 설정하는 부분인데 나중에 바꿀 수 있으니 일단 그냥 넘어간다.
5. 접속 포트는 8080으로 설정
6. 위에서 설치한 jdk의 경로로 선택 (17버전이 아니라 11버전이므로 폴더명이 jdk-11-...이어야한다)
7. Firewall Exception을 Entire feature will be unavailable로 선택 (X 마크)
8. 다음 화면이 나오면 설치가 끝난 것이다.
Jenkins 초기 설정
1. 브라우저로 localhost:8080에 접속하면 다음과 같은 페이지가 뜬다.
2. 위에서 확인한 경로를 복사해서 파일 탐색기의 경로창에 붙여넣으면 어떤 프로그램으로 열건지 선택하라는 창이 뜬다. 아무거나 선택해도 상관없겠지만 편하게 Notepad를 선택하면 Notepad가 열리고 그 안에 초기 비밀번호가 적혀있다.
3. 위에서 확인한 비밀번호를 복사해서 젠킨스 창의 Administrator password에 붙여넣는다.
5. Continue를 누르면 플러그인을 설치하라는 메세지가 뜬다. 추천하는거 다 설치하기 위해 Install suggested plugins를 선택한다.
6. 설치에 다 실패했지만 나중에 설치하면 되니 침착하게 continue를 눌러 다음 페이지로 넘어간다 (성공하면 누가봐도 성공인것 같은 창이 보인다)
7. Admin사용자 셋팅을 한다 (username, password 까먹지 말기..)
8. 젠킨스를 접속할 주소를 넣는 창이 뜬다. 우리는 배포를 할 것이므로 EC2의 public IP:원하는 포트 번호로 지정한다. (나중에 바꿀 수 있다)
9. save and continue -> start using jenkins 클릭
10. 끝 ~~! (방화벽 때문에 정말 험난한 길이었다고 한다)
Jenkins 배포하기
1. EC2 인스턴스의 보안(Security) 탭에 가서 보안 그룹(Security Groups)의 그룹이름을 클릭한다.
2. 인바운드 규칙(Inbound rules) 옆에 있는 인바운드 규칙 편집(Edit inbound rules)를 클릭한다.
3. 규칙 추가(Add rules)를 클릭하고 8080포트와 80번 포트(HTTP)를 열어준다. (원래 있던 RDP 건드리지말자... 원격으로 연결하기 위한 필수템)
IPv4만 열어줘도 되는데 나는 혹시 몰라서 IPv6도 접근이 가능하도록 했다 (Source type만 Anywhere-IPv6로 선택해서 하나씩 더 추가하면 됨)
다 추가하면 인바운드 규칙에서 보이는 리스트가 다음과 같아야한다 (IPv6는 선택)
우분투는 여기서 끝났지만 윈도우는 그렇게 호락호락하지 않다. 윈도우 방화벽을 해제해줘야한다 (이걸 몰라서 헤맸던 어린양 손들어주세요)
4. 다시 EC2 원격 화면으로 돌아가서 Firewall & network protection으로 들어간다
5. Domain network, Private network, Public network를 모두 꺼준다 (Turn off 클릭)
끄고 나면 화면이 다음과 같이 'Firewall is off'로 변한다.
6. 이제 끝났다. 로컬의 브라우저로 아까 젠킨스에서 설정했던 젠킨스 접속 주소가 열리는지 확인한다 (EC2 public IP:원하는 포트)
다음과 같은 화면이 뜨면 성공! 이제 원격이 아니라 내 컴퓨터에서 윈도우 EC2의 젠킨스 작업을 할 수 있다.
플러그인 설치 문제를 해결해야하는데, 로그를 보니 다음 에러 메세지가 뜬다. Manage Jenkins에 뜨는 에러메세지인 reverse proxy 문제 아니면 다음 stackoverflow 참고해서 해결해봐야겠다.
- It appears that your reverse proxy set up is broken.
- sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Caused: sun.security.validator.ValidatorException: PKIX path building failed
Caused: javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Caused: javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Caused: java.io.IOException: Failed to load https://updates.jenkins.io/download/plugins/workflow-step-api/622.vb_8e7c15b_c95a_/workflow-step-api.hpi to C:\ProgramData\Jenkins\.jenkins\plugins\workflow-step-api.jpi.tmp
Caused: java.io.IOException: Failed to download from https://updates.jenkins.io/download/plugins/workflow-step-api/622.vb_8e7c15b_c95a_/workflow-step-api.hpi (redirected to: https://get.jenkins.io/plugins/workflow-step-api/622.vb_8e7c15b_c95a_/workflow-step-api.hpi728x90반응형'Project > CICD' 카테고리의 다른 글
세마포어 CI로 Github CI/CD 구축하기 - 2. 세마포어 프로젝트 생성하기 (0) 2022.06.16 세마포어 CI로 Github CI/CD 구축하기 - 1.Intro & CI/CD 툴 비교 (0) 2022.05.25 [CI/CD 구축] EC2에 젠킨스 설치하기 - Linux 20.04 (0) 2022.02.14 [CI/CD 구축] 젠킨스와 깃헙 private repo 웹훅 연결하기 (push 이벤트) (0) 2022.02.09 [CI/CD 구축] MAC에서 EC2 인스턴스 접속 - Ubuntu & Windows (0) 2022.01.25