캠핑과 개발

SVN 사용법

DEVELOPMENT/Server2014. 4. 13. 22:31

SVN 서버스 사용법



계정은 SVN 계정으로 합니다.


접속

svn://아이피/저장소명


기동 

svnserve -d -r /data/svn


종료

kill -9 프로세스번호


저장소 생성

-일반방식

svnadmin create --fs-type fsfs [저장소경로]


svnadmin create --fs-type bda [저장소경로]


초기 설정

각 저장소에서 conf 폴더로 이동 후 svnserve.conf 파일 수정 아래 부분 주석 해제

[general] 

# 익명 사용자 읽기 사용 여부

anon-access = read

# 인증 사용자 쓰기 사용 여부

auth-access = write

# 인증에 사용될 패스워드 설정 파일

password-db = passwd


사용자추가

각 저장소의 신규 사용자를 추가할때 사용하며 각 저장소의 conf 폴더로 이동하여 passwd 파일을 열어서 사용자를 추가한다.

[users] 

# svn 사용자의 비밀번호를 지정

# 사용자ID = 비밀번호

test=test123


프로세스 확인

ps -aux | grep svnserv



설치

yum install -y subversion


리눅시 시작시 자동 실행 

vi /etc/rc.d/init.d/subversion 을 이용하여 신규로 파일이 없다면 파일을 만들고 아래 내용을 입력한다.

입력이 완료되면 저장 후 종료하고 

chkconfig subversion on

명령을 입력한다.

#!/bin/bash 

. /etc/rc.d/init.d/functions

[ -x /usr/bin/svnserve ] || exit 1

RETVAL=0

prog="svnserve"

desc="Subversion server"

OPTIONS="--threads --root /home/svn"

start() {

        echo -n $"Starting $desc ($prog): "

        daemon $prog -d $OPTIONS

        RETVAL=$?

   [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog

   echo

}

 

stop() {

          echo -n $"Shutting down $desc ($prog): "

   killproc $prog

   RETVAL=$?

   [ $RETVAL -eq 0 ] && success || failure

   echo

   [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog

   return $RETVAL

}

 

case "$1" in

  start)

   start

   ;;

  stop)

   stop

   ;;

  restart)

   stop

   start

   RETVAL=$?

   ;;

  condrestart)

        [ -e /var/lock/subsys/$prog ] && restart

   RETVAL=$?

   ;;

  *)

   echo $"Usage: $0 {start|stop|restart|condrestart}"

   RETVAL=1

esac

 

exit $RETVAL

EOF



apache tomcat 5.5 이후 버전에서의 Context 생성 방법입니다.


server.xml 파일을 열게 되면 xml Tag가 Service라는 태그의 속성명 name을 찾습니다.

일반적으로는  <Service name="Catalina"> 이렇게 되어 있습니다.


먼저 context를 만들기 위한 폴더를 생성합니다.

service 태그의 name값인 Catalina 폴더를 만들고 다시 그 안에 localhost 라는 폴더를 만듭니다.

최종적으로는 위에 내용대로라면 톰캣경로/conf/Catalina/localhost가 되겠네요


그럼 이제 이하위에 파일을 생성하시면 되는데 파일은 xml 형식입니다.

root Context는 ROOT.xml을 만드시면 되고 기타 context는 컨텍스트명.xml파일로 만드시면 됩니다.


파일이 생성이 되었으면 이제 관련 설정을 파일에 추가하면 됩니다.

test라는 컨텍스트를 만들게 되면 아래와 같은 형식이 되겠습니다.


text.xml  

<?xml version='1.0' encoding='utf-8'?>

<Context path="/test"

         docBase="/home/test/web"

         debug="0"

         reloadable="true"

         crossContext="true">

<Valve className="org.apache.catalina.valves.AccessLogValve"

            directory="/home/test/logs/access"

            prefix="access."

            suffix=".log"

            pattern="common"

            fileDateFormat="yyyy-MM-dd"

            resolveHosts="false"/>

    <Resource name="jdbc/my" auth="Container"

                        type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver"

                        url="jdbc:mysql://[ip]:[port]/[db명]?zeroDateTimeBehavior=convertToNull"

                        username="[username]" password="[password]"

                        loginTimeout="10" maxActive="50"

                        maxIdle="10" maxWait="-1" />

</Context>



만약 다른 도메인이나 서브 도메인이 생성되어야 한다면

server.xml에 신규 HOST를 추가한다.

<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
    기존 도메인 내용이 있음
</Host>
<!-- 신규로 추가되는 서브 도메인 -->
<Host name="test.anaconda.pe.kr" appBase="webapps" unpackWARs="true" autoDeploy="true">
</Host>



그리고 /conf/Catalina/폴더 아래에 test.anaconda.pe.kr라는 폴더를 만든다.

/conf/Catalina/test.anaconda.pe.kr와 같은 폴더를 가진다.

그리고 그 아래에 ROOT.xml파일을 만들고 context 정보를 넣어주면 된다.

jeus 명령어


jeus5 기준으로 자주 사용되는 명령어를 정리하였다.

먼저 jeus는 tmax 계정으로 설치가 되므로 tmax 계정으로 들어가서 명령어를 실행한다.



tmax 로그인

su - tmax



jeus 종료 

jdown 배치 쉘이 존재하는 경우는 jdown를 사용하며 실제 내용은 아래와 같다

jdown 


원격 실행시 세션이 종료되면 jeus도 같이 죽으니 백그라운드로 실행한다.

nohup jboot &



jeus 시작

jboot 배치 쉘이 존재하는 경우는 jboot를 사용하며 실제 내용은 아래와 같다

jboot 



jeus admin 콘솔 들어가기

ja


콘솔 명령어

콘터이너 목록 확인

conlist


컨테이너 종료

downcon [컨테이너명] 


컨테이너 시작

startcon [컨테이너명]


컨테이너 PID 확인

pidlist


엔진 상태 확인

allenglist


depoly이된 어플리케이션 확인

applist


jndi 연결리스트 확인

jnidlist


제우스 메모리 사용 현황

meminfo



웹관리자


아이피 : http://ip:9744/webadmin

기본계정 : administrator/jeusadmin


버전확인 

jeusadmin -version


풀버전확인

jeusadmin -fullversion


라이센스확인

jeusadmin -licensedue


라이센스정보확인

jeusadmin -licenseinfo


webtobe 버전확인

wscfl -version

'DEVELOPMENT > Server' 카테고리의 다른 글

SVN 사용법  (0) 2014.04.13
Tomcat Context 생성  (0) 2014.04.10
Tomcat 특정 아이피만 접근 허용  (0) 2011.07.10
Windows7 환경에서 Tomcat 사용시 IPv6로의 인식 문제  (0) 2010.08.10
Weblogic Domain 생성 및 테스트  (0) 2010.05.28

<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="172.16.190.115,172.16.190.163,127.0.0.1"/>

server.xml 파일의 Host 태그 사이에 넣어주면 된다.


Windows7 환경에서 Tomcat 사용시 아이피를 받아 오는 부분에서 일반적인 IPv4 형식의 아이피가 아니라 IPv6로 아이피를 받아오는 문제가 생겨버렸다..
이전에 한번 이런 문제가 생겨서 찾아 봤는데 역시나 메모를 해두지 않으면 또 고생을 하게 된다..
이런 경우 해결법은 이클립스에서 톰캣 플러그인을 사용하는 경우는 다음과 같이 할수 있다.

Run As 메뉴에서 Run Configurations 메뉴로 들어가게 되면 apache Tomcat 메뉴에서 Arguments 탭 항목에 VM agument항목에 다음 항목을 추가해주면 된다.
-Djava.net.preferIPv4Stack=true

톰캣을 단독으로 설치하여 사용할 경우 
catalina.bat 파일을 열고 해당 부분을 찾아서 아래와 같이 옵션을 추가해준다.
:noJuliConfig
set JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG%

:noJuliConfig
set JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG% -Djava.net.preferIPv4Stack=true


//2014.04.22 해당 내용은 사용하지 않음
SET JAVA_OPTS=%JAVA_OPTS% -server -Xms1024m -Xmx1024m -Djava.net.preferIPv4Stack=true






'DEVELOPMENT > Server' 카테고리의 다른 글

JEUS 사용법  (0) 2013.07.12
Tomcat 특정 아이피만 접근 허용  (0) 2011.07.10
Weblogic Domain 생성 및 테스트  (0) 2010.05.28
[Weblogic]Oracle WebLogic Server 10.3 설치  (0) 2010.05.28
Mercury Mail Server 설치법  (0) 2009.11.11


도메인이란? 관리적인 개념으로서 단일 Administration Server로 관리하는 Server, Machine 및 Cluster의 그룹(인터넷 도메인 x)


- 시작 → 프로그램 → Oracle WebLogic → WebLogic Server 10gR3 → Tools → Configuration Wizard


- Create a new WebLogic domain 선택




- Generate a domain configured automatically to support to following products 선택



- User name과 User password 설정



- 서버 모드(개발, 운용) 및 JDK 설정



- 다른 옵션들 추가 설정



- 도메인 이름, 디렉토리 설정



- 도메인 생성 완료





※ html, jsp, Servlet 테스트



이 파일에는 간단한 index.html sum.jsp HelloServlet.java 파일이 들어있습니다.

Test.war 파일을 배치하여 테스트 해봅시다.


- Test.war 파일을 적당한 위치로 옮깁니다.



- 서버를 실행합니다.
시작 → 프로그램 → Oracle WebLogic → User Projects → base_domain → Start Admin Server for Weblogic Server Domain



Administration Console을 실행합니다.



- 왼쪽의 Domain Structure 트리에서 Deployments를 선택합니다.



- Install 클릭



- 배치할 파일이나 디렉토리를 설정합니다.
여기서 war, jar 파일이나 디렉토리가 선택이 되지 않으면 잘못 작성되었기 때문입니다.



- Next 클릭



- Finish 클릭.(더 자세한 설정을 하려면 Next로 더 설정할 수 있습니다)



- war 파일이 정상적으로 배치(deploy) 되었습니다.



- html 테스트



- jsp 테스트



- Servlet 테스트

 

영어 잘 하시는분은.. http://edocs.bea.com/wls/docs103/getstart/overview.html 보시길... ㅠ_ㅠ

- 설치 환경



java version "1.6.0_12"
Java(TM) SE Runtime Environment (build 1.6.0_12-b04)
Java HotSpot(TM) Client VM (build 11.2-b01, mixed mode, sharing)



설치파일을 다운로드 받습니다.



- 다운로드 받은 설치파일을 실행합시다. (Net Installer - net_server103_win32.exe)



- Welcome~ Next...



- BEA Home Directory 설정후 Next



- Net Installer 에서만 나오는 설정입니다. 설치하면서 받을 파일 저장 위치를 지정합니다.



- 기본설치, 사용자설치 선택. 아무것도 모르겠다 하면 Complete 하시면 되겠죠... 저는 Custom로 합니다.



- 설치할 프로그램을 설정합니다.
Workshop은 Eclipse를 개량하여 최적화시킨 것입니다. 저는 Eclise를 따로 쓰기 때문에 패스.



- 사용할 JDK 를 선택합니다.
WebLogic 기본으로 1.6.0_05를 설치하는데 저는 1.6.0_12를 사용하기 위해서 따로 JDK를 추가 했습니다.



- JDK 1.6.0_12 쓸거냐고 물어보는군요... 가볍게 Yes



- 설치파일을 다운로드 받습니다. Net Installer 에서만 볼 수 있습니다.



- 다운로드 받은 설치파일을 검사합니다. Net Installer 에서만 볼 수 있습니다.



- WebLogic이 설치될 디렉토리를 설정합니다.



- Node Manager Service를 설치할지 설정.



- 시작메뉴를 전체 다 보여줄지 선택.. 윈도우 관련된 것이죠.. -_-/



- 설치될 파일들을 마지막으로 확인합니다.



- 설치 시작



- 설치가 완료되었습니다.



- 간단하게 설치가 잘 되었는지 확인하기 위해서....
시작 → 프로그램 → Oracle WebLogic → WebLogic Server 10gR3 → Examples → Start Examples Server 선택



http://localhost:7001/ 잘 되면 설치 완료!



- 서버 끄기 : 시작 → 프로그램 → Oracle WebLogic → WebLogic Server 10gR3 → Examples → Stop Examples Server 선택
※ 서버 끌때 그냥 cmd 창 닫아버리지 말고, 꼭 stop하는 명령(?)을 이용합니다.


- 설치하다가 이런거 나오면 윈도우 보안 관련된 것이니 '차단 해체' 선택해주세요.



원본출처 : http://antop.tistory.com/6


개인 서버를 사용하거나 소기업의 경우 메일 서버때문에 고민한적이 있을것이다. 대체로 메일 서버는 가격도 비싸고 설정방법도 어려워서 어떤걸 설정해야 할지 고민이 많은데 Mercury Mail Server를 사용하면 설치법도 간단하고 무료로 사용할 있고 해서 개인적으로도 사용을 하고 있다. 아직까지 전체적인 사용법은 잘 알지 못하나 설치하고 사용자 추가를 하는 부분에 대해서 설명을 하고자 합니다.

파일을 다운로드 받거나 사용법을 좀더 자세하게 알고 싶으면 해당 사이트를 방문하면 많은(?) 지식을 얻을수가 있습니다.

다운로드 : http://www.pmail.com/downloads_s3_t.htm
참고사이트 : http://wiki.pmail.com/index.php?title=Mercury:Contents
참고사이트 : http://community.pmail.com/

설치한 OS는 Windows 7입니다.

설치 파일을 다운로드 받으면 파일을 실행합니다.



Setup를 눌러서 다음 화면으로 넘어가고



New installation을 살짝 눌러줍니다.
너무 세게 누르지는 마세요.. ㅡ,.ㅡ;;




NetWare를 사용하느냐 묻는 화면입니다. 일반적으로 NetWare를 사용하지 않기 때문에
No, NetWare Support 를 눌러서 다음으로 넘어갑니다.



설치할 폴더를 지정합니다.
저는 그냥 이대로 갑니다. 고고싱...OK, accept this directory



Pegasus Mail를 사용할건지를 물어보는 화면입니다.
사용하지 않고 다음으로 넘어갑니다. Pegasus Mail이 아웃록이 나오기 전까지는 정말 많이 썼다고 하네요..



이번 화면은 메일 저장할 폴더를 선택하라고 하는것입니다.
이번에도 전 그냥 넘어갑니다. 후비고~~

OK, accept this directory



위에처럼 선택해주시고 다음으로 넘어 갑시다..
각 버튼들은 다들 특별한 기능을 제공하겠지만 하지막 딱히 봐도 대단한것은 아니고 일단 모르니 이렇게만 선택합니다.

IMAP4rev 1 server는 선택 하지 않아도 됩니다.
전 그냥 먼가 대단한것이려니 해서 눌러 본것일 뿐입니다. 

OK, continue installation 지그시 눌러줍니다.



IMAP4rev 1 server을 누루지 않으면 이 화면은 나오지 않겠죠...
누르지 말걸 그랬나 봅니다. ㅠㅠ

버튼을 눌러서 계속 진행합니다. 엉엉...




SMTP client module에 관한 화면입니다.
당연히 client를 설치해야겠죠..
Install MercuryE 를 과감하게 눌렀습니다.



기본 설정을 저장합니다.
도메인 명과 관리자로 사용할 메일을 적어주는 화면입니다.
전 도메인을 dev.anaconda.pe.kr로 지정하고 관리자 메일은 master로 지정을 합니다.
실제적으로 master@mail.anaconda.pe.kr가 되겠죠..

OK, continue installation를 눌러서 다음으로 넘어가도록 하죠. 



Normal을 눌러줍니다. 헉헉...



매번 똑같은 화면에 내용만 살짝 바뀌니 저까지 헷갈리네요..
이 부분은 queue를 지정하는 화면입니다.
메일 수신전까지 발송된 메일은 여기에 저장이 됩니다.
전 그냥 그대로 가보도록 합니다.

OK, continue installation를 눌러서 다음으로 넘어가도록 하죠. 



Install Mecrury/32를 눌러줍니다.
이제 곧 도착하나 봅니다.


설치가 순식간에 진행이 되어서 캡쳐를 못했습니다. 방심했습니다.




Create service를 눌러서 서비스명를 생성해줍니다.



Create service 를 클릭하니 위에 같은 화면이 뜹니다.
전 그냥 기본적으로 되어 있는 명으로 하고 OK를 누르게 됩니다. 그러니 창이 닫히네요..
그리고 Continue를 눌렀습니다. 같이 눌러보시죠 후후후후...



이제 다 온듯한데 Done를 누르면 다음으로 넘어가겠군요..



아아.. 이제 다 왔습니다.
다 됐다고 하네요..
Exit를 눌러서 설치를 완료합니다.



설치된 프로그램을 실행시키니 다음과 같은 화면이 주루루룩 뜹니다..
이제 설치가 되고 서비스가 실행이 되었습니다.



Configuration 메뉴를 눌러서 MercuryE SMTP Client를 눌러서 설정 화면으로 이동합니다.



Name server를 등록해 주면 되는데 여기에는 DNS 주소를 등록해주면 됩니다.
사용하고 있는 DNS가 있을경우 그것을 적어 주면 되고 모르실 경우 

204.252.145.2,168.126.63.1,164.124.102.2
를 적어 주면 됩니다. 3개인데 ,로 구분이 됩니다. save를 눌러 창을 닫습니다.

이제 설정이 완료 되었습니다.




메뉴에서 Manage local users...을 눌러서 사용자를 추가하러 갑니다.



Add 버튼을 눌러줍니다.




사용자 계정을 입력하고 OK를 눌러줍니다.
여기선 메일이 test@mail.anaconda.pe.kr가 되겠군요..


이제 설정이 완료 되었습니다.

pop, smtp는 mail.anaconda.pe.kr로 하여서 테스트를 해볼 일만 남았네요.
저만 그렇고 각각 주소가 다 다르겠죠 설치하면서 입력한 도메인을 넣으시면 되겠습니다.

메뉴가 다 영어고 복잡하네요 다음에는 기본적인 설정방법을 찾아서 글을 정리해야 겠습니다.



허드슨을 사용하기 위해서 기본적인 셋팅 방법과 빌드를 셋팅하는 방법을 설명한다.
설치법은 간단하기 때문에 따로 설명하지 않도록 하며 설치가 되지 않았다면 아래 경로를 사용하여 다운 받아서 Tomcat에 설치하면 된다.

다운로드 : https://hudson.dev.java.net/servlets/ProjectDocumentList?folderID=2761

1. 허드슨 기본 설정 
허드슨 기본 설정법이라 함은 Ant, Maven등의 기본 빌드 스크립트를 지정하는 방법과 JDK의 기본 설정을 하는 법을 알아본다. 

일단 처음에 허드슨 메인 화면으로 가면 다음과 같은 이미지를 볼수가 있다.
다음 메뉴에서 Hudson 관리 메뉴를 클릭한다.


해당 메뉴를 클릭하면 다음과 같은 화면을 볼 수가 있다.
아래 메뉴에서 Configure System 메뉴를 클릭한다.



메뉴가 선택이 되면 나타나는 메뉴 화면 중에 아래 부분을 해당 경로에 맞게 적용해준다.

설정이 완료 되었다면 save를 눌러서 저장을 한다.

위에서 설정한 부분이 각각 Maven, JDK, Ant를 설정한 부분이다.
해당 라이브러리가 설치되지 않았다면 각 다운을 받아서 설치하길 바란다.

그리고 초기에는 hudson이 로그인 사용없이 모두 허용으로 되어 있다. 이 부분을 로그인 사용자만 사용할수 있게 하려면 다음 부분을 체크 해주게 되면 다음부터는 로그인을 해야만 설정을 변경을 할 수가 있다.




2. 빌드 셋팅하기 

기본 설정이 완료 되었으니 이제 새작업을 등록해보도록 하자.
hudson 메인 메뉴에서 새 작업 메뉴 버튼을 눌러서 등록 화면으로 이동하자.



메뉴를 선택하게 되면 새로운 작업에 대한 프로젝트 생성 화면이 나올것이다.
화면에서 작업명(job name)을 등록하고 Build a free-style software project를 선택하고 OK를 눌러 다음 화면으로 이동한다.




다음 페이지로 이동이 되었다면 Source Code Management 부분에서 소스 관리  시스템을 선택하도록 한다. Subversion 을선택하도록 하자.
하지만 그 위에 있는 메뉴의 대한 설명은 다음과 같다.

  • 프로젝트 이름(Project name): 난 이미 HeliosJMXTrunk 라고 프로젝트 이름을 지었지만, 여기에서 바꿀 수 있다.
  • 설명(Description): 빌드 업무에 대해 기술할 수 있는 자유 형식 폼 필드
  • 오래된 빌드 버리기(Discard old builds): 허드슨은 이 체크박스를 선택하지 않는다면, 이전 기록을 보관할 것이다.
  • 이 빌드작업은 파라미터화 됨(This build is parameterized): 만일 이 옵션을 선택하면, 허드슨은 빌드 프로세스에 전달 가능한, 이름-값 쌍으로 이루어진 임의의 파라미터 세트 제공을 허락 할 것이다. 설정 파라미터들은 러닝 빌드 환경에서 환경 변수로 지정될 것이다.
  • 프로젝트 기반 보안 활성화(Enable project-based security): 허드슨은 유저들이 허드슨 웹 페이지를 접근할 때 인증작업을 하기 위한 전체 보안 스키마를 지원한다. 또한 이 보안 스키마는 어떤 유저들이 어떤 빌드 업무를 건드리는 것이 가능한지에 대한 제어를 제공할 수 있다. 나는 이 허드슨 인스턴스에서 보안은 설정하지 않았다.
  • 빌드 불가(Disable build): 이 항목이 체크되면, 옵션이 비 활성화 될때까지 이 빌드 업무는 실행되지 않을 것이다.
  • 고급 옵션(Advanced options): 나는 이 옵션 중에 사용하는 것은 없다. 하지만 이 체크 박스를 선택하면, 다음과 같은 옵션들이 인터페이스에 나타나게 된다.
    • 정숙 기간(Quiet Period): 빌드 수행이 예정되었을 때 실제 수행 이전에 발생하는 정숙 기간(=휴지기간)을 설정할 수 있다. (즉, Delay time과 동일의미, 0 이면 build now! 의 의미)
    • 커스텀 워크스페이스를 사용(Use custom workspace): 기본적으로, 허드슨은 ${jboss-home}/.hudson/jobs/[project name] 에 빌드 업무용 워크스페이스를 만든다. 이 옵션은 당신 다른 장소를 지정하는 것을 가능케 해준다.



  • Subversion
    을 선택하면 위와 같은 화면이 나타나게 되는데 이 부분에 각 사용자에 맞는 정보를 입력하도록 한다.

    Repository URL : svn://도메인/trunk/myproject_name
    Local module directory (optional) :
    Use update : 체크

    이렇게 되면 svn://도메인/trunk/myproject_name에서 프로젝트를 내려 받게 된다.

    Use update
    이 부분은 체크를 한 이유는 체크가 되지 않았을때는 매번 저장소에서 모든 소스를 내려 받게 된다 이렇게 되면 소스를 받는 시간도 길어질뿐 아니라 빌도하는데도 시간이 한참 걸리게 되므로 이부분을 체크를 하여 변경된 파일만 update를 받도록 하기 위함이다.

    Repository Browser
    이 부분은 기존 버전과 새롭게 변경된 파일이 있을 경우 비교해가면서  어떤 부분이 변경 되었는지 소스의 히스토리를 볼수가 있다. 이 옵션을 체크를 해 놓으면 빌드 완료후 job의 Change에서 코드 변경된 내용을 확인 할수있다.

    여기까지 저장소 설정은 끝났다. 이제는 빌드에 관한 설정을 해야 되는데 이 부분은 Build TriggersBuild에서 설정을 한다. 옵션에 대한 설명은 아래와 같다.

    1) Build after other projects are built
    이 옵션에는 다른 Job(Project)의 이름을 인자로 넣는다.
    이렇게 하면 지정된 프로젝트의 빌드가 정상적으로 끝나면 자동으로 이 프로젝트가 Invoke된다. 만약에 빌드만 하는 Job과 테스트만 하는 Job이 있고 테스트는 자주 사용하고 빌드후에 반드시 테스트를 해야할 때, 테스트 Job에서 이 옵션으로 선행작업을 빌드로 해놓으면 빌드를 수행할 때 마다 빌드가 성공하면 테스트를 수행하게 된다. 테스트만 수행하면 빌드와 상관없이 테스트만 수행된다.
    이 옵션은 프로젝트 실행의 전후 관계(Chainning)을 하는데 매우 유용하게 사용할 수 있다.

    2) Poll SCM
    이 옵션을 사용하면 여기에 지정한 주기별로 소스 관리 시스템을 폴링(체크)하여 변경이 있을 경우에만 빌드를 수행한다.

    3) Build periodically
    마지막으로 Build periodically는 정해진 시간 주기별로 소스가 변경과 상관없이 무조건 주기적으로 빌드를 수행하며 Poll SCM과 마찬가지로 crontab과 같은 형식으로 스케쥴을 등록한다.

    아래 그림과 같이 Poll SCM 메뉴를 체크를 한다.



    Schedule에 대한 옵션은 unix의 crontab 명령과 같은 형식인다.
    분 시간 날짜 월 요일

    예)

    사용 예는 다음과 같다.
    # 매일 12시에 실행
    00 12 * * *
    # 매주 일요일 1시에 실행
    00 01 * * 7
    # 매일 12시와 5시에 실행
    00 05 * * *
    00 12 * * *
    # 매 5분마다 실행
    */5 * * * *

    이제 Build 메뉴에서 Invoke Ant를 선택한다.



  • Ant 버전(Ant version): 빌드를 수행 시에 사용하려고 미리 정의해 놓은 Ant 인스턴스
  • 타겟들(Targets): 지정한 Ant 스크립트 중에서 수행되어야 하는 타겟들의 목록. 스크립트의 디폴트 테스크가 실행될 경우에는, 빈 칸으로 남겨 놓을 수 있다.
  • 빌드파일(Build file): 유효 워크스페이스를 기준으로 놓고 봤을 때, 수행되어야 하는 Ant 스크립트의 상대적인 위치.
  • 프로퍼티들(Properties): Ant 스크립트로 전달될 추가 시스템 프로퍼티 정의값. 나는 서브버전 인증정보를 스크립트로 전달하기 위해 이들 프로퍼티들을 사용했다. 왜냐하면 내 작업 절차에는 몇 가진 변경사항들을 저장소로 반영하는 단계가 포함되어 있기 때문이다. 추가적으로, 나는 내 단위 테스트들 위한 설정 파라미터들에 해당하는 몇몇 파라미터들을 정의했다.
  • 자바 옵션들: 자바 명령행 옵션들을 여기에서 전달할 수 있다. 여기에서 나는 Ant의 -debug 옵션을 할당했다. 왜냐하면 나는 Ant 스크립트에 있는 디버깅 문제에 대해 작업하고 있었기 때문에, 해당 옵션을 사용해서 Ant가 추가적인 분석정보들을 로그에 생성하게 하였다. 다른 흔한 옵션은 기동되는 JVM의 초기 힙 사이즈(-Xms)와 최대 힙사이즈(-Xmx)를 특정하는 지시문들이다. 이 옵션은 빌드 스크립트를 수행하기 위해 허드슨에 의해 실행되는 모든 새로운 JVM 인스턴스가 따르게 된다.



  • 이제 기본적은 설정은 끝났다 다음 부분은 다음 추가적인 옵션이니 없어도 무방하다.
    아직 안해봤으니 설명을 할수가 없으니 다음에 사용하면서 올리도록 하겠다.



  • 아티팩트 아카이브 하기(Archive the artifacts): 이 옵션을 선택해서 파일이나 디렉터리 마스크(mask = include와 exclude를 지정할 수 있는 Ant 스타일의 마스크)를 지정할때, 마스크와 일치하는 아티팩트들은 빌드가 완료되면, 허드슨 아티팩트 저장소에 추가되고 빌드 업무와 빌드 시퀀스 넘버를 사용해서 키값(key)으로 만들어지게 될 것이다. 옵션에 따라, 허드슨 서버의 디스크 공간을 절약하기 위해서 성공적으로 빌드된 이전의 모든 아티팩트들을 버릴 수 있다.
  • 사용 추적을 위해 파일들의 사용 흔적을 기록 (Record fingerprints of files to track usage): 이 옵션을 선택하면, 비슷한 형태의 Ant 스타일 마스크(mask)를 사용해서, 허드슨으로 하여금 생성된 아티팩트들의 사용흔적(fingerprints)을 유지하도록 지시할 수 있다. 그렇게 해서, 시스템 내의 다른 어느 곳에서 이들 아티팩트들이 사용되는지를 당신이 좀 더 쉽게 추적할 수 있게 해준다.
  • Javadoc 만들어내기(Publish javadoc): 만일 당신의 빌드 스크립트가 javadoc 컨텐트를 생성해낸다면, 이 옵션은 허드슨으로 하여금 해당 컨텐트를 만들어 낸 다음 곧바로 업무 홈 페이지에 게시할 것을 지시할 것이다. 빌드가 성공한 모든 경우에 있어 javadoc 컨텐트는 계속 유지될 것이다. 그러나 기본적으로 마지막에 해당하는 것만 유지된다.
  • JUnit 테스트 결과 보고서 만들어내기(Publish JUnit test result report): 만일 당신의 빌드 스크립트가 JUnit 테스트를 수행한다면, 이 옵션은 허드슨으로 하여금 XML테스트 결과 문서를 처리해서 각각의 성공적인 빌드의 진행 보고서를 생성해 내고, 지속적으로 결과들을 모으도록 지시한다. 모인 결과가 바로 업무 홈 페이지에 있는 보고서에 해당하며, 오랜 시간에 걸쳐 수행된 빌드 업무용 단위 테스트의 기록이 될 수 있는 트랜드(historical trends)로 보여주는 보고서이다.
  • 다운스트림 테스트 결과 모으기(Aggregate downstream test results): 어떤 경우에는, 한 업무의 단위 테스트 스위트의 수행 시간이 실제 빌드 시간 보다 엄청 더 길다. 이런 경우에는, 빌드와 테스트를 각각 다른 업무로 분리하는 것을 선택할 수 있다. 그래서 상대적으로 빌드가 빠르게 종료될 수 있도록 말이다. 하지만, 구현되어 있는 하나 이상의 테스트 업무들은 빌드가 성공적으로 완료되면 그 즉시 수행되게 된다. 만일 당신이 이 옵션을 선택하면, 허드슨은 모든 빌드 후속 업무들의 테스트 결과들을 모으고, 소급 적용하는 식으로 해당 내용들을 주요 빌드 업무에 대한 테스트 결과로 보고할 것이다.
  • 다른 프로젝트 빌드하기(Build other projects): 앞선 항목들과 관련되어서, 이 옵션은 하나의 논리적인 빌드와 테스트 프로세스를 연속적으로 수행되어야 하는 두 개 이상의 물리적인 업무로 구현하기 위해 사용된다. 이 옵션을 선택되면, 필드가 보여지게 될텐데, 이 필드에는 현재 업무 이후에 수행되길 원하는 업무 이름들을 콤마(,)로 분리해서 기입하면 된다. 이 작업은 비록 현재 현재 업무 수행이 빌드가 불안정하다고 판단할 지라도 선택한 내용에 따라 수행된다.
  • 이메일 공지(E-mail notification): 이 옵션을 선택하면, 하나 혹은 그 이상의 공백으로 분리된 이메일 주소를 입력할 수 있고, 해당 이메일로 허드슨의 업무 수행 완료 공지가 보내지게 된다. 빌드 실패, 불안정 빌드 등의 이벤트들은 이메일 발송을 일으키게 된다. 여기에 있는 추가적인 옵션은 허드슨이 판단하기에 빌드를 깨뜨린 코드를 SCM에 체크인 한 작업자에게 "특별한" 이메일을 보내도록 만드는 것이다.


  • 출처 및 참고 사이트 
    http://wiki.hudson-ci.org/display/HUDSON/Home
    http://bcho.tistory.com/entry/Hudson을-이용한-빌드-배포-테스트-자동화
    http://doortts.tistory.com/entry/번역-허드슨을-이용한-지속적인-통합Continuous-integration-with-Hudson-2

     


    다수의 도메인 연결 방법

    이전에 글인 경우는 하나의 도메인과 하나의 톰캣과의 연동법을 설명한 것이다. 하지만 위와 같은 경우가 아닌 하나의 아파치에 여러대의 tomcat을 사용하는 경우가 있을것이고 여러개의 도메인을 연결해서 사용해야 하는 경우도 있다. 아래 부분은 그 부분에 대해서 설명을 한다.
    위에 내용과 연결되지 않으니 아파치 톰캣이 설치 되어 있다면 위에 부분은 건너 뛰고 아래 부분 부터 적응을 하면 된다.

    일단 설치가 되지 않았다면 해당 URL에서 다운을 받으면 된다.

    apahce 2.2 : http://httpd.apache.org/download.cgi
    tomcat 6.x : http://tomcat.apache.org/download-60.cgi
    mod_jk 1.2.28 : http://tomcat.apache.org/download-connectors.cgi

    mod_jk-1.2.28-httpd-2.2.3.so 모듈을 modules 디렉터리로 복사를 했다면 httpd.conf 파일을 열고 다음 부분을 추가해준다. 제일 마지막 라인에 추가해주면 된다.

    일단 해당 apahce 설치 폴더는 D:\SERVER\Apache2.2 에 설치를 했다.

    httpd.conf
    #
    # Use name-based virtual hosting.
    #
    # 해당 아이피
    NameVirtualHost 210.112.167.232 
    # jk_module 추가
    LoadModule jk_module modules/mod_jk-1.2.28-httpd-2.2.3.so
    # workers.properties 파일 추가
    JkWorkersFile "D:\SERVER\Apache2.2\conf\workers.properties"
    # virtualhost 설정 추가
    include "conf/vhosts/*.conf"

    위와 같이 수정을 해 줬다면 workers.properties 파일을 생성해준 다음 아래 부분을 복사해서 붙여 넣는다.

    workers.properties
    # the list of workers
    # 톰캣 경로
    #workers.tomcat_home=D:\WAS\tomcat-6.0.20 //
    # jdk 경로
    #workers.java_home=C:\Java\jdk1.6.0_16

    ps=\
    worker.list=dev,dev2

    #test.domain.pe.kr
    worker.dev.host=test.domain.pe.kr
    worker.dev.port=8009
    worker.dev.lbfactor=1
    worker.dev.type=ajp13

    #test2.domain.pe.kr
    worker.dev2.host=test2.domain.pe.kr
    worker.dev2.port=8010
    worker.dev2.lbfactor=1
    worker.dev2.type=ajp13

    # loadbalancer 설정
    #worker.loadbalancer.type=lb
    #worker.loadbalancer.balanced_workers=dev, dev2
    #worker.inprocess.type=jni
    #worker.inprocess.class_path=$(workers.tomcat_home)$(ps)lib$(ps)tomcat.jar
    #worker.inprocess.cmd_line=start
    #worker.inprocess.stdout=$(workers.tomcat_home)$(ps)logs$(ps)inprocess.stdout
    #worker.inprocess.stderr=$(workers.tomcat_home)$(ps)logs$(ps)inprocess.stde

    위에 내용에서 라인 앞줄에 #이 되어 있는 부분은 여기에서는 필요 하지 않으니 신경을 쓸 필요가 없다.이 과정까지 완료 되었다면 이제 도메인에 대한 설정을 해주면 된다. 

    httpd.conf 파일에 include "conf/vhosts/*.conf" 라인을 입력 했었다.
    conf/vhosts 폴더에 .conf 확장자로 된 모든 파일을 읽어 들이라고 정의를 했으니 해당 파일을 생성해 보자

    지금은 vhosts  폴더가 없기 때문에 conf 하위에 vhosts 폴더를 하나 생성해 준다.
    그리고  vhosts  아래에 해당 도메인명.conf  파일을 생성해 준후 아래 내용을 복사해서 붙여 넣는다. 해당 부분은 각자 사용자에 따라서 다르기 때문에 경로나 아이피는 적당하게 수정해준다.

    test.domain.pe.kr.conf
    <VirtualHost 210.112.167.232:80>
        ServerName test.domain.pe.kr   
    DocumentRoot D:\webapps\test.domain.pe.kr
        
        ErrorLog logs/dev-error.log
        CustomLog logs/dev.log common
    <Directory "D:\webapps\test.domain.pe.kr">
        #
        # Possible values for the Options directive are "None", "All",
        # or any combination of:
        #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
        #
        # Note that "MultiViews" must be named *explicitly* --- "Options All"
        # doesn't give it to you.
        #
        # The Options directive is both complicated and important.  Please see
        # http://httpd.apache.org/docs/2.2/mod/core.html#options
        # for more information.
        #
        Options Indexes FollowSymLinks
        #
        # AllowOverride controls what directives may be placed in .htaccess files.
        # It can be "All", "None", or any combination of the keywords:
        #   Options FileInfo AuthConfig Limit
        #
        AllowOverride None
        #
        # Controls who can get stuff from this server.
        #
    #    Order allow,deny
    #    Allow from all
        Options FollowSymLinks
        AllowOverride None
        Order deny,allow
        Allow from all
    </Directory>
    # 아파치로 접근 하는 거중 확장자가 ok 만  톰캣으로 하고
    # 나머지는 아파치 즉  workers.properties 의 이름 worker.list=sample 로 보낸다.
        JkMount /*.jsp  dev
        JkMount /*.do  dev
        JkMount /servlet/*  dev
    </VirtualHost>


     위에 파일을 생성을 했다면 test2.domain.pe.kr에 대한 파일도 위와 같은 방법으로 하나 생성해준다.

    여기까지 작업이 되었다면 아파치에 대한 설정은 끝났다. 이제 톰캣만 설정하면 되는데 톰캣이 설치 되었다면 해당 도메인에 지정된 톰캣 폴더/conf/에서 server.xml 파일을 수정해준다.

    지금 현재의 필자의 경로는
    D:\WAS\tomcat-6.0.20_test\conf,
    D:\WAS\tomcat-6.0.20_test2\conf
    로 되어 있다. 각각 해당 폴더를 열고 server.xml 파일을 열어서 다음 부분을 수정해준다. 

    D:\WAS\tomcat-6.0.20_test\conf\server.xml

    해당 부분은 수정할것이 없다. 기본적으로 톰캣은 8080 포트를 쓰지만 여러개의 톰캣을 사용하려면 이부분이 수정이 되어야 된다.

    <Connector port="8080" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443" />

    그리고 다음 라인도 찾아 보자. 하지만 이 부분도 여기서는 수정해줄 필요가 없다.
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

    <Host name="localhost"  appBase="webapps"
                unpackWARs="true" autoDeploy="true"
                xmlValidation="false" xmlNamespaceAware="false">
    </Host>

    이부분도 찾아보자  이 부분은 기본적으로 톰캣 폴더가 ROOT로 되어 있다.
    하지만 아파치의 경로는 현재 D:\webapps\test.domain.pe.kr으로 되어 있다.
    이럴 경우 정적 리소스의 경우는 D:\webapps\test.domain.pe.kr에 저장이 되고
    jsp, class의 경우는 D:\WAS\tomcat-6.0.20_test\webapps\ROOT에 저장을 해줘야 한다. 이렇게 분리하는것도 다른건 아니지만 그게 귀찮다면 아래 부분을 추가해준다.

    <Host name="localhost"  appBase="webapps"
                unpackWARs="true" autoDeploy="true"
                xmlValidation="false" xmlNamespaceAware="false">
    <Context docBase="D:\webapps\test.domain.pe.kr" path="" reloadable="false"/>
    </Host>

    이렇게 되면 같은 폴더를 사용하게 된다.

    이제는 D:\WAS\tomcat-6.0.20_test2\conf\server.xml를 수정하도록 하자
    위에 파일과 다를것이 없으므로 변경 부분만 강조를 하도록 하겠다.

    D:\WAS\tomcat-6.0.20_test2\conf\server.xml
    <Connector port="8081" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443" />

    <Connector port="8010" protocol="AJP/1.3" redirectPort="8443" />

    <Host name="localhost"  appBase="webapps"
                unpackWARs="true" autoDeploy="true"
                xmlValidation="false" xmlNamespaceAware="false">
    <Context docBase="D:\webapps\test2.domain.pe.kr" path="" reloadable="false"/>
    </Host>

    위와 같이 적용이 되었다면 완료가 되었다..

    적용된 도메인은 2개가 된다.

    아파치
    http://test.domain.pe.kr
    http://test2.domain.pe.kr

    톰캣
    http://test.domain.pe.kr:8080
    http://test2.domain.pe.kr:8081

    참고)
    도메인이 없는 경우 테스트를 할려면 host 파일에 설정을 해줘야 한다.