ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [CI/CD 구축] EC2에 젠킨스 설치하기 - Linux 20.04
    Project/CICD 2022. 2. 14. 16:29
    728x90
    반응형

    [Project workflow]

    EC2로 윈도우/리눅스 EC2 생성

    Mac에서 EC2 접속 test

    (테스트 빌드용) 로컬 젠킨스 서버 배포

    젠킨스 프로젝트 생성 및 빌드 코드 짜기

    EC2 젠킨스 설치 및 배포

    배포된 젠킨스 서버와 깃헙 웹훅 연결

    코드 merge시 EC2에서 빌드되는지 테스트


    Ubuntu에 젠킨스 설치하는 방법을 처음에 찾을 때는 아무리 찾아도 yum을 이용하여 설치하는 방법밖에 안 나왔다. 하지만 ubuntu 20.04 버전은 yum 설치가 안된다 (지원하는 패키지 목록은 이 사이트를 참고하면 된다)

    그래서 20.04를 검색어에 포함시켰더니 설치하는 방법을 금방 찾았다. 더더군다나 공식문서에 아주 친절하게 설치 방법이 나와있음.. (다시한번 되새기는 공식문서의 중요성)

     

    공식문서는 설치하고 나서 찾았고, 구글에 ubuntu jenkins치니까 바로 나오더라. 다음은 내가 설치한 방법.

     

    Jenkins 설치

    1. Java 8 설치

    $sudo apt-get update
    $sudo apt install openjdk-8-jdk openjdk-8-jre

    * Java가 잘 설치되었다면 다음 명령어로 버전을 확인할 수 있다 (--version아님 주의).

    $java -version

     

    2. 그 다음 레포지토리 리스트를 텍스트 편집기로 연다.

    $sudo vim /etc/apt/sources.list

    3. 맨 마지막 줄에 젠킨스를 추가한다 (deb https://pkg.jenkins.io/debian-stable binary/)

    4. 리스트를 저장하고 다음 명령어를 수행하면 GPG error라고 오류메세지가 나오는데, 여기서 퍼블릭 키를 찾는다.

    $sudo apt-get update

    오류메세지에서 NO_PUBKEY FCEF 뒤에 있는 부분이 퍼플릭 키이다.

     

    5. 다음 명령어를 실행하면 젠킨스 설치가 완료된다.

    $sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys [퍼블릭키]
    $sudo apt-get install -y jenkins

    *젠킨스가 잘 돌아가는지 확인하기 위해서는 다음 명령어를 통해 실행중인 프로세스 리스트에서 젠킨스를 찾으면 된다.

    $ps -ef | grep jenkins

     

    EC2에서 젠킨스 포트 열어주기

    1. EC2인스턴스에서 보안에 들어간다

    2. 보안 그룹을 클릭한 후 인바운드 규칙 편집을 클릭한다.

    3. 규칙 추가를 누른 후 다음과 같이 정보를 입력한다.

    - 유형: 사용자 지정 TCP

    - 포트 범위: 8080

    - 소스: 위치 무관-IPv4

    4. 브라우저를 통해 EC2의 public IP:8080으로 접속한다.

    5. 다음과 같은 화면이 뜨면 쉘에 다음 명령어를 입력해 초기 비밀번호를 찾아서 입력해준다.

    $cat [초기 비밀번호 주소]

    Permission denied가 뜨면 cat 앞에 sudo를 붙여주면 된다(만능 sudo)

    갑자기 이 짤이 생각났다

    6. Customize Jenkins 화면이 뜨면 Install suggested plugins를 클릭해서 필요한 플러그인을 설치해 준다.

    7. Create First Admin User 화면이 뜨면 계정을 생성해준다.

    8. Instance Configuration 화면이 뜨면 Save and Finish를 눌러준다.

    * 앞으로도 계속 같은 TCP포트를 사용할 것인지 물어보는 과정이다.

     

    EC2 포트포워딩

     현재 상태에서 젠킨스로 접속하려면 public IP:8080이라고 적어야만 들어갈 수 있다. 그래서 브라우저로 EC2 주소만 넣으면 바로 8080포트로 리다이렉트 되도록 설정할 수 있다.

     방법은 아주 간단하다. 인바운드 규칙에서 HTTP에 해당하는 80번 포트를 열어주고(방법은 8080 포트 열었을 때랑 동일) 다음 쉘 명령어로 포트포워딩을 해주면 된다

     

    $sudo su #root 계정으로 접속
    $iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

     

    그러면 이제 브라우저에 Public IPv4 DNS 주소만 넣어도 바로 젠킨스가 열린다.

     너무 간단해서 감동적...

    728x90
    반응형

    댓글