티스토리 뷰

카테고리 없음

nexus3 파일 보관 주기 설정

rangrangerang 2024. 6. 16. 00:00

우리 팀에서는 브랜치에 push 될 때 마다 jar를 넥서스에 올려놓는 형식으로 사용중이다

넥서스를 설치한 이후 보관주기를 설정한적이 없어 서버용량의 99% 를 사용중이었고 nexus 의 기능을 이용해 cleanup 설정을 걸어줬다

 

1. Cleanup Policies 설정

정리 정책 설정

  • Nexus Repository Manager에 로그인한다
  • Administration > Repository > Cleanup Policies로 이동한다

 

  • 기본적인 정보들을 적어준다

 

Cleanup Criteria 설정:

  • Component Age: 게시일로부터 설정한 날짜가 지났을 경우
  • Component Usage: 설정한 날짜 동안 다운로드되지 않았을 경우
  • Asset Name Matcher: 삭제할 대상 이름의 정규식 설정

 

조건을 설정한 후 레포지토리를 선택하고 Preview를 클릭하여 삭제 대상 파일을 확인한다
대상이 맞다면 Save를 눌러 저장한다

 

2. 정책을 레포지토리에 적용

Repositories 에 들어가 원하는 레포지토리를 선택해준다

 

가장 하단에서 Cleanup Policies를 선택하여 원하는 정책을 설정하고 저장한다

여기까지 설정하면 내부에서 자동으로 스케쥴링이 돌면서 대상들을 정리한다

 

3. Cleanup Policies 수동 실행

서버의 용량이 99%인 상황에서는 설정한 정책이 실행되길 기다릴수가 없었다 바로 실행하는 방법을 알아보자
System > Tasks 에 들어가 Cleanup Service 를 선택해준다

 

다음 실행 일정, 마지막 실행 일자 등의 정보가 나온다

상단의 Run 버튼을 눌러 바로 실행한다

 

그럼 우상단에 팝업이 뜨면서 실행됐음을 알린다

 

실제로 실행된 로그는 Support > _Logs 에서 확인할 수 있다

어떤 파일이 지워졌는지 등의 로그를 확인할 수 있다

 

여기까지 하고 넥서스의 폴더에서 파일들이 삭제되는것을 확인했는데 서버의 용량을 확인해봤는데 전혀 줄어들지 않았다

그래서 찾아봤더니 공식 문서에 아래와 같은 내용이 있다

You can create cleanup policies and assign them to one or more repositories so that a scheduled cleanup task (Admin - Cleanup repositories using their associated policies) will automatically soft delete artifacts from the repository. A soft delete means that artifacts are only marked for removal and not yet deleted from the disk. Disk space is not reclaimed until the Admin - Compact blob store task runs.

이 내용을 보면 cleanup policies 는 단지 어떤 파일이 삭제될 지 표시만하고(soft delete) 실제로는 Compact blob store task 가 실행될 때 지워진다고 설명하고 있다

 

4. Compact Blob Store Task 실행

그렇다면 Compact blob store 하는 방법을 알아보자

Tasks > Create Task 로 태스크를 생성해주자(사진에는 이미 생성된 태스크가 있는데 무시하자..)

compact 라고 검색하면 Admin-Compact blob store 태스크가 검색된다
이 친구를 클릭해주자

 

아래 내용을 채워주고 Create task 해주자!

  • Task name: 태스크 이름
  • Notification email: 실패 또는 성공/실패 시 메일을 보낼 이메일
  • Send Notification on: 메일을 실패 시 보낼지 성공/실패 시 보낼지 선택
  • Blob Store: 정리할 레포지토리 설정
  • Task Frequency: 태스크 실행 주기 설정 (매일, 매주, 매달 등)

 

 

그럼 태스크가 생성되고  Run을 클릭해 실행시킨다

 

실행 로그는 cleanup 과 마찬가지로 logs 에서 확인할 수 있다

 

서버를 확인해보면 /data 의 용량이 99% -> 64% 로 줄어든 것을 확인할 수 있다

 


참고

https://help.sonatype.com/en/cleanup-policies.html

 

Cleanup Policies

NoteImportant Impact for Those Migrating to H2 or PostgreSQLIn OrientDB environments, the Asset Name Matcher uses Lucene regular expressions; in H2 or PostgreSQL environments, it uses Java regular expressions. The major difference is that the Lucene regula

help.sonatype.com

 

 

 

 

 

 

 

 

 

댓글