developerworks/WAS

Hudson 설정과정 인수인계 버전

수상한 김토끼 2013. 5. 27. 16:46

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

urlHudson_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