목표 : 로컬 PC에 SVN 서버를 구축하고 Jenkins를 연동하여 SVN commit에 맞춰서 자동으로 CI/CD 되도록 구현
SVN Server 설치 + 저장소 생성등 기본 세팅
https://timeboxstory.tistory.com/98
[형상관리] Windows에서 SVN 설치 및 사용법 - 서버 구축편
✔ SVN 서버 구축하기 - SVN Server Download - SVN 저장소 만들기 - SVN 사용자 추가 - SVN 사용자 권한 부여 - 저장소 URL 공유 안녕하세요. 회사에서 협업하여 일을 할때에는 형상관리가 거의 필수적으로
timeboxstory.tistory.com
SVN Client 설치
https://tortoisesvn.net/downloads.html
Downloads · TortoiseSVN
download TortoiseSVN
tortoisesvn.net
SVN 사용 가이드
Checkout (repo에 저장된 파일 불러오기 git으로 따지면 Clone)
ADD
Commit
Merge
merge는 git과 같이 branch에서 작업한 코드를 main에다가 합치는 것이기 때문에
trunk를 선택하여 merge를 시작해야한다.
작업이 완료된 브랜치와 병합을 하는 것이기 때문에 from에 해당 브랜치를 지정
테스트 merge 후 진행
Merge 완료 후 Commit 하여 작업 내용 적용
Update
git에서의 pull 기능과 비슷하다. 업데이트된 파일들을 그대로 불러 들인다. 그 과정에서 만약 내가 미리 업데이트 해둔 내용이 있다면 충돌이 발생한다.
Conflict
자동으로 생성되는 커밋창 그러나 바로 커밋은 되지않는다. 충돌을 해결해야만 한다.
충돌난 파일에 대해서 충돌 처리를 해결하고 자동생성된 파일들도 모두 지워줘야만 커밋이 가능하다.
Tomcat 9 설치
https://tomcat.apache.org/download-90.cgi
Apache Tomcat® - Apache Tomcat 9 Software Downloads
Welcome to the Apache Tomcat® 9.x software download page. This page provides download links for obtaining the latest version of Tomcat 9.0.x software, as well as links to the archives of older releases. Unsure which version you need? Specification version
tomcat.apache.org
tomcat에서 배포 후 외부에서 접속 할 수 있도록 server.xml 수정 port번호도 수정할 수 있다.
<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" address="0.0.0.0"/>
Tomcat 2개 이상 한번에 띄우기
tomcat을 한번에 2개 이상 띄우려면 윈도우즈 인스톨러로 설치하면 안되고 각종 설정을 할 수 있는 zip형태로 다운로드
다운로드 후 압축을 2번 풀어서 폴더이름을 각각 변경
tomcat-00/conf/server.xml 파일에서 각각의 톰캣 서버의 포트번호를 지정해줘야한다.
프론트엔드의 경우는 80번포트로 지정, 백엔드의 경우는 8081 포트로 지정(그 외의 포트번호도 웬만하면 중복되지 않도록 변경 해야한다.)
tomcat-fe/conf/server.xml
...
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8445" />
...
tomcat-be/conf/server.xml
...
<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8444" />
...
그리고 tomcat-00/conf/tomcat-users.xml 에 아래코드를 추가해줘야 Jenkins 연결을 할 수 있다.
여기서 지정한 username과 password를 Jenkins 설정에 입력해줘야한다.
<role rolename="manager"/>
<role rolename="manager-gui" />
<role rolename="manager-script" />
<role rolename="manager-jmx" />
<role rolename="manager-status" />
<role rolename="admin"/>
<user username="admin" password="tiger" roles="admin,manager,manager-gui, manager-script, manager-jmx, manager-status"/>
</tomcat-users>
tomcat-00/bin/service.bat 파일을 편집으로 열어서 해당 부분을 추가로 작성하여 각각의 톰캣을 구분할 수 있도록 작성 후
service.bat 파일을 실행하면 윈도우 서비스에 등록된다.
윈도우의 서비스앱을 통해서 현재 실행되고 있는지 확인 가능
서비스가 등록되어있는 것을 확인 가능하며 컴퓨터 실행 시 자동으로 켜지도록 설정 가능
서비스에 등록하여 톰캣을 사용함으로써 CLI 창이 띄워져있지않도록 하며 그로인해 쓸데없는 프리즈현상을 막을 수 있다.
Jenkins 설치
JDK 11 이상이 있어야만 설치가 되기 때문에 아래 코드를 cmd에 입력하여 설치
winget install -y AdoptOpenJDK.OpenJDK.11
https://www.jenkins.io/download/
Jenkins download and deployment
Jenkins download and deployment The Jenkins project produces two release lines: Stable (LTS) and regular (Weekly). Depending on your organization's needs, one may be preferred over the other. See the links below for more information and recommendations abo
www.jenkins.io
Jenkins 설치(Windows 환경)(1)
우선 Jenkins는 흔히 말하는 CI/CD 중 지속적 통합(Continuous Integration)을 구현하기 위한 서비스이다. 개발 중인 저장소(git, svn 등)에 업로드된 소스를 테스트, 빌드, 빌드 후 작업등을 자동 동작하게 해
lock.tistory.com
Jenkins 설치(Windows 환경)(2)
이전 포스팅 이어서.. https://lock.tistory.com/2 Jenkins 설치(Windows 환경)(1) 우선 Jenkins는 흔히 말하는 CI/CD 중 지속적 통합(Continuous Integration)을 구현하기 위한 서비스이다. 개발중인 저장소(git, svn등)에
lock.tistory.com
플러그인 다운로드
Deploy to container
Maven Integration
Subversion
빌드 구성
기본 설정
*디스크 용량이 부족할 것을 예상해서 오래된 빌드 삭제 기능 정도 사용해주면 좋다.
SVN과 연결
Commit이 되었을 경우 자동 빌드가 되도록 설정(1분마다 새로운 commit 있을 경우 자동 빌드)
빌드 할 대상 지정 및 빌드 시 사용할 명령어 지정
빌드 후 배포까지 진행되도록 설정
tomcat9를 지정하고 앞서 tomcat-user에서 추가로 작성한 계정과 비밀번호를 등록해줘야한다.
Spring project 올릴 때 설정해야하는 것
pom.xml
<packaging>war</packaging>
의존성 추가
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
내장된 tomcat이 작동되지 않도록 boot에서 해당 자바파일을 생성해줘야한다.
@SpringBootApplication
public class SpringBootTomcatApplication extends SpringBootServletInitializer {
}
'회고록(TIL&WIL)' 카테고리의 다른 글
JavaScript, jQuery 정리 (0) | 2023.05.01 |
---|---|
TIL 2023.03.22 Spring Security, React-Redux, Scheduling (0) | 2023.03.22 |
TIL 2023.03.21 암호화, JWT, Spring Security (0) | 2023.03.21 |
TIL 2023.03.20 JPA, WebSocket (0) | 2023.03.20 |
TIL 2023.03.17 React 2 (xhr, fetch, axios, CRUD, JPA) (0) | 2023.03.17 |