(CentOS 7 / On-Prem) Harbor Kurulumu

Fatih KÜÇÜK
KoçSistem
Published in
5 min readDec 15, 2021

Prerequisites for the target host

Installation Steps

1 — Kurulum dosyası indirme

Kurulum dosyası indirme linki: https://github.com/goharbor/harbor/releases

İndirmek için iki seçeneğimiz vardır.

  1. Online installer : Burada Harbor image dosyasını Docker Hub’dan indirmektedir. Bu nedenle dosya boyutu çok küçüktür.
  2. Offline installer : Ana bilgisayarın internet bağlantısı yoksa offline installer tercih edebilirsiniz. Buradajş dosya önceden oluşturulmuş image dosyalarını içermektedir. Bu nedenle dosya boyutu daha büyüktür.
sudo wget https://storage.googleapis.com/harbor-releases/release-1.8.0/harbor-online-installer-v1.8.1.tgz
sudo tar -xvf harbor-online-installer-v1.8.1.tgz

2 — harbor.yml dosyası konfigürasyonu

hostname : registry.kocsistem.com.tr değiştirildi.

port : 443 olarak değiştirildi

certificate : certificate path bilgisi

private_key : key path bilgisi

Sertifikayı config dosyasına ekleyebilmek için pfx uzantılı sertifikadan .key ve .cer dosyalarını elde etmek gerekiyor. Bunun için aşağıdaki komutları çalıştırabilirsiniz:

#crt'ye çevirmek için
openssl pkcs12 -in Wilcard.kocsistem.com.tr.pfx -out Wildcard.crt -clcerts
#key ini çıakrtmak için
openssl pkcs12 -in Wilcard.kocsistem.com.tr.pfx -nocerts -out Wilcard.key
#crt'yi cer'e çevirmek için
openssl x509 -inform pem -in Wildcard.crt -outform der -out Wildcard.cer

Not: Sertifikaların doğru şekilde yüklenmesi için /data/docker-volumes/harbor altındaki secret folder’ını yedekleyip silmeniz gerekebilir.

# Configuration file of Harbor# The IP address or hostname to access admin UI and registry service.
# DO NOT use localhost or 127.0.0.1, because Harbor needs to be accessed by external clients.
hostname: registry.kocsistem.com.tr
# http related config
#http:
# port for http, default is 80. If https enabled, this port will redirect to https port
#port: 80
# https related config
https:
# # https port for harbor, default is 443
port: 443
# # The path of cert and key files for nginx
certificate: /data/docker-files/harbor/CERT/domain.cer
private_key: /data/docker-files/harbor/CERT/domain.key
# Uncomment external_url if you want to enable external proxy
# And when it enabled the hostname will no longer used
# external_url: https://reg.mydomain.com:8433
# The initial password of Harbor admin
# It only works in first time to install harbor
# Remember Change the admin password from UI after launching Harbor.
harbor_admin_password: admin
# Harbor DB configuration
database:
# The password for the root user of Harbor DB. Change this before any production use.
password: root123
# The default data volume
data_volume: /data
# Harbor Storage settings by default is using /data dir on local filesystem
# Uncomment storage_service setting If you want to using external storage
# storage_service:
# # ca_bundle is the path to the custom root ca certificate, which will be injected into the truststore
# # of registry's and chart repository's containers. This is usually needed when the user hosts a internal storage with self signed certificate.
# ca_bundle:
# # storage backend, default is filesystem, options include filesystem, azure, gcs, s3, swift and oss
# # for more info about this configuration please refer https://docs.docker.com/registry/configuration/
# filesystem:
# maxthreads: 100
# # set disable to true when you want to disable registry redirect
# redirect:
# disabled: false
# Clair configuration
clair:
# The interval of clair updaters, the unit is hour, set to 0 to disable the updaters.
updaters_interval: 12
# Config http proxy for Clair, e.g. http://my.proxy.com:3128
# Clair doesn't need to connect to harbor internal components via http proxy.
http_proxy:
https_proxy:
no_proxy: 127.0.0.1,localhost,core,registry
jobservice:
# Maximum number of job workers in job service
max_job_workers: 10
chart:
# Change the value of absolute_url to enabled can enable absolute url in chart
absolute_url: disabled
# Log configurations
log:
# options are debug, info, warning, error, fatal
level: info
# Log files are rotated log_rotate_count times before being removed. If count is 0, old versions are removed rather than rotated.
rotate_count: 50
# Log files are rotated only if they grow bigger than log_rotate_size bytes. If size is followed by k, the size is assumed to be in kilobytes.
# If the M is used, the size is in megabytes, and if G is used, the size is in gigabytes. So size 100, size 100k, size 100M and size 100G
# are all valid.
rotate_size: 200M
# The directory on your host that store log
location: /var/log/harbor
#This attribute is for migrator to detect the version of the .cfg file, DO NOT MODIFY!
_version: 1.8.0
# Uncomment external_database if using external database.
# external_database:
# harbor:
# host: harbor_db_host
# port: harbor_db_port
# db_name: harbor_db_name
# username: harbor_db_username
# password: harbor_db_password
# ssl_mode: disable
# clair:
# host: clair_db_host
# port: clair_db_port
# db_name: clair_db_name
# username: clair_db_username
# password: clair_db_password
# ssl_mode: disable
# notary_signer:
# host: notary_signer_db_host
# port: notary_signer_db_port
# db_name: notary_signer_db_name
# username: notary_signer_db_username
# password: notary_signer_db_password
# ssl_mode: disable
# notary_server:
# host: notary_server_db_host
# port: notary_server_db_port
# db_name: notary_server_db_name
# username: notary_server_db_username
# password: notary_server_db_password
# ssl_mode: disable
# Uncomment external_redis if using external Redis server
# external_redis:
# host: redis
# port: 6379
# password:
# # db_index 0 is for core, it's unchangeable
# registry_db_index: 1
# jobservice_db_index: 2
# chartmuseum_db_index: 3
# Uncomment uaa for trusting the certificate of uaa instance that is hosted via self-signed cert.
# uaa:
# ca_file: /path/to/ca

3 -install.sh dosyasını çalıştırma ve Harbor’ı başlatma

Aşağıdaki komut çalıştırıldıktan sonra ‘docker-compose.yml’ dosyası oluşacaktır ve Harbor uygulaması ayağa kalkacaktır. Bir daha ‘docker-compose up’ yapmaya gerek yoktur.

sudo ./install.sh

Bundan sonraki aşamalarda ‘harbor.yml’ dosyasında bir değişiklik yapmak için Harbor instance stop edilir.

sudo docker-compose down

Değişiklikler yapılıp kaydedildikten sonra tekrardan Harbor instance start edilir.

sudo docker-compose up

--

--

Fatih KÜÇÜK
KoçSistem

Fatih is a technology lover with interest in DevOps, Agile, Container and Container Orchestration.