Page History
저장소 관리자없이 소프트웨어를 개발하는 경우 상당히 비효율적 인 부분을 줄이기위한 많은 기회가 누락 될 수 있다.
팀의 모든 구성원이 Central Repository와 같은 공용 저장소를 사용하여 구성 요소를 다운로드해야하는 경우 속도와 효율성이 향상될 것이다.
구성 요소를 배포 할 로컬 위치가없는 경우 소스 제어에 바이너리를 저장하는 등 반쪽 측정 및 절충을 사용하여 바이너리 구성 요소를 공유해야 한다.
개요
Nexus 는 Sonatype Inc에서 에서 만든 Maven Repository 를 을 관리하기 위한 오픈소스 프로젝트 이다프로젝트이다.
Nexus 2 버전은 는 Maven Repository를 을 사설로 구축하여 구축하여금 공통 라이브러리 배포 용도나
다른 Maven Repository를 cache 하여 빠르게 다운로드 받을 수 있게 하는 기능으로 활용 되었다.
현재 Nexus 3 버전부터는 버전이 업그레이드 이후에는 npm private repository, docker private repository repository등 까지
많은 타입의 저장소를 구축 할 수 있다.
시작하기전..
- 도커가 설치되어 있어야 함.
- Nexus 는 도커로 실행. (https://hub.docker.com/r/sonatype/nexus3/)
설치
nexus에서 사용할 data 폴더 생성 및 권한 변경
호스트에서 별도 볼륨데이터를 관리하지 않을 경우 권한 설정 생략.
Code Block | ||
---|---|---|
| ||
# 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 # docker run -i -t -p 8081:8081 -p 12000:12000 \ --name nexus \ -v /nexus-data:/nexus-data \ sonatype/nexus3 # docker run -i -t -p 8082:8082 -p 13000:13000 \ --name nexus-test \ -v /some/dir/nexus-data:/nexus-data \ sonatype/nexus3:3.10.0 |
속접속
- 주소 : 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 또는 도메인] 부분을 변경해서 실행.
Code Block | ||
---|---|---|
| ||
sh -c "echo 'DOCKER_OPTS=\"\$DOCKER_OPTS --insecure-registry=[Nexus 서버 IP 또는 도메인]:12000\"' >> /etc/default/docker" |
로그인
Code Block | ||
---|---|---|
| ||
# 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 |
백업 및 복원, 데이터 관리
Nexus Repository Manager를 사용하면 예약 된 작업을 활용하여 저장소 관리자를 백업 할 수 있다.
백업 절차와 함께 구성 요소 메타 데이터 및 시스템 구성을 저장하는 OrientDB 데이터베이스를 저장하도록 저장소 관리자를 구성 할 수 있다.
이 작업을 구성하여 기본 OrientDB 데이터베이스의 설정 및 메타 데이터를 내보낼 수 있습니다. 작업을 실행할 때 :
저장소 관리자의 다른 부분과 함께 백업 할 데이터베이스의 스냅 샷을 생성한다.
백업이 완료 될 때까지 데이터베이스에 대한 액세스를 일시 중단된다.
NXRM은 BLOB 저장소에 데이터를 저장한다.
메타 데이터 및 구성 정보는 데이터베이스에 별도로 저장되며, blob 저장소와 메타 데이터 데이터베이스를 함께 백업해야하거나
blob 저장소 메타 데이터가 내 보낸 데이터를 복원하려고 시도 할 때 사용된다.
백업 전략에는 데이터를 그대로 유지하기 위해 데이터베이스와 BLOB 저장소를 함께 새 위치로 복사해야한다.
내보내는 데이터베이스에는 구성 요소와 여러 리포지토리의 자산이 포함 된 BLOB 저장소에 대한 포인터가 존재하며,
이들을 함께 백업하지 않으면 구성 요소 메타 데이터가 존재하지 않는 BLOB 저장소를 가리킬 수 있다.
BLOB 저장소 메타 데이터는 내 보낸 데이터를 복원하려고 시도 할 때 사용된다.
따라서 백업 전략에는 데이터를 그대로 유지하기 위해 데이터베이스와 BLOB 저장소를 함께 새 위치로 복사해야한다.
데이터베이스 백업 시나리오
- 데이터베이스를 내보내려면 Admin - Export databases for backup 작업을 구성한다.
- 예약 된 작업을 실행하여 데이터베이스를 구성된 폴더로 내 보낸다.
- 내보내기 태스크를 실행할 때 설치 및 데이터 디렉토리에서 사용자 정의 구성을 백업한다.
- 모든 BLOB 상점을 백업하며, 백업 된 모든 구성 및 내 보낸 데이터를 저장한다.
백업이 완료 될 때까지 데이터베이스에 대한 쓰기 액세스가 일시적으로 중지됩니다. 업무 외 시간에 백업 작업을 예약하는 것이 좋습니다.
Configure and Run the Backup Task
데이터베이스 백업을 위해 새 태스크를 구성하고 실행하려면 태스크 구성 및 실행의 단계를 검토하십시오. 이 작업의 양식에는 백업 위치라는 추가 필드가 포함됩니다.이 필드에는 백업 데이터를 저장하려는 디렉토리의 경로를 입력해야합니다 (그림 5.1 참조). "수동 관리자 - 디렉토리 위치가있는 백업 작업용 데이터베이스 내보내기"
Restore Exported Databases
내 보낸 데이터베이스 파일을 예약 된 작업을 실행 한 상태로 복원 할 수 있습니다. 이를 위해서는 다음이 필요합니다.
- 데이터베이스가 반출 된 백업 구성 및 메타 데이터 내보내기 태스크에서 백업 위치 필드에 지정된 위치에 액세스하십시오
- 이전 상태로 복원하기 위해 모든 데이터베이스 디렉토리를 제거하십시오.
복원에는 백업 프로세스 중에 내 보낸 모든 데이터베이스가 포함되어야합니다. 데이터베이스를 개별적으로 복원해서는 안되며, 단일 백업의 파일 (즉, 동일한 시간 소인이있는 파일) 만 복원 중에 사용해야합니다.
- Nexus Manager 중지
- $data-dir/db 에서 디렉토리 삭제. /nexus-data/db
accesslog
analytics
audit
component
config
security
3. 내 보낸 데이터베이스를 저장 한 위치로 이동하십시오.
4. 복원을 위해 해당 .bak 파일을 $ data-dir / restore-from-backup에 복사합니다 (참고 : 버전 3.10.0 이하의 경우 $ data-dir / backup을 복원 위치로 사용).
/nexus-data/restore-from-backup
5. nexus 재시작.
구성 요소 데이터베이스가 복원되면 구성 요소를 포함하는 해당 BLOB 저장소도 복원해야합니다
delete unused manifests and images
이 작업은 더 이상 참조되지 않는 콘텐츠 삭제, 태그가 추가 된 매니페스트에서 더 이상 참조하지 않는 이미지 및 태그가 추가 된 레이어에서 더 이상 참조하지 않는 V1 레이어를 삭제합니다.
체크리스트
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
정기적으로 구성 및 데이터를 백업하는 것이 좋다.