部署Harbor服务

192.168.100.26 服务器部署,需要其他装好docker及docker-compose

apt install docker docker-compose docker

可登录github下载指定版本的离线安装包:https://github.com/goharbor/harbor

如下载2.4.2版本的

一、创建部署目录,下载安装包:

midir /app && cd /app && wget https://github.com/goharbor/harbor/releases/download/v2.4.2/harbor-offline-installer-v2.4.2.tgz

二、解压

tar -zxvf harbor-offline-installer-v2.4.2.tgz

三、进入harbor目录,从harbor模板copy一个配置文件

cd harbor && cp harbor.yml.tmpl harbor.yml

四、创建证书文件夹

mkdir /app/harbor/certs && cd /app/harbor/certs

五、创建私有证书,可参考官网:

https://goharbor.io/docs/2.6.0/install-config/configure-https/

1、生成 CA 证书私钥

openssl genrsa -out ca.key 4096

2、生成 CA 证书

openssl req -x509 -new -nodes -sha512 -days 3650 -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=harbor.haoge.com" -key ca.key  -out ca.crt

3、生成服务器证书,生成私钥

openssl genrsa -out harbor.haoge.com.key 4096

4、生成证书签名请求 (CSR)

openssl req -sha512 -new -subj “/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=harbor.haoge.com” -key harbor.haoge.com.key -out harbor.haoge.com.csr

5、生成 x509 v3 扩展文件

cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names

[alt_names]
DNS.1=harbor.haoge.com
DNS.2=haoge.com
DNS.3=haoge
EOF

6、使用该v3.ext文件为您的 Harbor 主机生成证书

openssl x509 -req -sha512 -days 3650 -extfile v3.ext -CA ca.crt -CAkey ca.key -CAcreateserial -in harbor.haoge.com.csr -out harbor.haoge.com.crt

7、转换harbor.haoge.com.crt为 harbor.haoge.com.cert, 供 Docker 使用。Docker 守护进程将.crt文件解释为 CA 证书,.cert将文件解释为客户端证书

openssl x509 -inform PEM -in harbor.haoge.com.crt -out harbor.haoge.com.cert

8、将服务器证书、密钥和 CA 文件复制到 Harbor 主机上的 Docker 证书文件夹中。您必须先创建适当的文件夹:

mkdir /etc/docker/certs.d/harbor.haoge.com -p
cp harbor.haoge.com.cert /etc/docker/certs.d/harbor.haoge.com/
cp harbor.haoge.com.key /etc/docker/certs.d/harbor.haoge.com/
cp ca.crt /etc/docker/certs.d/harbor.haoge.com/

9、 重启docker服务

systemctl restart docker

六、编辑harbor.yml文件,内容如下

vim harbor.yml

hostname: harbor.haoge.com

http:
  port: 80

https:
  port: 443
  certificate: /app/harbor/certs/harbor.haoge.com.crt
  private_key: /app/harbor/certs/harbor.haoge.com.key

harbor_admin_password: Harbor12345

database:
  password: root123
  max_idle_conns: 100
  max_open_conns: 900
data_volume: /data

trivy:
  ignore_unfixed: false
  skip_update: false
  offline_scan: false
  insecure: false
jobservice:
  max_job_workers: 10

notification:
  webhook_job_max_retry: 10

chart:
  absolute_url: disabled

log:
  level: info
  local:
    rotate_count: 50
    rotate_size: 200M
    location: /var/log/harbor

_version: 2.4.0

proxy:
  http_proxy:
  https_proxy:
  no_proxy:
  components:
    - core
    - jobservice
    - trivy

七、安装harbor服务

cd /app/harbor  && ./install.sh --with-trivy --with-chartmuseum

八、停止及启动harbor服务

停止: docker-compose down
启动: docker-compose up -d
更新证书需要执行脚本:./prepare  然后重新启动:docker-compose up -d
作者:于浩  创建时间:2023-03-19 14:10
最后编辑:于浩  更新时间:2024-05-20 16:57