ubuntu linux 18.04에 spring 프로젝트를 jenkins로 배포 관리해보려고 한다.
1. jdk 설치
1 2 3 4 5 6 7 | $ sudo apt-get update $ sudo apt-get install openjdk-8-jdk $ sudo apt-get install openjdk-8-jre $ java -version $ javac -version | cs |
2. 톰캣 설치
1 2 3 4 5 6 7 8 9 10 11 12 | -- download tomcat tar file $ wget https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.53/bin/apache-tomcat-8.5.53.tar.gz -- unzipped tomcat tar file $ tar xvf apache-tomcat-8.5.53.tar.gz -- make custom folder $ cd /home/ubuntu $ mkdir myJenkins -- move tomcat folder to custom folder $ mv apache-tomcat-8.5.53 /home/ubuntu/myJenkins | cs |
[톰캣 시작과 로그 확인하기]
1 | $ /home/ubuntu/myJenkins/apache-tomcat-8.5.53/bin/startup.sh; | cs |
[톰캣 기본 페이지 접속 확인]
1 | http://IP:8080/ | cs |
3. git 설치
1 2 3 4 5 | $ sudo apt update $ sudo apt install git $ git --version | cs |
[git 경로]
1 2 3 | which git . /usr/bin/git | cs |
4. 젠킨스 설치(톰캣 경로 webapps 아래로 넣어 설치)
1 2 3 | $ wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war $ cp -rv jenkins.war /home/ubuntu/myJenkins/apache-tomcat-8.5.53/webapps | cs |
[톰캣 재시작]
1 2 3 | $ /home/ubuntu/myJenkins/apache-tomcat-8.5.53/bin/shutdown.sh; $ /home/ubuntu/myJenkins/apache-tomcat-8.5.53/bin/startup.sh; | cs |
[젠킨스 페이지 확인]
1 | http://IP:8080/jenkins | cs |
젠킨스 초기화면이 나온다면 성공
[젠킨스 초기비밀번호 확인]
1 | cat /root/.jenkins/secrets/initialAdminPassword | cs |
초기비밀번호로 나온 값을 넣어주고 기본으로 설치하여 진행해준다.
5. 메이븐 설치
1 2 3 4 5 | $ sudo apt update $ sudo apt install maven $ mvn -version | cs |
6. 젠킨스 내부셋팅
메이븐까지 설치완료되었다면 젠킨스 내부설정을 해주자.
- 플러그인 설치
Jenkins관리 > 플러그인 관리 > git, maven integration, Deploy to container plugin 설치한다.
다음으로 Jenkins 관리 > Global Tool Configuration으로 들어가
jdk, git, maven 경로를 전역으로 잡아준다.
해당 경로는 아래와 같다.
1 2 3 4 5 | [jdk 경로] /usr/lib/jvm/java-8-openjdk-amd64 [git 경로] /usr/bin/git [메이븐 경로] /usr/share/maven | cs |
7. 톰캣 내부 셋팅
젠킨스 내부설정까지 완료되었다면
설치된 톰캣의 내부 설정을 해주자.
1 2 3 4 5 | [톰캣 context.xml] Context 태그 안에 추가 <Resources cachingAllowed="true" cacheMaxSize="100000" /> | cs |
1 2 3 4 5 6 7 | [톰캣 tomcat-users.xml] tomcat-users 태그 안에 아래 유저정보 추가 <role rolename="manager-gui"/> <role rolename="manager-script"/> <user username="admin" password="0000" roles="manager-gui, manager-script"/> | cs |
1 2 3 4 5 6 7 8 | [톰캣 webapps/manager/META-INF/context.xml 수정] $ vi /home/ubuntu/myJenkins/apache-tomcat-8.5.53/webapps/manager/META-INF/context.xml Context 태그 안의 주석처리하기 <Context antiResourceLocking="false" privileged="true" > <!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> --> </Context> | cs |
8. 프로젝트 만들고 빌드하기
Build Now를 클릭하고 Console Output으로 결과를 확인한다.
빌드가 성공되고 Deploy 된것을 확인할 수 있다.
http://ip주소:8080/SpringProject/
#. 기타
사실 셋팅하기전 윈도우환경에서 미리 젠킨스를 구성해서 빌드 배포 해보았는데 잘되어서
리눅스에서도 별 문제없이 구동될거라고 생각했다.
본인은 AWS EC2 중 가장 낮은 t2.nano로 서버를 구동했는데
java, maven, jenkins 모두 올려보았으나 메모리가 부족하여
서버속도가 너무 느렸고 java heap size 부족하다는 오류, maven 컴파일 오류 등
많은 오류를 접했다.
로컬 서버환경과 ec2 서버환경을 고려하지 못했던 것이었다...
일단 돈이 없는 나에게 가장 낮은 t2.nano서버 유형으로 ci deploy하길 원했고
여러설정을 변경해서 올리기는 성공했다.
하지만 젠킨스로 빌드속도가 평균 1~2분 걸리는 것이 10분이 넘게 걸리고
동시에 두개의 프로젝트를 운용하기 어렵다는 것을 확인해
t2.micro로 서버를 교체했다.
아래는 t2.nano로 서버를 구동시킬때 설정해줬던 구성이다.
1 2 3 4 5 | [java heap size 늘리기] $ sudo vi ~/.bashrc $ alias java='java -Xmx512m' | cs |
1 2 3 4 5 6 7 8 9 | [maven size 늘리기] set MAVEN_OPTS="-Xmx512m" $ sudo vi ./bash_profile export MAVEN_OPTS="-Xmx512m" $ . ./bash_profile | cs |
1 2 3 | [디버깅을 위해 톰캣 시작과 동시에 로그 확인하기] /home/ubuntu/myJenkins/apache-tomcat-8.5.53/bin/startup.sh; tail -f /home/ubuntu/myJenkins/apache-tomcat-8.5.53/logs/catalina.out | cs |