본문 바로가기

개발/ETC

Jenkins SVN Command SVN: E170013 Error

안녕하세요 넬다이입니다.

 

지금 보실 에러는 Jenkins에서 SVN을 Command로 사용하게 되면은 초기에 발생하는 에러인데요

실제 svn에서는 에러 E170013을 보내주고 있습니다. 이게 무엇이냐 하면은 권한이 없다는 건데요 

 

실제로 Jenkins는 System권한상에서 동작하는 프로그램이 기 때문에 실제 작업환경에서 svn 계정을 연동을 하셨다고 하더라도 실제 System상에서는 그 연동 계정이 없기 때문에 발생을 하게 됩니다.

 

svn계정은 보통 저장을 하게 되면은 글로벌이 아닌 User에 저장이 되는데요 그러한 이유로 System에서는 자기 계정을 모르기 때문에 로그인 계정을 System으로 처리하게 되고 이를 통해서 거부가 되어 Error E170013을 보내줍니다.

 

그럼 해결법은 무엇인가 하면은 PSTool을 이용해서 System 계정에 접근하여서 svn계정을 저장시켜주는 건데요

 

PSTool을 이용해서 실행을 하게 되면은 cmd창에서 System계정으로 로그인이 가능합니다.

자 일단 PSTool을 다운로드하여야 하는데요 링크는 이곳입니다.

https://docs.microsoft.com/en-us/sysinternals/downloads/psexec

 

PsExec - Windows Sysinternals

Execute processes on remote systems.

docs.microsoft.com

자 여기서 PSTool을 다운로드하신 후 다운 파일을 C드라이브에 넣어주시고 

cmd 관리자 권한으로 여신 후 경로를 PSTool 압축을 풀었던 위치로 이동을 합니다.

 

명령어로 psexec -i -s cmd.exe를 입력해주시면은 psexec에게 system계정으로 접근을 하겠다고 하는데요

명령어를 입력하게 되면은 CMD창이 하나 더 뜨게 되며 이 환경은 System계정 환경이라고 보시면 됩니다

 

이후 cmd창에서 svn이 작동하는 workspace에 경로로 이동하신 후 svn up을 하게 되면은 비밀번호를 입력하라고 뜨게 되는데요 뜨게 되면은 계정이 System일 것입니다. 그러니 그냥 엔터를 입력하시게 되면 다시 UserName을 입력하라고 하는데요 거기서 아이디를 입력하신 후 패스워드 입력하면은 System상에서 svn 계정이 등록이 됩니다.

 

이후 다시 젠킨스에서 Command를 사용하시면 정상작동을 하게 됩니다.

 

자 이번에는 Jenkins 오류에 대해서 알아보았는데요 저는 이걸 당하고 나서 한동안 찾아 헤매고 있었는데

여러분은 그러지 말라고 이렇게 남겨드립니다.