티스토리 뷰

728x90
반응형

목차

     

     

     

    다시 강조하자면, 이 글은

     

    https://backtony.github.io/spring/aws/2021-08-08-spring-cicd-1/#%EB%8F%84%EC%BB%A4-%EC%84%B8%ED%8C%85

     

    Spring & Jenkins & Docker & DockerHub & GitHub 활용한 CI/CD

    Java, JPA, Spring을 주로 다루고 공유합니다.

    backtony.github.io

    위 글을 사실상 베낀 것이다.

     

    물론 그 사이의 UI 변화나 메뉴명의 변화는 새로 스크린샷을 찍으며 반영했고 오타도 나름 수정했지만,

     

    내 창작 글이 결코 아니다.

     

    내가 진행하고 있는 배포 플로우는 아래와 같으며,

     

    지난 글에선 본격적인 젠킨스 설정에 앞서 AWS 관련 설정과 EC2 내부에 도커, 젠킨스를 설치 및 실행하는 과정까지 진행했다.

     

    이어서 작성해 보자.

     

    Jenkins

     

    지난 글에서 젠킨스를 도커로 이미 띄웠으니, 웹에서 해당 젠킨스에 접근이 가능하다. 브라우저 URL에 아래와 같이 입력한다.

    <Jenkins EC2의 탄력적 IP 주소>:8080/
    
    #예시
    http://12.34.56.78:8080/

    그럼 비밀번호를 입력하라는 화면이 나오는데, 젠킨스용 EC2에서 다음과 같이 입력해 비밀번호를 얻을 수 있다.

    #젠킨스 컨테이너로 진입
    sudo docker exec -it jenkins bash
    
    #패스워드 출력
    cat /var/jenkins_home/secrets/initialAdminPassword

    그다음은 젠킨스 설정에 관한 선택이다.

     

    출처: https://backtony.github.io/spring/aws/2021-08-08-spring-cicd-1/#%EB%8F%84%EC%BB%A4-%EC%84%B8%ED%8C%85

     

    Spring & Jenkins & Docker & DockerHub & GitHub 활용한 CI/CD

    Java, JPA, Spring을 주로 다루고 공유합니다.

    backtony.github.io

     

    간단하게 왼쪽 추천 플러그인 설정을 선택해 주면 알아서 기본적인 세팅을 해준다.

     

    Plugins

     

    순조롭게 대시보드에 진입했다면, 우리의 배포에 필요한 추가 플러그인을 설치한다.

     

    해당 작업을 위해 위 사진처럼 Jenkins 관리 → Plugins를 선택한다.

     

    이어서 Available plugins를 선택하고, 아래의 플러그인을 설치한다.

     

    만약 검색을 했는데 나오지 않는다면 이미 깔려있다는 뜻이므로 넘어가면 된다.

     

    혹시 깔려있는지 확실하지 않다면 한 칸 아래의 <Installed plugins>에서 검색해 보자.

     

    • gradle: 스프링의 gradle을 사용하기 위한 플러그인
    • github integration: 깃허브 Webhook을 사용하기 위한 플러그인
    • post build task: 빌드 로그에 따라 script 혹은 shell을 실행하는 플러그인
    • publish over ssh: 다른 EC2에 접근해서 작업할 수 있도록 해주는 플러그인

    설치 시 아래의 Install without restart로 설치해 주면 된다.

     

    Cridentials

     

    다음은 크리덴셜 설정이다.

     

    Jenkins 관리에서 Cridentials를 눌러준다.

     

    이어지는 화면에서 Add credentials 선택.

     

    Username과 Password에 자신의 GitHub 계정 정보를 입력한다. 아래의 ID는 적지 않아도 된다.

     

    같은 방식으로 Docker Hub 계정 정보를 이용해 크리덴셜을 생성해 준다.

     

    GitHub Webhooks

     

    다음은 젠킨스와 깃허브 웹훅을 연결하는 과정이다. 위에 등록한 깃허브 계정에 접속한 뒤에

     

    오른쪽 위의 자신의 계정을 누르고 Settings를, 이어지는 화면에서 왼쪽 가장 아래에 있는 Developer settings를 클릭해 준다.

     

    이어서 위 화살표대로 눌러 새로운 토큰을 생성한다.

     

    알아보기 쉬운 이름으로 선택해 준 뒤, 귀찮으니까 Expiration을 없애버리자.

     

    이어서 아래의 세 개 스코프를 선택해 주면 된다. 다음은 아래로 내려서 Generate token.

     

    하면 위와 같이 토큰이 생성된 것을 확인할 수 있다. 토큰은 지금 아니면 다시는 볼 수 없으므로 복사해서 어딘가 보관하자.

     

    이어서 위에서 생성한 GitHub Cridential의 비밀번호를 해당 토큰으로 변경해 주자.

     

    2021년 이후로 깃허브에선 비밀번호 기반 인증을 지원하지 않기 때문에 비밀번호만 가지고는 안 되는 경우가 생길 수 있기 때문이다.

     

    다음은 젠킨스와 webhook으로 연결하려는 프로젝트에 들어가 오른쪽의 세팅을 클릭한다.

     

    계속해서 Webhooks를 선택하고 Add webhook.

     

    이어서 Payload URL에 

    http://<젠킨스용 EC2의 탄력적 IP 주소>/github-webhook

    형식으로 값을 넣어준다.

     

    웹훅을 추가했다면 다시 젠킨스로 돌아와 Jenkins 관리 > System을 클릭한다.

     

    아래로 내리다 보면

     

    GitHub메뉴가 나온다. 여기서 위 사진의 박스 안에 있는 Add GitHub Server를 클릭한 뒤

     

    Name에는 식별하기 편한 이름을, URL은 기본 설정을 그대로 입력하고 

     

    Credentials에서 Add, Jenkins를 선택한다.

     

    kind를 Secret text로 선택한 뒤 Secret에 방금 생성한 깃허브 토큰을 입력한 뒤 Add를 누른다.

     

    이어서 생성한 Credential을 선택한 뒤 Test connection을 눌러 제대로 연결이 되면 성공이다.

     

    SSH Servers

     

    여기까지 됐으면 다른 화면으로 넘어가지 말고 스크롤을 아래로 내려 SSH Servers를 찾는다.

     

    사진에 적힌 번호 순서대로 작성한 뒤 5번에서 고급을 누른다.

     

    나오는 화면에서 위와 같이 Key를 입력해 주면 되는데,

     

    여기서 Key는 배포용 EC2로 접근할 때 사용하는 pem파일을 열면 확인할 수 있다.

     

    혹은 해당 파일이 있는 위치에서 터미널을 연 뒤 아래와 같이 입력해도 된다.

    cat <배포용 EC2 pem 파일 이름>.pem

    여기까지 진행한 후 별도의 창을 열어 AWS > EC2 > 인스턴스에 접근한다.

     

    이어서 배포용 EC2를 선택하고, 보안 탭 > 보안그룹 클릭한다.

     

    계속해서 인바운드 규칙 편집을 누른 뒤, 

     

    규칙 추가 > SSH > 젠킨스용 EC2의 탄력적 IP를 입력한 뒤 저장한다.

     

    다음은 GitHub webhook IP에 대한 인바운드 규칙 지정이다. 이번엔 젠킨스용 EC2의 인바운드 편집을 연 뒤

     

    위와 같이 세 개의 IP 주소를 8080 포트로 허용해 준다. 각 아이피는 아래와 같다.

    192.30.252.0/22
    185.199.108.0/22
    140.82.112.0/20

    이제 모든 설정이 끝났으니 젠킨스 창으로 넘어와서 

     

    Test Configuration을 누르면 성공하는 것을 확인할 수 있다.

     

    여기까지의 설정을 모두 저장하기 위해 왼쪽 하단의 저장 버튼을 눌러주면 젠킨스와 깃헙 웹훅 설정은 끝난다.

     

    Gradle Configuration

     

    자동으로 배포할 Gradle의 버전과 젠킨스에서 사용할 Gradle 버전을 맞추는 세팅이다.

     

    Jenkins 관리 창으로 넘어와 이번엔 Tools로 들어간다.

     

     

    아래로 스크롤을 내리다 보면 Gradle installations라는 영역이 보이고,

     

    위와 같이 순서대로 입력하고 자신의 프로젝트가 사용하는 Gradle 버전을 추가해 주면 된다.

     

    여기까지 해서 젠킨스 설정의 대략 절반이 끝났다.

     

    이어서 적고 싶지만 생각보다 체력소모가 심해서 글을 하나 더 나누어야 하겠다.

     

    대체 원글 주인은 어떻게 한 번에 적은 걸까..

     

    어쨌거나 다음 글에서는 젠킨스에서의 프로젝트 세팅, 빌드 및 빌드 후 조치에 대해 정리하겠다.

    반응형
    댓글
    공지사항
    최근에 올라온 글
    최근에 달린 댓글
    Total
    Today
    Yesterday
    링크
    «   2024/11   »
    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
    글 보관함