ㅁ CI/CD쪽하고 시간 남으면 AWS를 좀 더 본다.
- 젠킨스는 CI/CD도구다.
CI는 지속적인 통합.
CD는 지속적인 배포.를 의미한다.
- 젠킨스말고 깃헙액션이란 것도 있다. CI/CD 도구는 ㅁ낳은데 젠킨스를 많이 쓰니까 젠킨스를 써본다.
- 젠킨스는 JDK17버전 이상을 써야 오류가 안뜸.
11을 쓰면 오류가 나고 경고메세지가 뜬다.
- 윈도우에서 이클립스로 개발을 하고 깃허브에 올리면, 깃허브에서 젠킨스에다가 통지를 해준다.
이렇게 통지하는거 가지고 WEBHOK이라 한다.
- 기섷브에 PUSH하면 깃허브에 새로운 소스가 올라갈거고, 그럼 깃허브가 WEBHOK으로 젠킨스에 통지한다.
그럼 젠킨스는 깃허브에 깃풀을 해서 소스를 땡겨온다. 그리고 빌드하고, 2, 3, 4한다.
- 윈도우에서 바뀐 내용으로 푸쉬해서 깃허브에 올라간 새로운 소스가 젠킨스로 올라간다.
그럼 젠킨스에서 (1) 빌드하고, (2) 컨테이너 이미지 생성하고, (3) 도커허브에다가 푸쉬한다.
- (4) 배포서버에서 도커 런 명령을 수행한다.
그럼 배포 서버에 어플리케이션이 동작한다.
- 젠킨스에서 도커 허브에 푸쉬한다.
배포서버는 도커허브에서 푸쉬한걸 땡겨와서 런을 하게됨.
- 이클립스에서 깃허브로 푸쉬해서 이 작업이 되게끔 한다.
- 깃허브, 젠킨스에서 설정을 해줘야 한다.
- 위의 수동작업을 젠킨스가 알아서해준다. 물론 설정을 해주면.
- 그래서 젠킨스를 설치한다.
- 버츄얼박스의 우분투에 젠킨스를 설치한다.
- 그러려면 깃허브에서 버츄얼박스의 우분투에 접속이 가능해야 한다.
근데 버츄얼박스의 우분투는 바깥에서 접근이 안되죠. 그래서 NGROK을 쓴다.
안그럼 젠킨스도 AWS의 EC2에 생성하면 돼요. 근데 그건 비용이 들어가니까. 로컬에서 유지하다가 로컬에 접속할 수 있게끔 엔지락 걸어두면 사용할 수 있다.
- 다운로드를 누른다.
- 젠킨스도 자바로 된거다. WAR파일로 동작하거나 우분투에 설치해서 써도 된다.
우분투에 설치하는게 더 편하다.
어쨋든 WAR로도 쓸 수도 있다.
- 우분투 데비안 누른다.
- 버츄얼박스의 우분투(DEV 개발서버)에 첫번째 블록 복붙 실행, 두번째 블록 복붙 실행, 그리고 세번째 블록은 한줄씩 복붙해서 차례대로 실행했다.
- 엔지락을 안쓰면 우분투에? 젠킨스를 설치하면 안된디ㅏ.
- 이건 동작을 위해서 jre인거고 우린 jdk가 필요한거죠. 이건 우리가 있어서 이미 최신버전이라고 뜹니다.
○ sudo service jenkins status
- 2a6348f8300e42079dee317c8a716e5b가 패스워드다. 첫줄. 복사해놓는다.
- 젠킨스가 사설 네트워크에 설치된 경우 ngrok을 이용해서 외부에 노출한다.
젠킨스가 8080포트를 쓴다.
ngrok http http://localhost:8080
물론 ngrok이 먼저 설치가 되어있어야 한다.
- 윈도우가 아니고 리눅스 한다음에.
첫번재, 두번째, 3번재 다한다. 디플로이까지.
두번째는 토큰이다.
- 1, 2, 3 블록을 차례대로 실행했다.
- 그럼 이렇게 뜬다.
- 포워딩 앞부분의 https://3d47-14-36-141-71.ngrok-free.app를 입력하면 창이 뜬다.
- 안뜨면 다시 해본다. ngrok을 다시키게되면 주소가 바뀌어서 아마 이전주소.
- 비번에 아까 복사한걸 넣어노느다.
- 거기서 왼쪽의 install을 누른다.
그럼 인스톨이 된다
- 다 되면 이런게 뜬다.
- 계정명 admin, 1234할게요.
- 이메일은 대충했다. admin@a.b
- save and continue하면 instance configuration이 뜬다. 그냥 sasve하면 된다.
원래는 ip가 나오는데 ngrok을썻기때문에 긎 ㅜ소가 나온다.
- ngrok 끄면 안된다.
ngroik을 다시 실행하면 주속 ㅏ바뀌어버린다.
- 기존 탭은 그대로 두고 duplicatio해서 탭을 새로 연다.
- save하면 jenkins is readey가 뜬다.
버튼을 누름녀 jenkins페이지로 이동한다.
- 여러분 깃허브를 들어간다. 본인거 로그인하시고.
- 이클립스 실행.
- sts외에 별도의 저장소를 써야하니까. 프로젝트를. 추가한다.
- stswebjpa 압축을 풀어서 d드라이브에 cicd 폴더를 두고 거기에 뒀다.
- 이클립스에서 웤스ㅡ페이스로 cicd를 선택한다. 런치한다.
기존의 웤스ㅡ페이스에 붙여넣기하고 불러들여도 된다.
- 그리고 오픈프로젝트로 stswebjpa를 피니시한다. 디렉토리로 찾아서.
MEMBER.JAVA에 게터세텀나들었다.
- 게터세터가 없어서 오류난다. 다 만든다.
- 깃허브에 new repostiory로 memberbook을 만든다.
- settings - webhook
- 페이로드 url에 젠킨스 url을 적고( ~app을적고) /github-webhook/을 추가한다.
젠킨스 url은 아까 젠킨스 사이트 url이다.
- 여기서 초록색 체크표시가 떠야 한다. 깃허브와 젠킨스가 통신이 된다는 뜻이다.
ㅁ
- 프로젝트를 깃허브와 연결한다.
- 프로젝트 우클릭 - Team - share project..
- user ~를 누른다.
- create repostory를 누른다. 로컬저장소를 여기다 만든다는 얘기다.
.git으로 별도로 다른데다 만들어지는데 같이 만든거다.
그리고 피니시.를 누른다.
프로젝트 내에 깃저장소를 만든다?
- 깃 레토지토리를 만들었따.
- 깃에서 오른쪽메뉴에서 세팅 을 누른다.
- 이동한 페이지에서 왼쪽 메뉴의 맨 아래에 디벨로퍼스 세팅.
-그리고 퍼스널 access tokens - tokens(classic)을 누른다.
- 여기서 제너레이트 뉴 트콘 - 드롭다운나오는데 거기서도 뉴 토큰 (클래식)을 누른다.
- 래포, 어드민, 래퍼2
- note는 아무거나 했음. 놓쳐서.
- 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
한번보여주고 안보여줌. 토큰이다. 복사해서 다른데다 적어놓는다.
- memberbook 저장소에가서 주소를 카피한다.
HTTPS입니다.
- view에서 git repostiories. - Remotes폴더 우클릭 - create remote
- 여기다가 어느 저장소에 푸쉬할건지 지어하는거다.
- configure push와 configure fetch가 있다.
origin으로 되어있다. 이름은. 그리고 push로 create.
change
- uri에다가 저장소 uri
user에는 깃 닉네임(아이디 아님),
password가 아까 깃에서 복사해놓은 토큰을 붙여넣는다.
- finish하고, 나온 창에서 save한다.
- store in secure store를 클릭해야 할때마다 안물어본다.
- 이러면 이클립스에서 커밋, 푸쉬하면 깃에올라간다.
- 뷰에서 Git staging을 연다.
- 코드를 수정하면 여기에 변경사항이 뜬다. 커밋 메세지를 작성하고 커밋을 누른다. 그리고 커밋앤 푸쉬를 누른다.
- push하는 방법은 여러가지다. 이클립스 내에서 커밋, 푸쉬를 하는 방법으로 지금 하고 있다.
- 추가된게 unstaged changes 위에 있다. ++초록색을 눌러서 내리고, 커밋 메세작성. 커밋엔 푸쉬 누르면 푸쉬까지 된다. close누르면 끝이다.
- 그럼 이렇게 뜬다.
- push를 눌러본다.
- user에 아까와같이 깃 닉네임,
password에 아까와같이 토큰복사한값.
- close한다. 별 의미없는 창인듯?
- 깃허브 저장소가서 f5하면 아무것도 없었는데 이런것들이 생겼다.
- 푸쉬만 하면 소스가 젠킨스까지 가서 이미지만들고 업로드하고 뭐 그런걸 다 해준다느 ㄴㅇ"ㅒ기다.
ㅁ
- 젠킨스에 필요한 플러그인 깔기
- 처음 깔 때 제시해준 플러그인들 말고 또 따로 깐다.
- Docker Pipeline, SSH Agent, Pipeline Stage View의 3가지 플러그인을 추가한다.
- 젠킨스 관리 클릭.
-아이디 admin 비번 1234
- 우분투 22.04가 언제까지 공식적으로 지원해준다. 이제 올리란 얘기죠.
- plugins 클릭
- available plugin에서 검색해서 왼쪾 체큽작수 누르고 인스톨한다.
= 젠킨스는 플러그인이 엄청 많다.
- 3개 설치다 했으면 다시 대시보드로 와서 왼쪽 위의 + 새로운 아이템을 누른다.
- 새로운 아이템이 젠킨스가 작동하느 ㄴ작업 단위다.
test project라는 이름을 준다.
- pipeline을 쓴다. 클릭하고 ok.
순서대로 진행이된다. 최종적으로 배포하는것까지 된다.
- 저걸 체크한다. 저게있으면 깃에서 통지가 오면 다운로드한다.
- 아래로 스크롤을 내려본다.
- 여기다 스크립트를 작성하면 된다.
이게 그루비 문법이다.
자바로 만들어져있어서 자바 으 ㅣ클래스를 쓸 수 있다. 시스템 시간같은거. 여기다 내가 원하는대로 스크립트를 작성한다.
- 오른쪽의 try sample pipeline에서 helloworld를 ㅋ찍어본다.
- stagㄷㄴ안에 stage, 그 안에 step이 있다.
- 젠킨스가 동작을 하면 이 파이프라인에 따라서 에코 헬로월드 찍고 끝나는 간단한 샘플 코드다. 이러고 저장한다.
- 여기서 지금 빌드를 누르면 된다.
근데 ㄷ이것도 자동화할거다. 지금은 지금빌드를 눌러본다.
- 8번 눌렀다. 렉걸린줄 알고.
- #1을 누르고, 왼쪽의 console output을 누른다. 이렇게 된거다.
- 여기서 버츄얼박스 끄면 엔지락도 꺼진다. 그럼 내일하면 주소도 달라진다.
그럼 깃허브의 웹훅스에 가서 payload url도 바꿔줘야 한다.
-근데 젠킨스가 퍼블릭에서 동작하면 주소가 안바뀔거라 상관없는데 우린 엔지락쓰고있으니까 엔지락 주소를 바꿔줘야 한다.
- 내일 오전에 연결하고 ,스크립트 작성하고, 내가 원하는 작업. 커밋앤푸시 했을때 소스코드 다운받아서 빌드를 하고 그빌드도 ㅣㄴjar파일가지고 이미지 만들고, 허브에다 push하고, 배포하는거까지.
이렇게 하고 나서 여러분 소스갖고 배포해보는걸로 할게요.
'배포 > AWS' 카테고리의 다른 글
5. 프로젝트 젠킨스로 배포 해보기 (1) | 2024.12.11 |
---|---|
4. 젠킨스로 배포 (1) | 2024.12.11 |
2. AWS EC2(우분투)에 배포하기 (1) | 2024.12.10 |
1. aws 개념 (1) | 2024.12.10 |