일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- KAKAO
- pytorch
- CUDA
- enV
- AI
- list
- docker
- TORCH
- LLM
- format
- Package
- GitLab
- Linux
- pandas
- Flask
- Paper
- judge
- evaluation
- Converting
- Database
- PostgreSQL
- Windows
- numpy
- file
- DB
- Python
- git
- Mac
- Container
- Laravel
Archives
- Today
- Total
Daily Develope
[Nexus] Nexus를 활용한 Ubuntu 패키지 저장소 구축 및 사용 본문
의의
다운로드 속도나 비공개 패키지 등 환경 조건에 따라서 패키지 저장소를 별도 구축해야하는 경우가 있다. 일반적으로 패키지 저장소는 서버 형태로 배포되기에, 본 게시글에서는 Linux 및 Container를 활용한 Nexus 구축 방법에 대해 정리하고있다.
구축환경
- OS : Ubuntu
- Client : Nexus Container (with Docker)
- Proxy : NginX
- (편의상 샘플코드의 sudo 생략)
절차
1) Neuxs 설치 (Package Repository)
- Docker Image 다운로드
docker pull sonatype/nexus3:latest
- Container 생성
docker run -d -p 8081:8081 --name nexus -v /some/dir/nexus-data:/nexus-data sonatype/nexus3:latest
# -d : 백그라운드 실행
# -p : local의 8081 포트와 nexus container의 8081 포트 연결
# --name : Container 이름
# -v : local의 /some/dir/nexus-data 폴더와 nexus container의 /nexus-data 연결 (재실행되는 경우 기존 패키지 유지를 위해 필요)
- 기타
- Container 생성시 오류가 발생하는 경우 "docker logs nexus" 명령으로 로그 확인
- local의 폴더(volume)를 연결한 경우 경우에 따라 접근권한 문제가 발생할 수 있음에 주의 (해당 문제 발생시 755 권한 부여)
2) NginX 설치 (Proxy)
Proxy의 경우 Ubuntu Host 환경에 설치를 예시로 진행
- OS에 NginX 설치
apt-get update
apt-get install nginx
- 설치 확인
systemctl status nginx
- 포트 얀결
- /etc/nginx/sites-available/default 파일을 아래와 같이 수정
# Host에 8081 포트 연결 요청시 Local(Container)의 8081 포트로 대신 연결하도록 설정
server{
listen 8081;
listen [::]:8081;
# ...(중략)...
location / {
# 패킷 헤더 설정
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
# 로컬 8081 포트로 연결
proxy_pass http://127.0.0.1:8081;
}
}
- 적용
systemctl reload nginx
3) Neuxs 설정
- Nexus 접속 (아래 둘 중 하나)
- http://127.0.0.1:8081
- http://{public_ip}:8081
- 초기 admin 비밀번호 설정
- blob 신규 생성
- admin 로그인
- 상단 톱니바퀴 클릭
- 좌측 [Repository] - [Blob Stores] 클릭
- [Create Blob Store] 클릭
- Type을 File로 선택하고 Blob 이름 입력 후 저장 (Save)
- repository 신규 생성
- kakao의 apt repository로 연결하는 것을 예시로 진행
- admin 로그인
- 상단 톱니바퀴 클릭
- 좌측 [Repository] - [Repositories] 클릭
- [Create repository] 클릭
- apt (proxy) 클릭
- repository 설정
- Name 항목에 Repository 이름 입력
- Distibution 항목에 Repository 별칭 입력 (예. OS 버전명 기재 xenial, bionic, focal, etc)
- Proxy의 Remote storage 항목에 카카오 Repository인 http://mirror.kakao.com/ubuntu/ 를 입력
- Blocked 및 Auto blocking enabled 비활성화
- 저장 (Save)
Nexus Repository 연결 (Ubuntu 예시)
OS의 기본 package repository 변경
- Nexus 접속 및 좌측 Browse 에서 앞서 생성한 Reposisory 확인 및 URL copy 클릭&복사
예) http://127.0.0.1/repository/ubuntu/
- 연결하려는 ubuntu기반 guest os에서 repository 설정
cd /etc/apt
vi sources.list
- sources.list 파일에서 기술된 주소를 1번 과정에서 복사한 주소로 대체
package repository 초기화
기존 package 및 목록 삭제
apt clean
rm -rf /var/lib/apt/lists/*
package 연결 확인
apt-get update