# Harbor 설치가이드 ### Harbor 설치 1. 사양정보 2. hardware spec
**최소사양****권장사양**
CPU2Core4 Core
Memory4G8G
Disk40GB160GB
3. software spec
**Software****Version**
Docker17.06.0 이상
Docker Compose1.18.0 이상
4. Harbor설치 1. 설치파일 다운로드 2. harbor설치파일 : Download URL : [https://github.com/goharbor/harbor/releases](https://github.com/goharbor/harbor/releases) 3. docker-compose : download URL : [https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)](https://github.com/docker/compose/releases/download/1.24.1/docker-compose-%24(uname%20-s)-%24(uname%20-m)) 5. 압축파일 해제 ```shell ># tar -xvf harbor-offline-installer-v1.7.6.tgz ``` 6. 설정파일 변경 ```shell ># vi harbor.cfg hostname = harbor ``` 7. Docker 실행시 iptables 정책 미생성 옵션 설정 ```shell ># cat /etc/docker/daemon.json { "iptables": false } ``` ### Harbor 설정정보
**파라미터 정보****용 도**
hostname설치하는 서버 호스트네임입력
Database-passwordPostgres root 패스워드
Database-max\_idle\_conns최대 유휴연결 수(0은 무제한), 기본값은 50
Database-max\_open\_conns최대 연결 수(0은 무제한), 기본값은 100
data\_volumeHarbor에 저장할 데이터 경로(호스트경로), 기본값은 /data
Clair-updaters\_intervalClair 업데이트 간격(0은 비활성화), 기본값은 12시간
max\_job\_workers이미지 복제작업 최대 수, 기본값은 10
Notification-webhook\_job\_max\_retryWebhook 최대 재시도 횟수, 기본값은 10
Chart-absolute\_urlEnable : 차트에서 사용할 절대URL경로 disabled : 차트에서 사용할 상대URL경로
log\_levelDebug, info, warning, error, fatal 중 선택, 기본값은 info
log\_rotate\_count로그파일 최대 생성갯수, 기본값은 50
log\_rotate\_size로그파일당 최대 사이즈, 기본값은 200M
log\_external\_endpointsyslog연동시 사용
log\_location로그를 저장할 디렉토리, 기본값은 /var/log/harbor
Proxy-http\_proxyhttp프록시 사용시 설정
Proxy-https\_proxyhttps프록시 사용시 설정
Proxy-no\_proxy프록시 미사용시 설정
1. 설치수행 **(추후 속성변경 혹은 재설치시 필요한 파일들이기 때문에, 데이터 삭제하면 안됨)**
># install.sh
1. 설치옵션 설정
**옵션정보****설 명**
--with-notaryhttps를 사용할 경우 설정
--with-clair보안취약점에 대한 정적분석 기능 활성화
--with-chartmuseum차트기능 활성화
2. Docker Container 실행상태 확인 ```shell > # docker container ls CONTAINER ID        IMAGE                                    COMMAND                  CREATED             STATUS                    PORTS                                                              NAMES 08ba147d3fe2        goharbor/nginx-photon:v1.7.6             "nginx -g 'daemon ..."   58 minutes ago      Up 21 minutes (healthy)   0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp, 0.0.0.0:4443->4443/tcp   nginx 4867028a2f0d        goharbor/harbor-portal:v1.7.6            "nginx -g 'daemon ..."   58 minutes ago      Up 21 minutes (healthy)   80/tcp                                                             harbor-portal dfca94c54bd5        goharbor/harbor-jobservice:v1.7.6        "/harbor/start.sh"       58 minutes ago      Up 21 minutes                                                                                harbor-jobservice debd6e8e8606        goharbor/harbor-core:v1.7.6              "/harbor/start.sh"       58 minutes ago      Up 21 minutes (healthy)                                                                      harbor-core e0b1a1d488b6        goharbor/clair-photon:v2.0.8-v1.7.6      "/docker-entrypoin..."   58 minutes ago      Up 21 minutes (healthy)   6060-6061/tcp                                                      clair b9ab0d96e2f4        goharbor/registry-photon:v2.6.2-v1.7.6   "/entrypoint.sh /e..."   58 minutes ago      Up 21 minutes (healthy)   5000/tcp                                                           registry 0fe2e40d93f4        goharbor/harbor-db:v1.7.6                "/entrypoint.sh po..."   58 minutes ago      Up 21 minutes (healthy)   5432/tcp                                                           harbor-db 97a3c0c4788a        goharbor/harbor-registryctl:v1.7.6       "/harbor/start.sh"       58 minutes ago      Up 21 minutes (healthy)                                                                      registryctl e8a73d34601c        goharbor/redis-photon:v1.7.6             "docker-entrypoint..."   58 minutes ago      Up 21 minutes             6379/tcp                                                           redis acb08e237de1        goharbor/harbor-adminserver:v1.7.6       "/harbor/start.sh"       58 minutes ago      Up 21 minutes (healthy)                                                                      harbor-adminserver 2da452ad1ffe        goharbor/harbor-log:v1.7.6               "/bin/sh -c /usr/l..."   58 minutes ago      Up 21 minutes (healthy)   127.0.0.1:1514->10514/tcp                                          harbor-log ``` 3. 웹 브라우저에서 harbor 로그인 (기본 로그인 정보 : admin / Harbor12345), **로그인 후 반드시 패스워드 변경 필요** ### Harbor 운영 1. 계정관리 1. 계정추가 1. Administration -> Users 진입 2. New User 선택 후 사용자명, email주소, 패스워드 순으로 입력 \* 패스워드는 8-20자, 최소 대소문자/숫자 1개씩 입력되어야 함 2. 관리자 계정 권한 변경 1. Administratoration -> User진입 2. 변경할 계정명 선택 후 SetAdmin 선택 2. 프로젝트 관리 1. 프로젝트 생성 1. Project -> NEW PROJECT -> 생성할 Project이름 -> 속성 입력 Access Level : 프로젝트의 공개여부 (Public으로 설정하는 경우 모든 계정에서 프로젝트가 조회됨), 기본값은 private 2. 프로젝트 권한설정 1. 생성한 프로젝트 → Member 진입 2. +USER 메뉴 선택 후 추가할 계정명 입력 3. 부여할 권한 선택
**Role 이름****권 한**
Project Adminpush / pull / delete
Developerpush / pull
GuestPull
### Harbor 재설정 1. Harbor 구성 재설정 (harbor 설치파일 파일(install.sh 있는 곳으로 이동) ```shell ># docker-compose down -v ```
설정정보 변경 작업 진행
```shell ># docker-compose up -d ```
2. 실행중인 컨테이너 정보만 중지 (이미지데이터와 DB파일 유지) ```shell ># docker-compose down -v ``` 3. 기존정보 삭제 후 재설치시 ```shell ># rm -rf /data/database ># rm -rf /data/registry ```