문서의 이전 판입니다!
JENKINS_HOME
환경 변수로 설정 정보 및 빌드 정보 실행 디렉토리를 지정할 수 있다.java -jar jenkins.war # or nohup java -jar jenkins.war > $LOGFILE 2>&1
--httpPort=$HTTP_PORT
--httpsPort=$HTTP_PORT
--prefix=$PREFIX
: context path 처럼 URL 앞에 붙는 값-XX:PermSize=512M -XX:MaxPermSize=2048M -Xmn128M -Xms1024M -Xmx2048M
/etc/sysconfig/jenkins
파일에서 JVM 옵션 등 변경 가능/var/log/jenkins/jenkins.log
에 로그 남음UnknownHostException
발생시에 Jenkins is Experiencing UnknownHostException – CloudBees Supporthttp://jenkins-server:port/cc.xml
: jenkins-server:post
부분을 대체하고 출력되는 XML을 받아 처리하면 모니터링 툴을 만들 수 있다. CruiseControll용 모니터링 툴과 동일한 스펙이므로 CC용 툴을 사용해도 된다.http://jenkins-server:port/whoAmI
에 대해 302 응답을 정상 응답으로 간주하면 된다.**/build/test-results/*.xml
형태로 지정한다.authenticated
로 지정하면 로그인 사용자에 대한 권한을 의미한다.DUMP="jenkins_data.`date +%Y-%m-%d`.tar.gz" JENKINS_HOME=/home/us/jenkins/jenkins-data nice -n 19 tar --exclude-from jenkins_backup_exclusions -C $JENKINS_HOME -zcf $DUMP .
jenkins_backup_exclusions
config-history/* jobs/*/workspace* jobs/*/builds/*/archive plugins/*/* plugins/*.bak war cache
jobs/*/builds logs
Jenkins 관리 → 시스템 로그
에서 신규 로그 기록기 추가
에서 플러그인의 패키지를 로거로 지정해준다. 정도로 주면 된다.
==== FindBugs Plugin ====
* Jenkins FindBugs Plugin
* 버그 종류와 갯수에 따라 빌드를 실패로 간주하게 설정함으로써 점진적으로 코드 품질을 높여갈 수 있다.
==== Log Parser Plugin ====
* Jenkins Log Parser Plugin
* build의 console log를 파싱하여 등장하는 로그 메시지에 따라 error,warning 등을 발생시킬 수 있다.
* 사용예 Lombok Field 지정이 올바른지 검사
==== Build User Vars Plugin ====
* Build User Vars Plugin
* 빌드릴 실행한 사용자 정보를 환경 변수로 만들어주는 플러그인
==== Google Login ====
* Google Login 구글을 통한 인증
===== JOB =====
==== Parameterized Build ====
* Parameterized Build
* 직접 빌드 실행시 파라미터를 주어 실행할 수 있다.
* 원격으로도 파라미터를 주어 빌드를 실행할 수 있다.
==== Execute Shell 의 결과로 다른 Parameterized Build 호출 ====
* Execute Shell 등의 결과로 나온 파라미터 값을 가지고 다른 Parameterized Build를 호출하려면 해당 key=value 값을 Java Properties 파일 형식으로 셸에서 생성해 둬야 한다.
* Passing variable from shell script to jenkins - Stack Overflow
<code sh>
echo DATE=$(date +%Y-%m-%d) > env.properties
</code>
* 그리고서, 해당 파일
env.properties 를 빌드 후 조치 → Trigger parameterized build on other projects 에서 Parameters from properties file 에 지정해준다.
* 만약, Jenkins 자체에 미리 지정된 환경 변수를 파라미터로 넘기려면 Predefined Parameters 로 충분하다.
==== Process Kill ====
* Jenkins Build에서 tomcat등을 실행해 띄워 두려고 하면 자꾸 프로세스가 죽는다.
* Jenkins Build는 빌드에서 실행한 모든 프로세스를 기본으로 죽인다.
* https://wiki.jenkins-ci.org/display/JENKINS/ProcessTreeKiller
* 죽이기를 원하지 않는 프로세스는 프로세스를 띄울 때 환경변수
BUILD_ID를 Jenkins가 지정한 것이 아닌 엉뚱한 값으로 바꿔주면된다. Jenkins는 프로세스의
BUILD_ID 환경 변수 값을 보고 프로세스를 죽이기 때문이다.<code sh>
BUILD_ID=무언가JENKINS BUILD_ID가 아닌 어떤값
./your_hudson_script_that_starts_tomcat.sh
</code>
=== Jenkins build log 파일에서 문자열 검색 ===
* 특정 날짜의 build 로그 파일들 중에서만 문자열 검색을 하고 싶을 때
* see find<code>
find . -name log -newerct yyyy-MM-dd ! -newerct yyyy-MM-dd -exec grep -Hni '검색어' {} \;
</code>
===== External Job =====
* Jenkins 서버가 아닌(master, slave 모두 아닌) 전혀 다른 외부 서버에서 실행된 Job을 Jenkins 에서 모니터링할 수 있다.
* 단, 해당 서버에서 특정 작업을 실행할 때 Jenkins 서버로 실행 정보를 쏴줘야 한다.
* Monitoring external jobs - Jenkins - Jenkins Wiki
* monitoring - Setup Jenkins to monitor external job
<code sh>
# 외부 모니터링 툴 설치
sudo apt-get install jenkins-external-tool-monitor
# 외부 Job 실행, my-jenkins 는 Jenkins Master Server, nightly-backup 은 external job 이름
JENKINS_HOME=http://my-jenkins/ java -jar jenkins-core-*.jar nightly-backup ./backup.sh –nightly /home
</code>
===== 기타 =====
* How to get the job name on a groovy dynamic parameter in Jenkins
* Jenkins git plugin이 슬래시(slash, /) 들어간 브랜치 이름을 인식 못하는 문제가 있는 듯 함.
* SSH Slave Plugin의 경우
stderr / Standard Error'' 스트림을 제대로 전달해주지 못하는 문제가 있어보임.
* Administering Jenkins - Jenkins - Jenkins Wiki