Linux企业实战(四十九)——持续集成与持续交付(六)

本文档详细介绍了如何在生产环境中配置Jenkins通过TLS连接到Docker主机,包括证书生成、Docker配置、Jenkins设置以及SSH连接测试。实验涉及多台服务器,如Harbor仓库、GitLab仓库、Jenkins主机和新的Docker主机,确保了安全性和可靠性。
摘要由CSDN通过智能技术生成

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

实验环境

主机角色
server1harbor仓库
server2gitlab仓库
server10Jenkins主机
server9docker主机(新添加)

说明:实验环境接着上一篇博客的实验环境继续

我们在之前的实验中经docker主机和Jenkins主机部署在同一台虚拟机上,而现实的生产环境中一般不会这样进行部署,这样会增加Jenkins主机的负担。所以在这里我们新增一台docker主机

在这里插入图片描述

  • 步骤一:在docker主机(server9)上生成服务端key和ca证书
openssl genrsa -aes256 -out ca-key.pem 4096
openssl req -new -x509 -days 365 -key ca-key.pem -sha256 -out ca.pem

在这里插入图片描述
在这里插入图片描述

  • 步骤二:生成server-key和csr文件
openssl genrsa -out server-key.pem 4096
openssl req -subj "/CN=server9" -sha256 -new -key server-key.pem -out server.csr

在这里插入图片描述

  • 步骤三:可以使用ip地址方式进行tls连接
echo subjectAltName = DNS:server9,IP:192.168.0.109,IP:127.0.0.1 >> extfile.cnf
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 ca.pem server-cert.pem server-key.pem /etc/docker/
cp /usr/lib/systemd/system/docker.service /etc/systemd/system/
vim /etc/systemd/system/docker.service
systemctl daemon-reload 
systemctl restart docker
netstat -antlp |grep :2376

在这里插入图片描述
在这里插入图片描述

  • 步骤五:修改Jenkins中之前创建的test1项目中连接docker主机的方式
    在这里插入图片描述
    但是2376端口是加密的,需要生成客户端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主机中添加客户端的key和证书
在这里插入图片描述
在这里插入图片描述
添加客户端的key
在这里插入图片描述
在这里插入图片描述
添加客户端的证书
在这里插入图片描述
在这里插入图片描述
添加server端的ca证书
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

由于harbor仓库是加密且需要认证,我们在之前的实验中已经解决了其认证的问题,接下来需要解决加密的问题(因为server9时新加的docker主机)

scp certs.d/ server9:/etc/docker
systemctl restart docker

在这里插入图片描述
在这里插入图片描述

  • 步骤六:进行测试,在Jenkins主机上手工触发项目test1,测试一下新添加的docker主机server9能否被Jenkins连接上,并且将新构建的镜像上传到harbor仓库中
    在这里插入图片描述

查看控制台输出信息
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 步骤七:对整个流程进行测试
    在这里插入图片描述
    查看一下gitlab仓库中数据有没有发生变化
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述
查看一下Jenkins中是否触发了相应项目的运行
在这里插入图片描述
Jenkins中的test1项目成功运行
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在Jenkins使用SSH的方式添加远程主机

  • 实验环境:

和前面实验环境一致,将server9作为远端docker主机

  • 步骤一:在Jenkins中安装SSH插件
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 步骤二:在Jenkins上进行ssh配置
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 步骤三:修改之前创建的docker项目中的构建
    在这里插入图片描述
    在这里插入图片描述

  • 步骤四:测试
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 步骤五:对ssh脚本进行改进,然后修改test.html的内容,再次进行整个流程的测试
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值