본문 바로가기
프로그래밍/젠킨스(Jenkins)

젠킨스(Jenkins) PowerShell SVN: E175013 Access to 'directory' forbidden 문제 해결하기

by bantomak 2024. 10. 23.
반응형

젠킨스(Jenkin)에서 PowerShell SVN Commit시 에러 발생

C드라이브에 문제가 생기면서 윈도우를 재설치하였다. 그러면서 기존에 사용하던 젠킨스(Jenkins)도 재설치를 진행하였다.

젠킨스 설정은 다행히도 D드라이브에 있어서 Jenkins_home 그대로 가져와서 적용했다.

 

svn: E170013: Commit failed (details follow):
svn: E170013: Unable to connect to a repository at URL 'http://svn/trunk/directory'
svn: E175013: Access to '/svn/directory' forbidden
Build step 'PowerShell' marked build as failure
Finished: FAILURE

그런데 새로 설치하고 나니 기존에 잘 동작하던 스크립트가 갑자기 E175013 에러를 내면서 실행되지 않았다.

 

우선, 기존에 잘 동작하던 스크립트였고 젠킨스 설정은 Jenkins_home을 그대로 복사해서 가져와서 문제가 없었다. 결국은 수많은 삽질 끝에 권한 관련 문제라고 확신했다. (권한 문제인 건 알았지만 윈도우 권한 문제라고 생각하지 못했다. *아래에서 계속)

 

확인 사항

  • 젠킨스(Jenkins) 계정의 권한을 확인한다.
  • 로컬에 업데이트받은 파일이 SVN과 잘 연결되어 있는지 확인한다.(Working Directory)

여러 부분에서 반복해서 확인했지만 계속해서 svn command가 실패했다.

결정적인 실마리를 제공한 StackOverflow 질문

며칠을 고민하고 삽질의 삽질을 지속한 끝에 윈도우 권한 문제가 아닌가라는 막연한 생각을 가지고 있었다.

하지만 윈도우 권한을 어떻게 접근해야 할지 막막한 상황에서 해당 질문을 발견했다.

 

Access denied error while running PowerShell script

I have written a script and i have put a condition that if server is pining search for below file and read the file content. but its giving error like below if ((Test-Connection -ComputerName $fqdn -

stackoverflow.com

그리고 떠올랐다. 젠킨스 설치 시에 선택했던 하나의 옵션을...

이때 위에 옵션을 선택하지 말아야했다. 스노우볼이 이렇게 크게 굴러버렸다.

결국은 젠킨스가 설치되어 있는 머신에서 현재 사용하는 윈도우 계정이 LocalSystem이 아니어서 일어난 이슈였다. 젠킨스 서비스에는 해당 LocalSystem 계정에 대한 권한이 설정되어 있으니 작동되지 않았던 것이다.

 

이제 원인을 알았으니 Jenkins 서비스로 가서 우리가 현재 사용 중인 계정에 권한을 설정해 주면 모든 것이 해결될 것이다.

Jenkins 서비스에 현재 계정으로 권한 부여하기

작업 관리자 -> Jenkins 서비스 오른쪽 버튼 서비스 열기
서비스에서 Jenkins 서비스 오른쪽 클릭 - 속성 클릭
Jenkins 속성 - 로그온 탭 클릭 - 다음 계정으로 로그온 로컬 시스템 계정에서 계정 지정으로 변경 - 찾아보기 클릭 - 고급 클릭
위치 버튼 클릭해서 전체 디렉터리 클릭 - 지금 찾기 클릭해서 실제로 젠킨스를 사용하는 유저 선택
이름 선택하고 확인
해당 계정의 암호까지 정확하게 입력하고 확인 및 적용

여기까지 진행하면 서비스탭에서 Jenkins의 다음 사용자로 로그온 탭이 해당 계정으로 변경되었음을 확인할 수 있다.

드디어 성공!

이제 무사히 Powershell 스크립트가 성공하는 것을 확인할 수 있다.

함께 읽으면 좋은 글

 

젠킨스 설치시 유저 로그인 권한 주기

젠킨스 설치시 사용자 권한을 입력해도 this account either does not have the privilege to logon as a service 이렇게 나올 것이다. 미리 사용자 로그인 권한을 주어야 한다. 해결방법 : stackoverflow.com/questions/6341044

yyjing.tistory.com

 

jenkins installation windows 10 "Service Logon Credentials"

I don't know Jenkins at all. I want to install Jenkins on Windows 10. I downloaded the installer and ran it, but I have a problem. I don't know what to enter in the "Account" and "Pa...

stackoverflow.com

댓글