이번 개발 서버를 구성하면서 설정했던 것들을 까먹지 않도록 작성.
목표 - QA 용 관리자 서버 구성
필요한 단계
- 톰캣 설정
- 아파치 설정
- 젠킨스 배포 설정
- DNS 추가
1. 톰캣 설정
톰캣은 기본 설정의 톰캣 사용 따라서, bin, conf 내용만 수정
- conf 디렉토리에서 server.xml
- 기존에 있던 톰캣을 복사해서 그런지 conf 에서의 내용은 따로 수정한 것은 없으나, 한 서버에서 여러개의 톰캣을 돌린다면 server.xml 을 수정해줘야 할 필요가 있다.
- port 부분을 고정하는 것이 아닌 ${tomcat.port.http} 같은 형식으로 변경
- bin 디렉토리에서 tomcat.sh
- server_name, tomcat_http_port 등의 설정 기입
- JAVA_OPTS 추가 (보통 로컬에서 톰캣을 올릴 때 쓰는 옵션을 여기에 적는 것 같다. -Dspring.profiles.active 도 있는데 이건 배포 시점에 분리할 수 있지 않을까?)
- 설정을 추가하고, 실행 sh 파일을 모와놓은 곳에서 이 tomcat.sh 를 불러오도록 설정해줘야 함.
2. 아파치 설정
- httpd.conf 파일 수정
- 각 conf 파일과 ssl.conf 파일이 각각 있으므로 각 conf 파일에 설정 추가
- conf 파일
<VirtualHost *:80>
ServerName '사용할 DNS 명'
DocumentRoot '데이터 파일 경로'
- ssl.conf 파일
<VirtualHost *:443>
ServerName '사용할 DNS 명'
DocumentRoot '데이터 파일 경로'
ssl.conf 는 말 그대로 ssl 으로 관련 추가 설정이 있으면 추가
- workers.properties 수정
- 로드 밸런서를 위해 추가
worker.list = qa
worker.QAServer.reference=worker.template
worker.QAServer.host=127.0.0.1
worker.QAServer.port=6609
# configuration loadbalancer
worker.qa.type=lb
worker.qa.retries=2
worker.qa.method=Session
worker.qa.sticky_session=true
worker.qa.max_reply_timeouts=300
worker.qa.balance_workers=QAServer
- uriworkermap.properties 추가
/*.jsp=qa
/*.java=qa
/*.do=qa
workers.properties 에 balance_workers 를 찾아가는 것 같다. ex) uriworkermap_QAServer.properties
- 아파치 재실행
- 설정을 해줬으므로 >
./apachectl restart
를 통해 재실행
(아마 설정에서 만들어준 DocumentRoot 가 없으면 에러가 떳던 것으로 기억.. 디렉토리를 만들어 주고 재실행..)
- 설정을 해줬으므로 >
3. 젠킨스 배포 설정
- 젠킨스로 자동 빌드를 하기 전에 서버 설정이 제대로 맞는지 확인을 함.
- 로컬에서 war 파일로 묶은 다음 서버에서 압축 해제 후 톰캣 실행 ex) /data/was/QAServer 에는 소스 data/web/QAServer 에는 리소스
- 제대로 올라오는 지 확인
- 젠킨스 아이템 만들고 파이프라인 설정
- Pipeline Script From SCM 을 선택
- SCM 에 git 정보 입력
- Script Path 에 Jenkinsfile 입력 ex) dev_QA.Jenkinsfile
- 젠킨스 파일에 각종 설정을 입력 (이 부분은 shell script 영역 같은데….)
4. DNS 추가
톰캣도 올리고, 아파치 설정도 했고, 젠킨스로 배포 자동화도 했음.
그러나, DNS 세팅을 안해서 접속할 때 ip 를 입력해서 들어가야 함.
DNS 를 추가하자.
- 윈도우의 경우
C:\Windows\System32\drivers\etc
에 hosts 파일에 추가 ex) 111.111.11.111 dev.qaserver.com - 인터넷을 찾아보면 리눅스의 hosts 파일을 변경해주면 된다고 하는데, 회사의 SE 분이 서버 hosts 는 막 수정하는 거 아니래서 로컬에서 적용(
이 부분은 이유를 들었는데, 까먹음..)
회사에서 개발서버를 구축하면 이렇게 하면 되는 것 같다.
장소나 환경에 따라 어느정도의 차이는 있겠지만, 참고해서 진행하면 되겠지…?