◈ Jenkins - target(Client)
먼저 젠킨스를 키고 모바X텀으로 원격접속 연결 후 IP확인 및 꺼져있는 젠킨스 컨테이너 실행 (admin / busanit)
① 젠킨스 설정
이제 젠킨스 관리 > Tools로 가서 JDK 에 "jdk17"이름으로 홈디렉토리 등록


그리고 젠킨스 관리 > Plugins > Available Plugins 에서
"Publish over ssh"와 "Docker", "Docker Pipeline" 그리고 "Pipeline: Stage View"를 다운
이제 젠킨스 관리 > System 으로 가서 맨 아래의 SSH 추가 등록

ㄴ 내용을 입력한 후 아래쪽에 Test Configuration을 클릭했을 때 Success가 확인 되어야 함
이제 기본 셋팅은 완료했기에 Build를 해주어야 한다
빌드하기 위해 "Petclinic-Pipeline"이라는 이름의 파이프라인 아이템을 만들어주고
Github에 접속하여 본인계정의 만들어 두었던 petclinic 레포지토리에 들어가서 HTTPS 키를 복사하여
Petclinic-Pipeline의 구성에서 Github project에 url을 붙여넣고

이전에는 파이프라인 작업을 젠킨스에서 했으나
이번에는 github에 코드를 올려서 바로 적용될 수 있도록 적용
ㄴ단점은 key값이 노출되기에 변수처리를 하거나 다른사람이 보지 못하도록 개인정보 처리를 해야한다
그렇게 등록하기 위해서는 구성의 맨아래의 파이프라인에서 script from SCM으로 변경하고 Git으로 등록

ㄴ해당 내용에 url을 입력하고
ㄴbranch값을 입력하는데 github의 petclinic에 등록된 branch값을 확인하여 원하는 값을 등록
ㄴ현재는 main만 있기에 main으로 등록

ㄴ맨아래 내용에 연결되는 파일명을 확인하거나 원하는 파일 명으로 수정 가능
③ Jenkins파일 제작
이후 Github에서 직접적으로 바로 등록하는 방법을 알아볼건데
Create new file 을 클릭한 후 파일이름을 등록된 파일명과 동일하게 설정 후 내용 입력("Jenkinsfile")

(1) github 내용 복붙

ㄴJenkins서버의 워크스페이스에서 파이프라인(아이템 이름)의 디렉토리에 소스코드를 전부 다운
ㄴ이렇게만 입력후 저장하고 Jenkins에서 지금빌드를 하면 워크스페이스 디렉토리와 내부 디렉토리와 파일들이 생성됨
★입력을 완료 한 후 Commit changes... 로 내용 저장하며, 저장이 완료 된 후에는 연필모양을 클릭하여 수정도 가능하다

★지금빌드 시 X가 되면 오타가 있다는 의미이기에 내용확인 필요
(2) Maven 빌드

ㄴ이렇게 완료한 후 지금 빌드를 하게되면 target 디렉토리와 내부 파일들이 생성됨

(3) 도커 이미지 제작
아무것도 없는 상태에서 *.jar 파일로 이미지를 만드려면 먼저 도커파일을 먼저 만들어 주어야 한다
그렇기에 "Dockerfile"이라는 파일을 만들어 주어야 한다

ㄴ도커허브에서 "openjdk"이라는 이미지를 가져와서 17-oracle버전을 설치

ㄴ도커허브의 계정을 입력하여 이미지를 빌드하여 업로드할 아이디 등록
ㄴ저장 후 젠킨스에서 지금빌드하여 성공 시 젠킨스 서버에 해당 도커이미지가 생성된 것을 볼 수 있다

ㄴ tag가 5인것은 젠킨스에서 지금빌드할때 5번째 빌드로 제작되었기 때문
(4) 도커 이미지를 도커허브에 넣기
이제 도커 허브에서 토큰을 만들건데


ㄴ비번 프롬프트를 복사하여 메모장에 넣어놓기 (나가면 다시보기 힘듬)
이후 젠킨스 관리에서 설정 추가

ㄴID는 이후 도커에서 동일하게 사용하기에 기억하거나 동일하게 하기

ㄴ젠킨스에서 크리덴셜 저장 후 Jenkinsfile에 윗사진 내용을 Tools 밑에 추가
ㄴ해당 환경변수의 키를 아래사진에서 바로 사용함

ㄴ먼저 확인된 도커허브의 토큰 비번과 아이디를 등록한 후 받은 도커이미지 파일을 등록

ㄴ빌드 완료하면 윗사진 처럼 도커허브에 이미지 파일이 생성된 것을 볼 수 있다

ㄴ이미지를 계속 다운만 한다면 용량이 부족해질 수 있기에 이미지 다운로드 한 후 이전 이미지 삭제 필요
ㄴ이 용량이 1G 미만이 되면 젠킨스 작동이 되지 않음
(5) 도커 이미지 삭제

ㄴ해당 명령어를 통해 빌드 번호 붙은 것과 latest 이미지를 삭제
(6) 도커 컨테이너
이후 도커 컨테이너를 만들 때
업데이트를 하기위해선 기존 컨테이너 삭제후 다시 만들어야 하기에
젠킨스 > Petclinic-Pipeline > 구성 맨 아래의 syntax 클릭 후 SSHPublinsher 클릭 후

제네레이트 하여 만들어진 내용을 추가하고

내용을 복사하여 Jenkinsfile에 넣기

저장 후 동일하게 지금 빌드 하게되면


ㄴ이렇게 삭제된 것을 볼 수 있으며 (이전버전은 따로 삭제가 필요하여 삭제함) , 타겟컴퓨터에는 있는것을 볼수 있다

ㄴ타겟서버 IP로 접속 시 해당 웹페이지가 확인 되는 것을 볼 수 있다
※호스팅 서버 돌리는 기업이 아닌 이상 애플리케이션 서버를 돌린다
이 부분은 프로그램 언어와 버젼마다 환경이 다 다르다
즉, 맞춰가는 과정이 어렵다
다양한 도구를 사용하나 가장 많이 쓰이는 게 이 Jenkins이기에 이 프로그램으로 셋팅
'AWS 교육 > Docker-AWS (월)' 카테고리의 다른 글
| 241216_AWS Instance, Auto Scaling, Load Balancer (0) | 2024.12.16 |
|---|---|
| 241209_클라우드 컴퓨팅, AWS 단체 접속 및 EC2(Instance) (0) | 2024.12.09 |
| 241125_Jenkins-Server(Target, SSH, Pipeline) (0) | 2024.11.25 |
| 241118_SSH-key, Jenkins, Github-spring (0) | 2024.11.18 |
| 241111_Docker Compose, Jenkins, Maven, Tomcat, github (0) | 2024.11.11 |