You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

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

팀의 모든 구성원이 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

접속

설정

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



체크리스트

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