설치
Scroll ignore |
---|
환경
젠킨스는 자바로 개발되었으며 서블릿 컨테이너 위에서 구동된다.
...
전용 패키지로 설치해도 되지만 개인적으로 선호하는 방법은 톰캣이나 제티(Jetty)같은 서블릿 컨테이너를 설치하고 이 위에 war 파일로 구동하는 방법이다.
자바로 개발 되었으므로 JRE 가 필요하며 JRE 는 OpenJDK 보다는 오라클이 배포하는 JRE 를 사용하기를 권장한다. 톰캣을 설치한 독자라면 JRE 가 이미 설치되어 있을 것이다.
설치되지 않은 독자는 톰캣 설치 부분을 참고하여 설치하자.
Note |
---|
빌드는 CPU와 메모리, 디스크를 많이 소비하는 작업이다. 지속적인 통합 서버는 동시에 여러 개의 빌드를 수행하고 결과물을 갖고 있어야 하므로 이슈 관리나 버전 관리, 아티팩트 관리보다 더 많은 하드웨어 자원이 필요하다. 별도의 서버가 있다면 젠킨스 전용으로 분리시키고 그럴 여유가 없다면 젠킨스를 구동하는 WAS 에 메모리와 디스크를 여유있게 할당하도록 하자. |
젠킨스 홈 디렉토리
젠킨스는 데이타 베이스를 사용하지 않고 모든 설정 파일 및 빌드 데이타를 파일로 관리한다.
...
이런 용도로 적당한 디렉터리는 /var 디렉터리이다. 리눅스 설치시에 /var 에 용량을 많이 할당해야 하는 이유도 이런 이유이다.
먼저 관리자 권한으로 젠킨스를 구동할 계정을 생성하자. 계정명은 jenkins 라고 가정하겠다.
...
이제 젠킨스 사용자로 로그인하여 나머지 설치 작업을 진행하자.
먼저 톰캣을 설치해야 한다. 톰캣 버전은 전 장에서 설치한 것과 동일한 버전을 설치하면 된다. 먼받아 놓은 톰캣이 있다면 압축을 해제해 주고 없다면 새로 받자.
톰캣 공식 사이트(http://tomcat.apache.org/download-70.cgi)에서 7.x 버전의 마지막 버전을 다운로드한다. 현재 버전은 7.0.54 이다.
다운로드 받은 톰캣의 압축을 해제한다.
Panel tar zxvf apache-tomcat-7.0.54.tar.gz
어떤 용도의 톰캣인지 알 수 있게 심볼릭 링크를 건다.
Panel ln -s apache-tomcat-7.0.54 jenkins
압축이 해제된 디렉터리로 이동한다.
Panel cd jenkins
젠킨스는 많은 자원을 필요로 한다. VM 에 별도의 옵션을 주기위해 bin/setenv.sh 파일을 만들고 다음 내용을 추가하자.
Panel #!/bin/sh
# VM의 초기 크기
MIN_MEMORY="512m"
# VM 의 최대 크기. 큰 어플리케이션을 구동하거나 시스템에 메모리 여유가 있다면 늘리는 것을 권장한다.
MAX_MEMORY="2048m"
# permanent space 영역의 크기를 지정한다.
MAX_PERM_SIZE="512m"
# 최종 JVM 옵션
JAVA_OPTS="-Xms${MIN_MEMORY} -Xmx${MAX_MEMORY} -XX:MaxPermSize=${MAX_PERM_SIZE} ${JAVA_OPTS}"위는 예시일 뿐이며 하드웨어의 자원에 따라 적절하게 가감하자.
conf/server.xml 을 설정한다.
Panel <Server port="8005" shutdown="SHUTDOWN">
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/>
<!-- <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />-->
</Server>
Server port=8005 : 8005 가 기본 포트이지만 한 서버에 여러 톰캣을 구동했을 경우 포트를 변경해 주어야 한다.
Connector port=8080 : 8080이 기본 포트이지만 마찬 가지로 다른 톰캣이나 서비스가 있다면 변경하자. 변경시 SSL 이 사용하는 포트인 8443 도 같이 변경해야 한다. 한글이 깨지지 않기 위해서는 커텍터 설정에 URIEncoding 부분을 추가해야 한다.
Connector port=8009 : 이 책에서는 젠킨스를 아파치의 mod_proxy 로 연동할 것이므로 AJP Connector 는 주석 처리해도 된다. 혹시 mod_jk 로 연결하고 싶은 독자는 주석 처리하지 말고 AJP 커넥터를 사용하자.톰캣에 포함되어 있는 manager, host-manager 등의 기본 웹 어플리케이션은 필요가 없으니 삭제해도 된다. (선택). webapps 디렉터리는 지워지지 않게 주의하자.
Panel rm -rf webapps/*
...
젠킨스 설치
젠킨스 설치전에 수행할 중요한 설정이 있다.
...
Panel |
---|
$ echo $JENKINS_HOME /var/jenkins |
이제 젠킨스 설치 파일을 다운로드 받자. 젠킨스는 매주 버그를 수정하고 새 기능을 추가한 버전을 출시한다.
...
이를 위해서 아파치 웹서버와 젠킨스를 연동해 보자. 연결 방법은 mod_proxy 를 사용할 것이다.
conf/httpd-vhost.conf 에 가상 호스트를 추가한다. 이 파일은 RHEL 이나 CentOS 의 기본 설정 파일이 아니므로 conf/httpd.conf 의 마지막에 Include conf/httpd-vhost.conf 가 추가되어야 한다.
Panel <VirtualHost *:80>
ServerName ci.example.com
ServerAlias jenkins.example.com
CustomLog logs/ci-access_log combined
ErrorLog logs/ci-error_log
ProxyRequests Off
ProxyPreserveHost On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
</VirtualHost>
아파치 웹서버가 젠킨스 포트에 연결할 수 있게 SELinux 설정을 변경한다. 8080 이 아니라 다른 포트일 경우 해당 포트를 명시하고 -m(--modify) 옵션 대신 -a(--add) 옵션을 사용하자.
Panel semanage port -m -p tcp -t http_port_t 8080
아파치 웹서버를 재구동한다.
Panel service httpd restart
웹 브라우저로 연결하여 다음과 같은 대시보드 화면이 보이면 정상 설치된 것이다.