저장소 관리자없이 소프트웨어를 개발하는 경우 상당히 비효율적 인 부분을 줄이기위한 많은 기회가 누락 될 수 있다.
팀의 모든 구성원이 Central Repository와 같은 공용 저장소를 사용하여 구성 요소를 다운로드해야하는 경우 속도와 효율성이 향상될 것이다.
구성 요소를 배포 할 로컬 위치가없는 경우 소스 제어에 바이너리를 저장하는 등 반쪽 측정 및 절충을 사용하여 바이너리 구성 요소를 공유해야 한다.
개요
Nexus 는 Sonatype 에서 만든 Maven 을 관리하기 위한 오픈소스 프로젝트이다.
Nexus 는 Maven 을 사설로 구축하여금 공통 라이브러리 배포 용도나
다른 Maven Repository를 cache 하여 빠르게 다운로드 받을 수 있게 하는 기능으로 활용 되었다.
현재 Nexus 버전이 업그레이드 이후에는 npm private repository, docker private repository등 까지
많은 타입의 저장소를 구축 할 수 있다.
시작하기전..
- 도커가 설치되어 있어야 함.
- Nexus 는 도커로 실행. (https://hub.docker.com/r/sonatype/nexus3/)
설치
nexus에서 사용할 data 폴더 생성 및 권한 변경
호스트에서 별도 볼륨데이터를 관리하지 않을 경우 권한 설정 생략.
# mkdir ~/nexus-data && sudo chown -R 200 ~/nexus-data # docker run -d -p 8081:8081 -p 12000:12000 \ --name nexus \ -v /home/ubuntu/nexus-data:/nexus-data \ sonatype/nexus3
접속
- 주소 : http://{{docker export ip}}:{{docker export port}}
- 관리자 유저 ID 및 password : admin // admin123
- 관리자 정보는 설치 후 변경.
설정
Repositories 를 클릭 후, Create repository 를 클릭한다.
그리고 docker (hosted) 를 선택한다. docker 부분에 group, hosted, proxy 가 있는데 각각의 역활은 아래와 같다.
- group : 여러개의 repository 를 묶음
- hosted : docker Registry
- proxy : docker hub 또는 사설 docker registry 를 캐쉬해서 빠른 속도로 사용할 수 있게 해준다.
- Name : 이해하기 쉽게 만들면 된다.
- HTTP : Repository로 사용할 포트 입력
- Enable Docker V1 API : 체크
참고
Docker V1 API 는 Docker Registry V1 을 의미함.
현재 사용되고 있는 버전은 V2 로 https 만 지원함.
https 로 하려면 추가로 인증서 작업이 필요해서 해당 글에서는 Docker Registry V1 을 사용하면서 Http 로 할 수 있도록 설정을 변경해야 한다.
[Nexus 서버 IP 또는 도메인] 부분을 변경해서 실행.
sh -c "echo 'DOCKER_OPTS=\"\$DOCKER_OPTS --insecure-registry=[Nexus 서버 IP 또는 도메인]:12000\"' >> /etc/default/docker"
로그인
# docker login -u admin -p admin123 [Nexus 서버 IP 또는 도메인]:12000 # docker pull hello-world # docker tag hello-world [Nexus 서버 IP 또는 도메인]:12000/hello-world # docker push [Nexus 서버 IP 또는 도메인]:12000/hello-world # docker rmi hello-world [Nexus 서버 IP 또는 도메인]:12000/hello-world # docker pull [Nexus 서버 IP 또는 도메인]:12000/hello-world # docker images
체크리스트
Change the Administrative Password and Email Address
관리자 암호의 기본값은 admin123이다.
새로 설치하는 첫 번째 작업은이 암호를 변경하는 것. 관리자 암호를 변경하려면 브라우저 창의 왼쪽에있는 보안 메뉴에서
암호 변경으로 관리자 암호를 변경한다.
Configure the SMTP Settings
저장소 관리자는 사용자 이름과 비밀번호 복구 이메일을 보낼 수 있다.
따라서 SMTP 호스트 및 포트를 구성해야 한다.
Configure Default HTTP and HTTPS Proxy Settings
많은 배포에서 인터넷 및 저장소 관리자가 프록시해야하는 모든 원격 저장소는 배포 회사 내부의 HTTP 또는 HTTPS 프록시 서버를 통해서만 액세스 할 수 있다.
이러한 경우 저장소 관리자가 원격 저장소를 전혀 프록시 할 수 있으려면 해당 프록시 서버에 대한 연결 정보를 구성해야 한다.
Setup a Backup procedure for your server
정기적으로 구성 및 데이터를 백업하는 것이 좋다.