Study / / 2022. 4. 29. 10:10

[Jenkins] 젠킨스 설치 중 에러와 해결방법

https://ko.m.wikipedia.org/wiki/%ED%8C%8C%EC%9D%BC:Jenkins_logo_with_title.svg

 

회사에서 젠킨스를 맡아 구성을 하는 중에 일어난 여러 가지 문제점들과 해결방법을 말해보겠습니다.

 

1. 파이프라인별 nuget package 설정

폐쇄망 환경에서 여러 프로젝트에 각각 다른 nuget package를 사용하는데  로컬 패키지를 구성하고 해당 프로젝트에 맞는 로컬 패키지 저장소를 설정하는 방법입니다.

패키지 별 저장소를 만들어두고 프로젝트별로 nuget.config를 생성하여 configuration을 설정해줍니다.

자세한 config 정보들은 doc를 통해서 확인할 수 있습니다.

 


 

2. Window (윈도우) 젠킨스 Workspace 저장 위치

세팅을 건드리지 않았다면 기본적으로

C:\ProgramData\Jenkins\. jenkins\workspace에 젠킨스가 저장됩니다.

(숨겨진 폴더기 때문에 숨겨진 파일 보기 옵션 활성화가 필요합니다.)

젠킨스 설정 파일은 C:\Program Files\Jenkins 에 저장됩니다.

 


 

3. 컴파일러 에러

error : 이 프로젝트는 이 컴퓨터에 없는 Nuget 패키지를 참조합니다. 해당 패키지를 다운로드하려면 Nuget 패키지 복원을 사용하십시오. 자세한 내용은 http://go.microsoft.com/fwlink/?LinkID=322105를 참조하십시오. 누락된 파일은 ..\packages\Microsoft.Net.Compilers.1.3.2\build\Microsoft.Net.Compilers.props 입니다.

와 같이 패키지를 찾지 못하는 경우가 있습니다. 이것도 마찬가지로 패키지를 찾지 못해서 나타나는 문제입니다.

 

해결 방법은 2가지가 있습니다.

nuget sources 명령어로 빌드되는 시점에 어디에 위치한 nuget package를 참조하는지 확인하는 과정으로

공통. 설정한 nuget sources를 참조하는지 확인 

  • 원하는 패키지를 참조하지 않는다면 해당 패키지를 참조하도록 설정하는 방법

 

  • 프로젝트와 같은 level에 packages 파일 추가하는 방법

 

저는 1번을 하다가 설정 파일을 이곳저곳 많이 건드려서 build시에 packages가 원하는 패키지를 참조하지 못했을 때 프로젝트와 같은 경로에 위치하면 컴파일 시점에 해당 packages를 참조하는 것을 깨닫고 2번 방법을 사용했습니다.

 


 

4. Publish FTP 윈도우서버로 전송 중 발생한 문제

우선 윈도우 서버를 IIS에서 제공하는 FTP 서버를 사용하였습니다. 하지만 문제가 여러 가지 발생했는데 가장 골치 아팠던 문제는

위와 같은 에러였습니다. 윈도우에서 FTP로 전송 시에 발생하는 문제인데 처음에는 이 문제를 처음 보기도 하고, 파일 질라를 이용해서 FTP 테스트 전송 시에는 발생하지 않았던 문제라 감을 전혀 못 잡고 있었습니다. 해당 오류를 검색하면 아래와 같이 ms에서 제공한 오류 중 하나입니다.

https://support.microsoft.com/en-us/topic/-the-filename-directory-name-or-volume-label-syntax-is-incorrect-error-when-you-attach-a-new-drive-in-the-backup-schedule-in-windows-server-2012-c7b88e4b-6d98-590f-2450-9414283e251f

 

"The filename, directory name, or volume label syntax is incorrect" error when you attach a new drive in the backup schedule in

The global version of this hotfix installs files that have the attributes that are listed in the following tables. The dates and the times for these files are listed in Coordinated Universal Time (UTC). The dates and the times for these files on your local

support.microsoft.com

즉, 경로상에 파일이나, 디렉터리, 볼륨 레이블에 비정상적인 문자가 들어가서 생기는 문제입니다.

FTP 전송 시 인코딩을 하지 않아서 생기는 문제였고, 저의 경우에는 아래와 같은 순서로 해결했습니다.

  • IIS 로그를 보려다 도저히 보기가 힘들어서 파일질라 서버 설치
  • 파일질라 서버 관리자 로그를 통해서 파일 전송 시 문제가 생기는 파일 체크
  • 해당 파일 ftp 전송 시에 제외시키기(보통 중요한 프로젝트 파일은 아니었기에 가능했습니다.)

만약 중요한 파일인데 이런 문제가 발생한다면, 추가적으로 FTP 전송 전 인코딩을 시켜서 전송해야 할 것 같습니다.

저는 파일에 한글이 있는 경우에 문제가 발생했고 해당 파일은 전송 전에 삭제시켜서 전송하는 젠킨스 ITEM을 구성했습니다.

 


 

5. 방화벽 및 보안 문제

방화벽은 간단하게 고급 보안이 포함된 Windows Defender 방화벽에서 인바운드 규칙과 아웃바운드 규칙을 로컬과 서버에서 설정하여 Active Mode로 진행하였습니다. 하지만 회사 자체에서 화이트리스트 형식으로 특정 아이피와 포트가 서로 접근하려면 별도의 신청 후 승인 과정이 필요했기에 해당 부분은 회사 선배님들의 지원을 받아 마쳤습니다.

 

 

거의 한 달에 가까운 시간 동안 폐쇄망 환경 + Windows 서버 + 젠킨스 + FTP + 보안 및 방화벽 등에 시달리면서 고생을 했는데 기초적이지만 까먹었던 것들 (FTP에 Active와 Passive, 방화벽, 스위치)에 대해서 다시 한번 Remind 하는 경험이었고 혼자서 젠킨스를 구축하며 다양한 것들에 대해서 배울 수 있었던 것 같습니다.

궁금한 점이 있으시면 댓글에 남겨주시면 답변드리도록 하겠습니다.

  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유