设置jenkins:
手动触发:
[root@server6 ~]# chmod 777 /var/run/docker.sock ##权限
查看控制台:
在harbor查看:
自动触发:
添加插件:
在gitlab中打开外部请求:管理中心—>设置(网路)
之后进入到项目中:设置(webhooks)
在gitlab中:
测试jenkins是否可以触发,上传镜像到harbor:
第十次触发:
在harbor仓库中查看:
构建好jenkins自动触发:
[root@server5 demo]# git add index.html [root@server5 demo]# git commit -a -m "updata index.html"
[root@server5 demo]# git push -u origin master
手动触发docker:
[root@server6 ~]# curl localhost
查看harbor仓库:
远程构建镜像:
在远程主机server8上安装docker
[root@server6 sysctl.d]# scp bridge.conf root@192.168.21.139:/etc/sysctl.d/
[root@server8 sysctl.d]# sysctl --system ##使文件生效
Jenkins使用tls方式连接docker构建主机:
生成key和ca证书:
[root@server8 ~]# openssl genrsa -aes256 -out ca-key.pem 4096
[root@server8 ~]# openssl req -new -x509 -days 365 -key ca-key.pem -sha256 -out ca.pem
生成相应的文件:
生成server-key和csr文件:
[root@server8 ~]# openssl genrsa -out server-key.pem 4096
[root@server8 ~]# openssl req -subj "/CN=server8" -sha256 -new -key server-key.pem -out server.csr
可以使用ip地址方式进行tls连接:
[root@server8 ~]# echo subjectAltName = DNS:server8,IP:192.168.21.139,IP:127.0.0.1 >> extfile.cnf
[root@server8 ~]# echo extendedKeyUsage = serverAuth >> extfile.cnf
[root@server8 ~]# openssl x509 -req -days 365 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out server-cert.pem -extfile extfile.cnf
安装docker证书:
[root@server8 ~]# cp /usr/lib/systemd/system/docker.service /etc/systemd/system/docker.service
[root@server8 ~]# vim /etc/systemd/system/docker.service
[root@server8 ~]# cp ca.pem server-cert.pem server-key.pem /etc/docker/ ##将本机用到的证书移动到/etc/docker中
[root@server8 ~]# systemctl daemon-reload ##重新加载 [root@server8 ~]# systemctl restart docker ##重启docker
[root@server8 ~]# netstat -antlp ##查看端口
生成客户端key和证书:
[root@server8 ~]# openssl genrsa -out key.pem 4096
[root@server8 ~]# openssl req -subj '/CN=client' -new -key key.pem -out client.csr
[root@server8 ~]# echo extendedKeyUsage = clientAuth > extfile.cnf
[root@server8 ~]# openssl x509 -req -days 365 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out cert.pem -extfile extfile.cnf
在jenkins主机server6中:
测试:
禁用docker:(在server8添加解析)
[root@server5 demo]# vim index.html
[root@server5 demo]# git commit -a -m "update index.html v4"
[root@server5 demo]# git push -u origin master
[root@server8 docker]# vim /etc/hosts ##添加解析
[root@server6 docker]# scp -r certs.d/ root@192.168.21.139:/etc/docker/ ##复制证书
手动触发: