이전 글까지 작업을 해두고
아무래도 실제 사내에서 사용중인 svn에 작업을 하다보니
svn commit이 발생할때 까지 기다리느라 오류 확인들을 못했었는데,
commit이 발생한 후 여러 오류들이 발생했었다.
이에 대해 간단하게 정리하고
다음글에서 배포까지 하고 끝내는 걸로 하려한다.
1. svn 버전 낮아서 발생했던 문제
위와 같이 2건의 commit이 발생했는데.
뭐가 바꼈는지 확인해보기 위해 콘솔 출력 부분을 확인해봤다.
그랬더니 위와 같이 svn 버전이 너무 낮아서 svn upgrade가 필요하다는 에러가 발생하고 있었다.
해결 방법은 간단하다.
위의 workspace가 jenkins에서 svn checkout을 하는 경로이다.
해당 경로로 이동한 후에 svn upgrade 실행하면 해결된다.
주의할점은 경로의 소유권이 jenkins로 되어야 하기 때문에 혹시라도
jenkins가 아닌 다른 계정으로 로그인해서 upgrade를 했다면
sudo chown -R jenkins:jenkins /var/lib/jenkins/workspace/svn-project |
해당 명령 실행해서 권한 바꿔줘야 한다.
이후 다시 빌드를 해봤더니 또 오류가 발생했었다.
2. ssh host 인증 안되는 문제
이번에는 아래와 같은 문제가 발생했다.
이건 ssh 자주 써보면 뭔지 보자마자 아는데,
호스트 인증이 안돼서 jenkins가 svn 서버로 로그인할때 패스워드를 입력해야하는 상황이라 그렇다.
해결방법은 다음과 같다.
2-1. 먼저 jenkins의 공개키 생성
sudo -u jenkins ssh-keygen -t rsa -b 4096 -C "jenkins@ci" |
2-2. svn 서버로 키 복사
sudo -u jenkins ssh-copy-id jungjin.lee@192.168.12.11 # "svn server IP" |
2-3. 접속 잘되는지 확인
sudo -u jenkins ssh jungjin.lee@192.168.12.11 # "svn server IP" |
여기까지 했을때 패스워드 입력없이 svn server에 접속되면 해결이다.
여기까지 다 하고 나서 기존의 스크립트를 조금 수정해줬다.
#!/bin/bash # 현재 작업 디렉토리 (빌드 시 자동으로 설정됨) echo "workspace : $WORKSPACE" cd $WORKSPACE # 현재 revision 가져오기 REV_CUR=$(svn info | grep '^리비전:' | awk '{print $2}') echo "Revision : $REV_CUR" # 이전 revision 가져오기 REV_PREV=$(($REV_CUR - 1)) echo "Revision Prev: $REV_PREV" # 변경된 내용을 파일로 저장 SVN_SSH="ssh -i /var/lib/jenkins/.ssh/id_rsa" svn diff -r $REV_PREV:$REV_CUR > $WORKSPACE/svn-changes.diff # 콘솔 출력 echo "SVN 변경 내용 (리비전 $REV_PREV → $REV_CUR):" cat $WORKSPACE/svn-changes.diff |
이렇게 수정하고 실행해보면,
이런식으로 바뀐 내용을 확인할 수 있다.
'Cluster > CI CD' 카테고리의 다른 글
SVN과 Jenkins를 이용한 CI/CD 구축하기 - 5. Poll SCM이 아닌 WebHook을 사용하여 commit 빌드하기 (0) | 2025.04.24 |
---|---|
SVN과 Jenkins를 이용한 CI/CD 구축하기 - 3. SVN Commit 내용 확인 및 Builds 제목 변경하기 (0) | 2025.04.22 |
SVN과 Jenkins를 이용한 CI/CD 구축하기 - 2. Jenkins에서 SVN commit 확인 (0) | 2025.04.22 |
SVN과 Jenkins를 이용한 CI/CD 구축하기 - 1. Jenkins 설치 및 svn 저장소 등록 (1) | 2025.04.21 |
쿠버네티스 설치, 구축부터 CI/CD까지 구현해보기 - 번외편. 동시성 개선 (0) | 2025.03.26 |