본문 바로가기
반응형

전체글623

TeamCity 설치하기 최근 들어 스프링 배치를 수행하는 Runner로 젠킨스가 최선인가? 라는 의문을 계속 보게 되었습니다. (비단 배치 수행용이 아닌 배포에서도 마찬가지로) 여러 대안책을 검토 중에 젯브레인 (JetBrains) 에서 만든 Team City가 생각났습니다. 여러 비교글이 있었지만, 결정적 계기는 김영재님의 포스팅 였습니다. 전반적인 포스팅 내용들을 보면서 시작해봐도 괜찮겠다 싶어 별도의 AWS EC2에 설치해서 진행하게 되었습니다. TeamCity로 시작하고자 하시는 분들은 참고하셔도 좋을것 같습니다. 포스팅은 Windows OS가 아닌 Linux OS에서 진행됩니다. 명령어는 Centos 기반으로 하고 있지만, Ubuntu 역시 비슷하게 사용할 수 있습니다. 1. 환경 확인 일단 Java 8이 설치되어 있.. 2019. 9. 9.
TeamCity ServerUrl 변경하기 TeamCity가 설치된 서버의 도메인 주소가 변경되면 등록된 server Url을 같이 변경해주어야 합니다. Github OAuth의 Redirect URL등과 같이 TeamCity 서버 주소를 생성하는 기능들이 모두 예전 도메인으로 진행되기 때문인데요. 해당 설정을 Web 에서는 쉽게 변경할 수 있지만, 로그인 조차 안되는 상황에선 설정파일을 직접 수정해야 합니다. 그래서 여기서는 서버의 설정파일을 직접 수정하는 방법으로 진행하겠습니다. 본문 먼저 TeamCity의 Data Directory (여러 설정들이 담긴 디렉토리로 보시면 됩니다) 위치를 확인합니다. 보통은 TeamCity 설치된 위치/.BuildServer 입니다. 해당 위치가 아니시라면 아래와 같이 로그를 통해 위치를 확인합니다. vim .. 2019. 9. 8.
젠킨스 빌드 파일 캐시 문제 젠킨스를 통해 Github Clone -> Build를 하다보면 다음과 같이 이름이 변경된 파일의 이전 파일이 그대로 남아 있는 경우를 종종 보게 됩니다. 아래 사진은 01-makeFiles.config였던 파일을 00-makeFiles.config로 변경했는데 그대로 00도 남아있는 경우입니다. (실제 프로젝트에서는 이미 01-makeFiles.config 파일이 존재하지 않습니다.) 이는 젠킨스의 workspace가 완전히 초기화 되지 않기 때문입니다. 젠킨스의 경우 npm install 등 패키지 다운로드가 매번 build때마다 발생하는 것을 막기 위해 workspace를 삭제하지 않고 덮어 쓰기 방식으로 진행됩니다. 이런 문제를 해결하기 위해 젠킨스에서는 빌드 환경에서 한가지 옵션을 제공 합니다... 2019. 9. 6.
Spring Batch 공통 설정 관리하기 (feat. 젠킨스 Environment variables) 젠킨스의 경우 스프링 배치의 스케줄러로 많이 사용 됩니다. 다만, 공통 설정을 어떻게 해야할지 고민될 때가 많습니다. 이럴 경우 젠킨스의 Environment variables (환경 변수) 가 아주 유용합니다. 이번 시간에는 젠킨스의 Environment variables를 통해 스프링 배치의 공통 설정들을 관리해보겠습니다. 본문을 보시고 좀 더 좋은 방법이 있으시면 댓글 부탁드리겠습니다! 1. 기존 상황 젠킨스에서 스프링 배치를 사용하다보면 다음과 같은 상황을 자주 목격합니다. java -jar \ -XX:+UseG1GC \ -Dspring.profiles.active=real \ 배치jar \ --job.name=스프링배치Job이름 \ 파라미터1=파라미터값1 \ 파라미터2=파라미터값2 -XX:+Us.. 2019. 9. 5.
우아한 멀티모듈 - 2019년 8월 우아한 Tech 세미나 발표자 소개 배달의 민족에서 프론트 / 주문 / 결제 시스템 등을 담당해왔음 Hello World만 하고 발표를 하는게 아니라는것을 이야기드리고 싶었음 개인 사이드 프로젝트로 코덕을 하고 있음 블로그 내용을 기반으로 발표 1. 멀티 모듈 예시로 회원 시스템 단일 모듈 멀티 프로젝트 내부 API / 외부 API / 배치 개별 프로젝트로 되어 있었음 공용 클래스들은 복사해서 각자 갖고 있음 사람에게 의존적인 일관성 단일 모듈 멀티 프로젝트 + 메이븐 저장소 3개의 개별 프로젝트 중 공용 클래스들은 내부 메이븐 저장소에 라이브러리 형태로 올려놓고 각자 프로젝트가 사용 시스템으로 보장되는 일관성 문제는 번거로운 개발 사이클 하나만 수정해도 다음의 사이클이 필요 메이븐에 업로드 각 3개의 프로젝트가 메이븐 라이브.. 2019. 8. 30.
4. Ansible (앤서블) 로 전체 서버 사용자 추가하기 - Jenkins&Github 연동하기 이번 시간에는 앤서블로 전체 서버 사용자 추가하기 시리즈의 마지막! Jenkins&Github로 관리하기 입니다. 그간 리눅스 서버의 터미널에서만 관리하던 앤서블을 개선해보겠습니다. 이번 시간에 앞서 진행되야할 것들이 있습니다. 일단 앤서블 호스트 서버에 젠킨스가 설치 되어 있어야 하며, 해당 젠킨스는 작성중인 앤서블 플레이북 코드가 담긴 깃허브 저장소와 연동되어 있는 상태여야 합니다. 안되어 있으신 분들은 아래 링크를 참고하여 진행해주시면 됩니다. 젠킨스 설치 젠킨스와 깃허브 프로젝트 연동 환경 설정이 다 되신분들은 아래 내용을 차례로 진행합니다. 1. Github 관리로 전환 먼저 플레이북을 Github으로 관리할 수 있도록 이관하겠습니다. 여기서는 플레이북 파일과 인벤토리 파일의 관리 방법을 다르게.. 2019. 8. 26.

728x90
반응형