본문 바로가기

Jenkins23

Jenkins 버전 업데이트하기 Jenkins 버전업을 할 수 있는 2가지 방법을 소개 드립니다. 1. yum 으로 install한 경우 만약 기존 Jenkins 설치를 yum install로 진행하셨다면 편하게 yum update로 진행하시면 됩니다. yum install로 설치하는 방법은 이전 포스팅에 있습니다. 먼저 기존에 작동 중이던 Jenkins를 종료합니다. sudo service jenkins stop 그리고 아래 명령어로 바로 업데이트를 진행합니다. sudo yum update jenkins -y yum install, yum update는 모두 LTS 버전 기준으로만 작동합니다. 다만, public key가 없다는 에러 메세지가 나올텐데요. 이때는 현재 업데이트 버전의 Key가 없기 때문입니다. 아래 명령어로 현재 버전.. 2020. 7. 28.
Spring Batch 관리 도구로서의 Jenkins Spring Batch는 아직까지 확실한 표준 관리 도구가 없습니다. 각 팀/회사마다 상이한 방법들을 사용하는데요. 대표적인 방법들은 아래와 같습니다. Cron 클라우드 서버리스 이를테면 AWS의 Lambda 에 배치 코드를 등록하고, AWS CloudWatch에서 스케줄링 실행을 하도록 구성하는 방식입니다. API 기반의 직접 만든 관리자 페이지 Spring Batch Admin Deprecated 되었습니다. 더이상 개선하지 않겠다고 합니다. Spring Cloud Data Flow 로 전환하라고 합니다. 참고 Quartz를 이용한 관리자 페이지 Scheduler 역할로 Quartz를 사용하고 그에 대한 UI 대시보드를 직접 만드는 경우입니다. 참고 CI 서비스 (Jenkins / Teamcity 등.. 2020. 3. 22.
젠킨스 변경된 Slack Integration Token 등록하기 젠킨스 Slack Notification 플러그인이 버전업 되면서 더이상 Integration Token을 Job Config에서 바로 설정할 수 없게 되었습니다. 기존 플러그인을 사용한다면 문제 없지만, 최근에 젠킨스를 설치하면 플러그인 역시 최신 버전으로 받게되니 참고하시면 될것 같습니다. 기존의 Github ssh 연동과 동일한 방식으로 진행합니다. 좌측 사이드의 Credentials -> System로 차례로 이동합니다.Grlobal credentials를 클릭합니다화면 좌측에 있는 Add Credentials를 클릭해 Credentials 등록 화면으로 이동합니다.Kind 항목에서 Secret text를 선택하고 아래와 같이 항목을 등록합니다. Secret: 기존에 사용하시던 Slack Inte.. 2020. 2. 15.
Spring Batch의 멱등성 유지하기 프로그래밍에서 자주 사용되는 단어 중에 멱등성 이 있습니다. 이 멱등성을 한마디로 정의 하면 연산을 여러번 적용하더라도 결과가 달라지지 않는 성질 입니다. 참고: idempotent-rest-apis Spring Batch에서도 역시 이런 멱등성이 필요한 경우가 있습니다. 예를 들어 Spring Batch를 사용하다보면 동적으로 변하는 날짜가 필요한 경우가 있습니다. 대표적으로 다음과 같은 경우들 입니다. 매일 한번 어제 매출 데이터를 집계해야할 때 현재 시간을 기준으로 유효기간이 만료된 포인트를 정리할 때 매일 한번 오늘을 기준으로 휴면회원 처리를 할 때 등등 실행되는 시간을 기준으로 데이터를 조회하고 처리해야할 경우들입니다. 이럴때 가장 흔하게 사용되는 방법이 LocalDate.now() 혹은 Loc.. 2019. 9. 29.
TeamCity 설치하기 최근 들어 스프링 배치를 수행하는 Runner로 젠킨스가 최선인가? 라는 의문을 계속 보게 되었습니다. (비단 배치 수행용이 아닌 배포에서도 마찬가지로) 여러 대안책을 검토 중에 젯브레인 (JetBrains) 에서 만든 Team City가 생각났습니다. 여러 비교글이 있었지만, 결정적 계기는 김영재님의 포스팅 였습니다. 전반적인 포스팅 내용들을 보면서 시작해봐도 괜찮겠다 싶어 별도의 AWS EC2에 설치해서 진행하게 되었습니다. TeamCity로 시작하고자 하시는 분들은 참고하셔도 좋을것 같습니다. 포스팅은 Windows OS가 아닌 Linux OS에서 진행됩니다. 명령어는 Centos 기반으로 하고 있지만, Ubuntu 역시 비슷하게 사용할 수 있습니다. 1. 환경 확인 일단 Java 8이 설치되어 있.. 2019. 9. 9.
젠킨스 빌드 파일 캐시 문제 젠킨스를 통해 Github Clone -> Build를 하다보면 다음과 같이 이름이 변경된 파일의 이전 파일이 그대로 남아 있는 경우를 종종 보게 됩니다. 아래 사진은 01-makeFiles.config였던 파일을 00-makeFiles.config로 변경했는데 그대로 00도 남아있는 경우입니다. (실제 프로젝트에서는 이미 01-makeFiles.config 파일이 존재하지 않습니다.) 이는 젠킨스의 workspace가 완전히 초기화 되지 않기 때문입니다. 젠킨스의 경우 npm install 등 패키지 다운로드가 매번 build때마다 발생하는 것을 막기 위해 workspace를 삭제하지 않고 덮어 쓰기 방식으로 진행됩니다. 이런 문제를 해결하기 위해 젠킨스에서는 빌드 환경에서 한가지 옵션을 제공 합니다... 2019. 9. 6.