::: IT인터넷 :::

Nexus3를 이용한 APT 사설 저장소 구축

정보보안썰문가 곰탱이푸우 2021. 6. 19. 08:20
반응형

APT 저장소는 우분투 (데비안 계열) 패키지의 공식 저장소이다.

Nexus3를 이용한 APT 사설 저장소 구축은 1개 저장소만 필요하다.

  • proxy (Remote) - 외부의 APT 저장소의 패키지를 저장하고 내부 사용자에게 전달한다. 캐시 (Cache) 역할이다.

 

그림으로 표현하면 다음과 같다.

 

 

참고로 APT 저장소는 hosted와 proxy만 제공하고, group은 제공하지 않는다.

직접 우분투 패키지를 작성할 일은 거~~~~의 없어서 hosted도 거의 사용하지 않을 것 같다.

 

 

blob store 생성

APT를 통해 공유되는 패키지 파일들을 저장할 공간을 설정한다.

Create blob store 버튼을 클릭한다.

 

 

사용할 저장 공간을 생성한다.

  • Type - File을 선택한다.
  • Name - debian은 데비안 계열 패키지 저장소를 나타내는 prefix, 뒤에 repos는 어떤 용도인지 나타내는 postfix이다.
  • Enable Soft Quota는 저장 공간의 용량을 제한할 때 사용한다.
  • Path - 파일이 저장되는 실제 경로이다. Name에 입력한 내용으로 자동 생성된다.

 

 

Name은 헷갈리지 않는 선에서 자유롭게 작성 가능하다.

 

 

APT Repository 생성

blob store 생성이 완료되면 저장소 (Repository)를 생성한다.

Create repository 버튼을 클릭한다.

 

 

생성할 저장소 타입을 선택한다.

apt는 group (repos)을 제외한 hosted (local), proxy (remote) 등 2개의 타입 생성이 가능하다.

proxy만 생성하고 hosted는 생성하지 않는다.

 

 

proxy (remote)

apt (proxy)를 선택하여 proxy 저장소를 생성한다. 외부 저장소를 연결할 때 사용한다.

  • Name - 저장소 이름을 설정한다. Blob store와 동일한 이름을 사용한다.
  • Distribution - 우분투 배포 버전을 기입한다. 각각의 우분투 배포판 별로 저장소 구축이 가능하다. 단일 저장소로 운영할 것이므로 ubuntu로 기입한다.
  • Remote storage - 외부 저장소 경로 (URL)를 입력한다. 공식 한국 APT 미러 사이트인 http://mirror.kakao.com/ubuntu를 지정한다.
  • Blob store - 기존에 생성한 저장소를 선택한다. proxy (Remote) 저장소이므로 debian-repos 를 선택한다.

 

 

 

참고로 Distribution의 e.g.에 bionic으로 되어 있는데 배포 버전별 코드명이다.

  • 14.04 LTS - Trusty
  • 16.04 LTS - Xenial
  • 18.04 LTS - Bionic
  • 20.04 LTS - Focal

 

자세한 내용은 아래를 참고한다.

우분투 배포 버전

 

모든 저장소 설정이 완료되었다. pypi보다 훨씬 간단하다.

 

APT 클라이언트 설정

설정한 저장소가 잘 동작하는지 확인하기 위해 apt 명령으로 Nexus3 저장소를 사용한다.

 

리눅스

apt 명령어가 리눅스 (우분투) 패키지 저장소이므로 리눅스 환경만 테스트를 진행한다.

 

/etc/apt/sources.list 파일을 수정해야 하므로, 먼저 실수할 것에 대비해 해당 파일을 백업한다.

/etc 경로이기 때문에 관리자 권한이 필요하여 sudo를 사용한다.

 

 

sources.list 파일을 작성 (또는 수정)한다.

/etc 경로이기 때문에 관리자 권한이 필요하여 sudo를 사용한다.

 

 

sources.list 파일의 내용을 작성 (또는 수정)한다.

debian-repos (remote) 저장소를 사용하며, 경로 다음에 우분투 배포 버전이 있으므로 띄어쓰기에 주의한다.

Ctrl + H 명령으로 바꾸기 기능을 사용하면 보다 쉽게 수정할 수 있다.

 

패키지 저장소 수정

  • 기존 - http://kr.archive.ubuntu.com/ubuntu/
  • 수정 - https://도메인주소:포트/repository/debian-repos/

 

 

 

Security 저장소 수정

  • 기존 - http://security.ubuntu.com/ubuntu
  • 수정 - https://도메인주소:포트/repository/debian-repos/

 

 

source.list 파일 수정이 완료되면 sudo apt update 명령으로 저장소 정보를 새로 받아온다.

시스템에 설치되는 패키지 관련 작업이기 때문에 관리자 권한으로 실행하기 위한 sudo 명령이 필요하다.

 

설정한 APT 저장소에서 정상적으로 패키지 정보를 받아오는 것을 알 수 있다.

 

sudo apt upgrade 명령으로 업데이트를 진행한다. 역시 설정한 저장소에서 정상적으로 다운로드 하는 것을 알 수 있다.

 

실제 debian-repos 저장소를 확인해보면 다운로드한 상당히 많은 수의 패키지가 저장 된 것을 확인할 수 있다.

 

apt 사설 저장소 설정이 완료되었다.

클릭 몇 번으로 사설 저장소를 설정 할 수 있고, pypi와 다르게 proxy (remote) 저장소만 설정하므로 더욱 간단하다.

반응형