jenkins构建时出现如下报错(无法推送镜像)

解决办法
1.看下jenkins服务器跟Harbor仓库服务器系统时间是否一致,不一致设置成一致即可
#查看Harbor服务器时间
date
#在jenkins服务器上用一下命令修改时间
date -s 08/27/2020
date -s 19:19:00
2.SSL证书过期,重新生成即可
服务器说明
-jenkins服务器:172.20.100.207
-Harbor服务器:172.20.101.156
SSL证书过期解决步骤
在Harbor服务器上配置
1.在Harbor重新生成所需的所有文件
#查看证书是否过期(一年期限,过期了)
root@harbor:/data/harbor/certs# openssl x509 -in /data/harbor/certs/ca.crt -noout -dates
notBefore=Aug 21 01:26:07 2019 GMT
notAfter=Aug 21 01:26:07 2020 GMT
root@harbor:~#cd /data/harbor/certs/
#创建你自己的CA证书
root@harbor:/data/harbor/certs# openssl req -newkey rsa:4096 -nodes -sha256 -keyout ca.key -x509 -days 3650 -out ca.crt -subj "/C=CN/L=gd/O=gz/CN=172.20.101.156"
#创建证书签名请求
root@harbor:/data/harbor/certs# openssl req -newkey rsa:4096 -nodes -sha256 -keyout 172.20.101.156.key -out 172.20.101.156.csr -subj "/C=CN/L=gd/O=gz/CN=172.20.101.156"
#FQDN方式生成注册表主机的证书
root@harbor:/data/harbor/certs# echo subjectAltName = IP:172.20.101.156 > extfile.cnf
root@harbor:/data/harbor/certs# openssl x509 -req -days 3650 -in 172.20.101.156.csr -CA ca.crt -CAkey ca.key -CAcreateserial -extfile extfile.cnf -out 172.20.101.156.crt
#将服务端的 crt 转换成客户端用的 cert
root@harbor:/data/harbor/certs# openssl x509 -inform PEM -in 172.20.101.156.crt -out 172.20.101.156.cert
#查看生成的所有文件
root@harbor:/data/harbor/certs# ls
172.20.101.156.cert 172.20.101.156.crt 172.20.101.156.csr 172.20.101.156.key ca.crt ca.key ca.srl extfile.cnf
2.拷贝所需文件到/etc/docker/certs.d/172.20.101.156/下
root@harbor:/data/harbor/certs#cp /data/harbor/certs/172.20.101.156.cert /etc/docker/certs.d/172.20.101.156/
root@harbor:/data/harbor/certs#cp /data/harbor/certs/172.20.101.156.key /etc/docker/certs.d/172.20.101.156/
root@harbor:/data/harbor/certs#cp /data/harbor/certs/ca.crt /etc/docker/certs.d/172.20.101.156/
root@harbor:/data/harbor/certs# ls /etc/docker/certs.d/172.20.101.156/
172.20.101.156.cert 172.20.101.156.key ca.crt
#重新查看证书过期日期(这次是十年)
root@harbor:/data/harbor/certs# openssl x509 -in /data/harbor/certs/ca.crt -noout -dates
notBefore=Aug 28 01:26:07 2020 GMT
notAfter=Aug 26 01:26:07 2030 GMT
3.查看配置文件docker-compose.yml的证书等文件路径是否正确
root@harbor:/data/harbor/certs# cd /data/harbor/harbor/
root@harbor:/data/harbor/harbor# ls
common data docker-compose.yml harbor.yml install.sh LICENSE logs prepare
root@harbor:/data/harbor/harbor# vim docker-compose.yml

4.重启docker-compose
root@harbor:/data/harbor/certs# cd /data/harbor/harbor/
root@harbor:/data/harbor/harbor# ./prepare
prepare base dir is set to /data/harbor/harbor
Clearing the configuration file: /config/registryctl/env
Clearing the configuration file: /config/registryctl/config.yml
Clearing the configuration file: /config/cert/server.key
Clearing the configuration file: /config/cert/server.crt
Clearing the configuration file: /config/core/env
Clearing the configuration file: /config/core/app.conf
Clearing the configuration file: /config/db/env
Clearing the configuration file: /config/jobservice/env
Clearing the configuration file: /config/jobservice/config.yml
Clearing the configuration file: /config/nginx/nginx.conf
Clearing the configuration file: /config/log/logrotate.conf
Clearing the configuration file: /config/registry/root.crt
Clearing the configuration file: /config/registry/config.yml
Generated configuration file: /config/log/logrotate.conf
Generated configuration file: /config/nginx/nginx.conf
Generated configuration file: /config/core/env
Generated configuration file: /config/core/app.conf
Generated configuration file: /config/registry/config.yml
Generated configuration file: /config/registryctl/env
Generated configuration file: /config/db/env
Generated configuration file: /config/jobservice/env
Generated configuration file: /config/jobservice/config.yml
loaded secret from file: /secret/keys/secretkey
Generated configuration file: /compose_location/docker-compose.yml
Clean up the input dir
root@harbor:/data/harbor/harbor# docker-compose down -v
Stopping nginx ... done
Stopping harbor-jobservice ... done
Stopping harbor-portal ... done
Stopping harbor-core ... done
Stopping registry ... done
Stopping registryctl ... done
Stopping redis ... done
Stopping harbor-db ... done
Stopping harbor-log ... done
Removing nginx ... done
Removing harbor-jobservice ... done
Removing harbor-portal ... done
Removing harbor-core ... done
Removing registry ... done
Removing registryctl ... done
Removing redis ... done
Removing harbor-db ... done
Removing harbor-log ... done
Removing network harbor_harbor
root@harbor:/data/harbor/harbor# docker-compose up -d
Creating network "harbor_harbor" with the default driver
Creating harbor-log ... done
Creating redis ... done
Creating harbor-db ... done
Creating registry ... done
Creating registryctl ... done
Creating harbor-core ... done
Creating harbor-portal ... done
Creating harbor-jobservice ... done
Creating nginx ... done
在jenkins上配置
1.拷贝所需文件到/etc/docker/certs.d/172.20.101.156/下
[root@rancherserver2 ~]# rsync -av ops@172.20.101.156:/etc/docker/certs.d/ /etc/docker/certs.d/
[root@rancherserver2 ~]# ls /etc/docker/certs.d/172.20.101.156/
172.20.101.156.cert 172.20.101.156.key ca.crt
[root@rancherserver2 ~]# systemctl restart docker
效果

网友评论