저장소 관리자없이 소프트웨어를 개발하는 경우 상당히 비효율적 인 부분을 줄이기위한 많은 기회가 누락 될 수 있다.

팀의 모든 구성원이 Central Repository와 같은 공용 저장소를 사용하여 구성 요소를 다운로드해야하는 경우 속도와 효율성이 향상될 것이다.

구성 요소를 배포 할 로컬 위치가없는 경우 소스 제어에 바이너리를 저장하는 등 반쪽 측정 및 절충을 사용하여 바이너리 구성 요소를 공유해야 한다.


개요

Nexus 는 Sonatype 에서 만든 Maven 을 관리하기 위한 오픈소스 프로젝트이다.

Nexus 는 Maven 을 사설로 구축하여금 공통 라이브러리 배포 용도나

다른 Maven Repository를 cache 하여 빠르게 다운로드 받을 수 있게 하는 기능으로 활용 되었다.

현재 Nexus 버전이 업그레이드 이후에는 npm private repository, docker private repository등 까지

많은 타입의 저장소를 구축 할 수 있다.


시작하기전..


설치

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


# 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

설정

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


백업 및 복원, 데이터 관리

Nexus Repository Manager를 사용하면 예약 된 작업을 활용하여 저장소 관리자를 백업 할 수 있다.

백업 절차와 함께 구성 요소 메타 데이터 및 시스템 구성을 저장하는 OrientDB 데이터베이스를 저장하도록 저장소 관리자를 구성 할 수 있다.

이 작업을 구성하여 기본 OrientDB 데이터베이스의 설정 및 메타 데이터를 내보낼 수 있습니다. 작업을 실행할 때 :

저장소 관리자의 다른 부분과 함께 백업 할 데이터베이스의 스냅 샷을 생성한다.

백업이 완료 될 때까지 데이터베이스에 대한 액세스를 일시 중단된다.


NXRM은 BLOB 저장소에 데이터를 저장한다.

메타 데이터 및 구성 정보는 데이터베이스에 별도로 저장되며, blob 저장소와 메타 데이터 데이터베이스를 함께 백업해야하거나

blob 저장소 메타 데이터가 내 보낸 데이터를 복원하려고 시도 할 때 사용된다.

백업 전략에는 데이터를 그대로 유지하기 위해 데이터베이스와 BLOB 저장소를 함께 새 위치로 복사해야한다.

내보내는 데이터베이스에는 구성 요소와 여러 리포지토리의 자산이 포함 된 BLOB 저장소에 대한 포인터가 존재하며,

이들을 함께 백업하지 않으면 구성 요소 메타 데이터가 존재하지 않는 BLOB 저장소를 가리킬 수 있다.

BLOB 저장소 메타 데이터는 내 보낸 데이터를 복원하려고 시도 할 때 사용된다.

따라서 백업 전략에는 데이터를 그대로 유지하기 위해 데이터베이스와 BLOB 저장소를 함께 새 위치로 복사해야한다.


데이터베이스 백업 시나리오

  1. 데이터베이스를 내보내려면 Admin - Export databases for backup 작업을 구성한다.
  2. 예약 된 작업을 실행하여 데이터베이스를 구성된 폴더로 내 보낸다.
  3. 내보내기 태스크를 실행할 때 설치 및 데이터 디렉토리에서 사용자 정의 구성을 백업한다.
  4. 모든 BLOB 상점을 백업하며, 백업 된 모든 구성 및 내 보낸 데이터를 저장한다.

백업이 완료 될 때까지 데이터베이스에 대한 쓰기 액세스가 일시적으로 중지됩니다. 업무 외 시간에 백업 작업을 예약하는 것이 좋습니다.


Configure and Run the Backup Task

데이터베이스 백업을 위해 새 태스크를 구성하고 실행하려면 태스크 구성 및 실행의 단계를 검토하십시오. 이 작업의 양식에는 백업 위치라는 추가 필드가 포함됩니다.이 필드에는 백업 데이터를 저장하려는 디렉토리의 경로를 입력해야합니다 (그림 5.1 참조). "수동 관리자 - 디렉토리 위치가있는 백업 작업용 데이터베이스 내보내기"


Restore Exported Databases

내 보낸 데이터베이스 파일을 예약 된 작업을 실행 한 상태로 복원 할 수 있습니다. 이를 위해서는 다음이 필요합니다.

  • 데이터베이스가 반출 된 백업 구성 및 메타 데이터 내보내기 태스크에서 백업 위치 필드에 지정된 위치에 액세스하십시오
  • 이전 상태로 복원하기 위해 모든 데이터베이스 디렉토리를 제거하십시오.

복원에는 백업 프로세스 중에 내 보낸 모든 데이터베이스가 포함되어야합니다. 데이터베이스를 개별적으로 복원해서는 안되며, 단일 백업의 파일 (즉, 동일한 시간 소인이있는 파일) 만 복원 중에 사용해야합니다.


  1. Nexus Manager 중지
  2. $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

정기적으로 구성 및 데이터를 백업하는 것이 좋다.




  • No labels
Write a comment…