持续集成与持续交付--jenkins主机远程构建及传送SSH命令

一、分离docker和jenkins主机,使用远程主机构建
上面实验装的是本地构建,但是生产环境很多容易加重jenkins主机的负担。
1、jenkins服务连接远程docker引擎

打开docker外部连接端口
客户端:jenkins主机-----服务端:docker主机
1)生成相应的key和ca证书

[root@server1 docker]# openssl genrsa -aes256 -out ca-key.pem 4096
[root@server1 docker]# openssl req -new -x509 -days 365 -key ca-key.pem -sha256 -out ca.pem

在这里插入图片描述
2)生成server-key和csr文件

[root@server1 docker]# openssl genrsa -out server-key.pem 4096
[root@server1 docker]# openssl req -subj "/CN=server1" -sha256 -new -key server-key.pem -out server.csr

在这里插入图片描述在这里插入图片描述
3)可以使用ip地质方式进行tls连接

[root@server1 docker]# echo subjectAltName = DNS:server1,IP:172.25.7.1,IP:127.0.0.1 >> extfile.cnf
[root@server1 docker]# echo extendedKeyUsage = serverAuth >> extfile.cnf
[root@server1 docker]# cat extfile.cnf
subjectAltName = DNS:server1,IP:172.25.7.1,IP:127.0.0.1
extendedKeyUsage = serverAuth
[root@server1 docker]# pwd
/etc/docker
[root@server1 docker]# openssl x509 -req -days 365 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out server-cert.pem -extfile extfile.cnf

在这里插入图片描述
4)改变docker启动脚本

[root@server1 docker]# cp /usr/lib/systemd/system/docker.service /etc/systemd/system
[root@server1 docker]# vim /etc/systemd/system/docker.service 
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --tlsverify --tlscacert=/etc/docker/ca.pem --tlscert=/etc/docker/server-cert.pem --tlskey=/etc/docker/server-key.pem -H tcp://0.0.0.0:2376
[root@server1 docker]# systemctl daemon-reload 
[root@server1 docker]# systemctl restart docker
[root@server1 docker]# netstat -antlp | grep :2376
tcp6       0      0 :::2376                 :::*                    LISTEN      17776/dockerd       

在这里插入图片描述在这里插入图片描述
2、jenkins网页设置使用
Docker Host URI : tcp://172.25.7.1:2376 #2376端口是加密的需要证书
1)生成客户端证书

[root@server1 docker]# openssl genrsa -out key.pem 4096
[root@server1 ~]# echo extendedKeyUsage = clientAuth >> extfile.cnf
[root@server1 docker]# openssl req -subj "/CN=client" -sha256 -new -key key.pem -out client.csr
[root@server1 ~]# openssl x509 -req -days 365 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out cert.pem -extfile extfile.cnf

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

Client Key:[root@server1 docker]# cat key.pem 
Client Certificate:[root@server1 docker]# cat cert.pem
Server CA Certificate:[root@server1 docker]# cat ca.pem 

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

3、harbor仓库和docker之间的认证
将harbor仓库主机的/etc/docker/cert.d拷贝到docker主机中

4、测试
手动测试
成功上传
成功使用harbor主机中的docker构建拉取上传镜像成功

[root@server3 docker]# curl 172.17.0.2				#成功访问

在这里插入图片描述
二、将任务简单的给远端docker主机
重新部署一台server4-docker主机
1、安装ssh
在这里插入图片描述在这里插入图片描述

2、点击系统配置
jenkins主机可以直接通过ssh给远程docker主机发送命令及文件
在这里插入图片描述

3、认证证书

[root@server1 docker]# scp -r certs.d/ server4:/etc/docker/

4、网页传送命令

docker ps -a | grep webserver && docker rm -f webserver
docke rmi nginx
docker run -d --name webserver -p80:80 nginx

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值