Hudson 설정과정
설정과정
http://192.168.212.76:9090/hudson 으로 접속하여 새로운 job 생성
build a maven2/3 project 선택 후 디폴트 svn, maven_build, ant_build설정 -> repos 프로젝트생성
svn항목에는 사용할 svn주소 입력
*svn://192.168.212.76/repository
Maven_build 항목에는 설치한 maven_home입력과
Pom.xml 위치 지정, goals지정(package)을 해 준다.
Ant_build 항목에는 설치한 ant_home입력과
Ant_build.xml 파일 위치를 지정 해 준다.
복사할 기본 프로젝트인 repos라는 프로젝트 생성완료
이후 자동화를 위해 리눅스 CLI상에서 repos프로젝트를 새로운 job이름으로 복사 한 후 변경 된svn주소, 배포서버주소등을 수정한 후 Hudson cli를 사용하여 Hudson 재시작, Hudson 빌드를 수행하도록 함
자동화를 위한 부분은 쉘 스크립트로 작성하여 원격지에서 호출 할 수 있도록 설정 함.
api를 사용하기위한 xml파서를 자바프로젝트로 작성함.
해당 url을 호출하여 리턴받은 xml의 엘레먼트들을 자바객체로 사용할 수 있도록 담아주는 자바어플리케이션 입니다.
재시작, 빌드 API
재시작
url : http://127.0.0.1/hudson/restart
url을 Hudson_cli를 사용해 콘솔에서 호출 함.
빌드
url : http://127.0.0.1/hudson build job_name
url을 Hudson_cli를 사용해 콘솔에서 호출 함.
쉘 스크립트
Hudson
Hudson의 자동화를 위해 작성 된 스크립트임.
hudsonMakeJob.sh
cp 명령을 통해 입력받은 인자값의 job을 repos job에서 복사하여 생성 함.
입력값 : job_name
Useage : ./hudsonMakeJob.sh job_name
#!/bin/bash
HUDSON_HOME=/root/.hudson
argc=$#
argv0=$0
argv1=$1
cp -R $HUDSON_HOME/jobs/repos/ $HUDSON_HOME/jobs/$argv1
exit 0
hudsonSetting.sh
sed 명령을 통해 입력받은 값으로 ant_build.xml, config.xml 파일의 내용을 바꾸어 줌
파일의 내용들을 바꾼후 허드슨 재시작 cli를 요청 함
입력값 : job_name, dest_server_ip
Usage : ./hudsonSetting.sh job_name dest_server_ip
#!/bin/bash
HUDSON_HOME=/root/.hudson
argc=$#
argv0=$0
argv1=$1
argv2=$2
sed -i "s/192.168.212.58/$argv2/g" $HUDSON_HOME/jobs/$argv1/ant_build.xml
sed -i "s/repos/$argv1/g" $HUDSON_HOME/jobs/$argv1/ant_build.xml
sed -i "s/repos/$argv1/g" $HUDSON_HOME/jobs/$argv1/config.xml
java -jar /root/kiat/hudson/hudson-cli.jar -s http://192.168.212.76:9090/hudson/ restart
exit 0
hudsonBuild.sh
Hudson cli명령을 통해 입력받은 Hudson job의 빌드를 수행 함
입력값 : job_name
Usage : ./hudsonBuild.sh job_name
#!/bin/bash
HUDSON_HOME=/root/.hudson
#echo $SVN_HOME
argc=$#
argv0=$0
argv1=$1
java -jar /root/kiat/hudson/hudson-cli.jar -s http://192.168.212.76:9090/hudson build $argv1
exit 0
Subversion
svnMakeProject.sh
입력받은 값으로 svn repository를 생성 함
입력값 : job_name
Usage : ./svnMakeProject.sh svn_name
#!/bin/bash
SVN_HOME=/ssw/repository
argc=$#
argv0=$0
argv1=$1
svnadmin create $SVN_HOME/$argv1
exit 0
svnUserAdd.sh
입력값 : job_name, user_id, user_pw
Usage : ./svnUserAdd.sh svn_name user_id user_pw
#!/bin/bash
SVN_HOME=/ssw/repository
argc=$#
argv0=$0
argv1=$1
argv2=$2
argv3=$3
echo "$argv2 = $argv3" >> $SVN_HOME/$argv1/conf/passwd
exit 0
svnSetting.sh
입력값 : job_name
Usage : ./svnSetting.sh svn_name
#!/bin/bash
SVN_HOME=/ssw/repository
argc=$#
argv0=$0
argv1=$1
# anon-access
sed -i "s/\# anon\-access \= read/anon\-access \= read/g" $SVN_HOME/$argv1/conf/svnserve.conf
# auth-access
sed -i "s/\# auth\-access \= write/auth\-access \= write/g" $SVN_HOME/$argv1/conf/svnserve.conf
#password-db
sed -i "s/\# password\-db \= passwd/password\-db \= passwd/g" $SVN_HOME/$argv1/conf/svnserve.conf
exit 0
Env
배포서버의 환경설정을 위한 스크립트 입니다.
설치 환경
jboss : /ssw/jboss-eap-5.2
deploy : /ssw/domains/template
cubrid : /dbms/CUBRID
jboss는 root유저로 서비스되며
cubrid는 cubrid유저로 서비스 됩니다.
jboss의 실행을 위해서는 /ssw/domains/template/env.sh파일의 수정이 필요하며
JBOSS_USER 부분과 SERVER_IP 부분에 대한 수정이 필요합니다.
Cubrid의 실행을 위해서는 /etc/hosts파일의 수정이 필요하며
Server_ip nodename 이 추가 되어야 합니다.
Database_name의 데이터베이스를 만들고
Init.sql 이나 update.sql파일을 실행하여 create, insert문을 수행합니다.
위의 작업은 아래의 startup.sh 스크립트 파일이 일괄 수행하게 됩니다.
startup.sh
입력값 : database_name
Usage : ./startup.sh database_name
#!/bin/bash
# adjustEnv.sh
nodeName=$(uname -n)
ipAddr=$(ifconfig | grep "inet" | awk '{print $2}' | sed 's/^.*://g' | head --lines=1)
varHost=$(grep $(uname -n) /etc/hosts|wc -l)
varZero=0
if [ "$varHost" -eq "$varZero" ]
then
echo "$ipAddr $nodeName" >> /etc/hosts
fi
# JBOSS_USER
sed -i "s/JBOSS\_USER\=jboss/JBOSS\_USER\=root/g" /ssw/domains/template/env.sh
sed -i "s/\.\/env/\/ssw\/domains\/template\/env/g" /ssw/domains/template/startNode.sh
# DOMAIN_IP
sed -i "s/DOMAIN\_IP\=192.168.212.200/DOMAIN\_IP\=$ipAddr/g" /ssw/domains/template/env.sh
# tail
sed -i "s/tail \-f/\# tail \-f/g" /ssw/domains/template/startNode.sh
# startUp.sh
su - cubrid -c "cubrid service start;exit"
argc=$#
argv0=$0
argv1=$1
if [ ! -f .createdb ]
then
su - cubrid -c "cubrid createdb "$argv1";exit"
touch .createdb
fi
su - cubrid -c "cubrid server start "$argv1";exit"
cp *.sql /dbms/CUBRID/
chmod 777 /dbms/CUBRID/*.sql
if [ ! -f .init ]
then
su - cubrid -c "csql -i init.sql -u dba "$argv1";exit"
touch .init
else
su - cubrid -c "csql -i update.sql -u dba "$argv1";exit"
fi
/ssw/domains/template/log/nohup/template.out
varJboss=$(ps -ef|grep jboss|grep org.jboss.Main|grep -v grep | awk '{print $2}')
kill -9 $varJboss
/ssw/domains/template/startNode.sh
exit 0
'developerworks > WAS' 카테고리의 다른 글
APM Scouter CSR 적용 (0) | 2016.09.21 |
---|---|
Hudson 설치 과정 (0) | 2013.05.24 |
BigBlueButton 설치 및 설정.. (0) | 2013.05.20 |
apache2와 jboss6의 연동.. using ajp13:8009 (0) | 2013.03.13 |
mod_jk.so를 통해 apache2와 tomcat7의 연동 (0) | 2013.03.06 |