본문 바로가기

⭐ CICD/Elastic Beanstalk & Jenkins

Elastic Beanstalk와 Jenkins로 CI/CD 구현(3)

- java와 jenkins 설치를 해봅시다.

EC2에 접속하여 Java8 버전을 설치해보도록 하겠습니다.

참고로 Amazon Linux로 진행하신 분들은 기본으로 7 버전이 설치되어있기 때문에 8 버전 설치 후 설정을 변경해주시는 작업을 진행하셔야 합니다.

Ubuntu 18로 생성하신 분들은 아래 내용을 그대로 따라 하시면 됩니다.

- 일단 ec2에 ssh로 붙으신다음에 > 설치를 진행해 봅시다.

- sudo apt update 명령어를 사용하여 최신버전으로 업데이트 합니다.

$ sudo apt update

- java 8 버전을 설치 합니다.

$ sudo apt install openjdk-8-jdk

- 자바 설치가 끝나셨으면 java의 버전을 확인해 보도록 하겠습니다.

$ java -version

openjdk version "1.8.0_292"
OpenJDK Runtime Environment (build 1.8.0_292-8u292-b10-0ubuntu1~18.04-b10)
OpenJDK 64-Bit Server VM (build 25.292-b10, mixed mode)

- java home의 경로를 확인해 보겠습니다.

$ update-alternatives --get-selections | grep ^java

java                           auto     /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
javac                          auto     /usr/lib/jvm/java-8-openjdk-amd64/bin/javac
javadoc                        auto     /usr/lib/jvm/java-8-openjdk-amd64/bin/javadoc
javah                          auto     /usr/lib/jvm/java-8-openjdk-amd64/bin/javah
javap                          auto     /usr/lib/jvm/java-8-openjdk-amd64/bin/javap

- 2.3.5 JAVA_HOME 설정

이전 단계에서 확인 한 Java 홈 디렉토리를 JAVA_HOME으로 설정하도록 하겠습니다.

vi로 /etc/environment를 열어서 JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64"를 추가해주도록 하겠습니다.

$ sudo vi /etc/environment

JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64" 추가

- 파일을 다시 로드합니다.

$ source /etc/environment

- JAVA home이 정상적으로 설정 되었는지 확인합니다.

$ echo $JAVA_HOME

/usr/lib/jvm/java-8-openjdk-amd64

- AWS CLI 설치

$ sudo apt install awscli

- 버전 확인

$ aws --version

- Jenkins 설치

이제 Jenkins를 설치해보도록 하겠습니다.

Ubuntu Package에서는 Jenkins를 기본으로 지원하지 않기 때문에 Jenkins 저장소를 추가해주어야 합니다.

Ubuntu 18에서 Jenkins 설치

시스템 저장소에 Jenkins 저장소 키 추가

$ wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -

만약 위 명령어 입력 후 서명(signed) 관련하여 오류메시지가 발생된다면 아래 명령어로 다시 시도해줍니다.

$ wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -

sources.list에 데비안 패키지 저장소 추가

$ sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'

패키지 관리 툴 (apt) update

$ sudo apt update

Jenkins 설치

$ sudo apt install jenkins

Jenkins 상태 확인

$ systemctl status jenkins

설치가 완료되면 자동으로 시작하게 되어있지만 혹시 시작되지 않았으면 아래 명령어로 실행시켜 줍니다.

$ sudo systemctl start jenkins

- Nginx 설치

Jenkins의 기본 포트는 8080입니다. 

8080의 경우 다른 소프트웨어에서 많이 사용하는 포트이기도 하고 , URL로 접근 시 포트 입력 없이 바로 접근 가능하도록 하기 위해 웹서버를 앞에 두고 Jenkins로 프록시 되도록 하겠습니다.

Nginx 설치

$ sudo apt install nginx

Nginx 상태 확인

$ systemctl status nginx

3.2.3 Reserve Proxy 설정

Nginx 포트(80)로 접근 시 Jenkins 포트(8080)로 프록시 되도록 설정하도록 하겠습니다.

프록시를 설정하는 파일을 엽니다.

$ sudo vi /etc/nginx/sites-available/default

location의 내용을 변경해 줍니다.

proxy_pass http://localhost:8080;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;

- Nginx 재시작

$ sudo systemctl restart nginx

- Jenkins 초기 설정 

Jenkins에 접속해보도록 하겠습니다.

초기 어드민 비밀번호를 입력하라고 나오는데 Jenkins 서버에서 아래 명령어로 조회 가능합니다.

$ sudo cat /var/lib/jenkins/secrets/initialAdminPassword

시스템에서 알려주는 비밀번호를 복사한 후 입력합니다.

- AWS의 퍼블릭IP주소:80을 입력하여 Jenkins 사이트로 접근합니다.

- 위에 작업에서 복사한 비밀번호를 붙여넣어 로그인 합니다.

- 비밀번호 입력 후 아래와같이 선택하는 화면이 나옵니다.

- 기본 플러그인 설치로 진행하도록 하겠습니다. Install suggested Plugins를 선택합니다.

- 플러그인 설치중 모습입니다.

- 모든 플러그인 설치가 되면, 아래와같이 Admin 설정하는 화면이 나옵니다.

- 여기서 계정 등 입력하고 관리자 계정을 생성을 해줍니다.

- 모든 설정이 끝났습니다. 하단에 Save and Finish 버튼을 클릭하여 jenkins 설정을 마무리 합니다. 

- 모든 설정이 완료되면 Jenkins 대쉬보드로 이동합니다.

- 대쉬보드에서는 다양한 정보와 관리를 수행 할 수 있습니다.

- 다음은 파이프라인에 대해서 알아 보도록 하겠습니다.