jenkins持续集成2

jenkins自动构建docker镜像,并上传至harbor仓库

在jenkins的项目中

手动推送并查看

# docker images

在harbor仓库查看

上传完成

出现报错的可能:jenkins.sock文件没有给权限

认证出现报错:使用harbor用户密码

gitlab自动触发jenkins

第一:在jenkins的设置中找gitlab的插件并安装,安装完成后

第二:在gitlab主机中点击管理中心-设置-网络 打开允许webhook和服务对本地网络的请求

第三:将jenkins中的URL 和secret token写入gitlab中的Webhooks中

jenkins

在gitlab主机中


第四:测试jenkins是否可以触发,上传镜像到harbor

在jenkins中出现26次触发

在harbor仓库中查看

第五:构建好jenkins自动触发(做容器构建时需要用jenkins用户去执行,需要提升jenkins用户的权限)

测试:在gitlab中跟新index.html

未更新前jenkins中访问:

# curl localhost

在jitlab中去跟新index.html

在haobor仓库中查看

在jenkins中继续访问

# curl localhost

远程构建镜像

Jenkins使用tls方式连接docker构建主机

第一:在远程主机server2中,安装docker-ce。

第二:生成key和ca证书,然后生成server-key和csr文件,然后使用ip地址方式进行tls连接

# openssl genrsa -aes256 -out ca-key.pem 4096   
# openssl req -new -x509 -days 365 -key ca-key.pem -sha256 -out ca.pem  生成key和ca证书
# openssl genrsa -out server-key.pem 4096
# openssl req -subj "/CN=server2" -sha256 -new -key server-key.pem -out server.csr 生成server-key和csr文件
# echo subjectAltName = DNS:server2,IP:172.25.254.2,IP:127.0.0.1 >> extfile.cnf  使用ip地址方式进行tls连接
# echo extendedKeyUsage = serverAuth >> extfile.cnf 
# 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证书

# cp /usr/lib/systemd/system/docker.service /etc/systemd/system/docker.service  
# vim /etc/systemd/system/docker.service    更改配置,加入参数  启用tls校验,以及认证需要的证书。开启server端tcp连接端口2376
# cp ca.pem server-cert.pem server-key.pem /etc/docker/  将本机用到的证书移动到/etc/docker中
# systemctl daemon-reload    重新加载
# systemctl restart docker   重启服务
# netstat -antlp    查看端口

第四:生成客户端key和证书

# openssl genrsa -out key.pem 4096
# openssl req -subj '/CN=client' -new -key key.pem -out client.csr
# echo extendedKeyUsage = clientAuth > extfile.cnf
# openssl x509 -req -days 365 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem   -CAcreateserial -out cert.pem -extfile extfile.cnf

第五:在jenkins主机server1中

第六:禁用docker项目,进行测试(注意在远程主机添加harbor主机的解析)

在远程主机中查看

在harbor仓库中

jenkins的交付

git -> gitlab -> jenkins -> 远程 -> harbor

第一:在jenkins中安装插件ssh

第二:在jenkins配置管理中找到SSH remote hosts

第三:在docker项目中,删除对本机操作的shell  添加ssh连接远程主机执行shell

测试:在gitlab中git -> gitlab -> jenkins -> 远程 -> harbor

也可以手动触发docker项目

查看获取的镜像

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值