오라클 클라우드에 Jenkins 젠킨스 설치하기
1인분 몫을 제대로 해내는 주니어 개발자로 성장하기 위해 여가 시간에 별도로 사이드 프로젝트를 진행하고 있다. (이 사이드 프로젝트에 대해서는 조만간 1차 개발이 완료되면 후기글을 따로 쓰려고 한다.)
나는 현재 사이드 프로젝트의 서버로 오라클 클라우드에 우분투를 설치하여 사용하고 있으며, 이번에 처음으로 CI/CD 구축을 위해 오라클 클라우드 서버에 젠킨스를 셋팅해보았다. 이 과정에서 서버에 대한 지식이 없어 조금 헤맸던 부분이 있었는데 이 부분을 잊지 않고자 후기글에 앞서 따로 먼저 정리해본다.
0. 우분투에 젠킨스 설치하기
https://gksdudrb922.tistory.com/195
[Ubuntu] Jenkins 설치
Jenkins Jenkins는 Java로 빌드 된 오픈 소스 CI (Continuous Integration) 및 CD (Continuous Delivery) 도구이며, Jenkins는 기본적으로 소프트웨어 프로젝트를 빌드, 테스트 및 배포하기 위해서 사용한다. 또한..
gksdudrb922.tistory.com
먼저 젠킨스 셋팅은 위의 블로그를 참고했다.
위의 블로그를 참고하여 우분투에 젠킨스를 설치하고 브라우저 주소창에 "http://서버URL:포트번호"를 입력했는데 전혀 접속이 되지 않았다. 그래서 문제를 해결 하기 위해 구글링을 시작했다.
그리고 구글링을 통해 여러 사이트의 글을 짜깁기한 결론은 다음과 같았다 : 외부에서 젠킨스에 접속할 수 있도록 반드시 서버 설정을 해줘야 한다.
리눅스와 서버에 대한 지식과 경험이 있는 사람이라면 당연히 처리했을 문제인데 나는 해당 분야에 대한 지식과 경험이 전무했기에 제대로 생각하지 못했던 부분이었다. 이제 원인을 알았으니 해결을 해야지. 또 여러 번의 구글링을 통해 내가 해결한 방법은 아래와 같다.
참고한 블로그:
https://devwithpug.github.io/database/oci-mariadb/
[오라클 클라우드] 외부 접속이 가능한 MariaDB 서버 구축기
1. 개요
devwithpug.github.io
https://lindarex.github.io/ubuntu/ubuntu-ufw-setting/
우분투(Ubuntu) 환경에 방화벽(UFW) 설정하기
방화벽(UFW, uncomplicated firewall)은 데비안(debian) 계열 및 다양한 리눅스(linux) 환경에서 작동되고, GPL(GNU General Public License)이 적용되며 파이썬(python)으로 개발되었습니다.
lindarex.github.io
1. 오라클 클라우드 서비스에 인바운드 규칙 추가해주기
오라클 클라우드->네트워킹->가상 클라우드 네트워크->보안 목록 세부정보->수신 규칙에 들어가서 젠킨스 서버 포트를 수신 규칙에 추가해준다.
나는 젠킨스 서버 포트 번호로 10001번을 사용했기 때문에 대상 포트 범위에 포트 번호 10001을 입력했다.
2. 운영체제 방화벽에 인바운드 규칙 추가해주기
그 다음 아래 명령어를 이용하여 우분투 서버 방화벽에 인바운드 규칙을 추가해주었다.
여기서 ens3은 네트워크 인터페이스의 한 종류이다.
$ sudo iptables -I INPUT -i ens3 -p tcp --dport 10001 -m state --state NEW,ESTABLISHED -j ACCEPT
앞서 오라클 클라우드 서비스에서 수신 규칙을 추가한 것은 인터넷 또는 모뎀에서 허용한 인바운드 규칙인 것이고 이번에 하는 것은 운영체제의 방화벽에서 인바운드 규칙을 설정해주는 것이다.
이렇게 우분투 서버 방화벽에 인바운드 규칙을 추가해주고 iptables의 목록을 보면 10001번 포트에 대한 인바운드 규칙이 추가되었음을 확인할 수 있다.
3. 운영체제 방화벽 포트 열어주기
이제 마지막으로 아래 명령어를 이용하여 우분투 서버 방화벽의 포트를 열어준다.
$sudo ufw allow 10001/tcp
나는 방화벽 ufw 를 사용하기 때문에 ufw 포트 허용 명령어로 젠킨스의 포트 번호인 10001 을 열어주었다.
4. 성공
드디어 젠킨스에 접속할 수 있게 되었다!