gitlab+jenkins实现一键分布式项目自动化部署(代码片段)

潇潇雨歇_ 潇潇雨歇_     2023-01-15     291

关键词:

分布式项目的打包部署增加了运维人员的工作量,而且工作是机械重复,极无技术含量的,说白就是打更。我们要把复杂的事情简单化,简单的事情标准化,标准的事情流程化,所以打包部署成了我们流程化里头的流水线。

该项目是一个有5台+以上的服务器分流部署的分布式项目,针对该项目的自动化部署所作的持续集成拓扑图如下所示(截图有限,只画了3台,意思到位即可,IP为虚拟IP):

一. jenkins需要装的插件

Git,Pipeline,Publish Over SSH等

搜索安装即可

二.配置安装jenkins的服务器与应用服务器之间的SSH连接

2.1 检查各应用服务器是否开启22端口和SSH服务

ssh localhost
netstat -ntlp          #查看ssh服务的网络连接情况

systemctl status sshd  #ssh服务启动状态

 如果没有开启,需要配置开启

打开sshd配置文件sshd_config ,执行命令:vi /etc/ssh/sshd_config

vi /etc/ssh/sshd_config

去掉监听端口、地址前的注释:

# If you want to change the port on a SELinux system, you have to tell
# SELinux about this change.
# semanage port -a -t ssh_port_t -p tcp #PORTNUMBER
#
Port 22
#AddressFamily any
ListenAddress 0.0.0.0
ListenAddress ::

开启远程登录:

# Authentication:

#LoginGraceTime 2m
PermitRootLogin yes
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10

开启用户密码作为连接验证,保存退出

# To disable tunneled clear text passwords, change to no here!
#PasswordAuthentication yes
#PermitEmptyPasswords no
PasswordAuthentication yes

开启  sshd  服务

systemctl start sshd 或 service sshd restart 

查看22端口是否被监听,执行命令

netstat -nltp | grep 22

netstat -antp | grep sshd

ssh 连接测试

ssh root@88.10.28.56

2.2 配置ssh以及jenkins的ssh配置

在jenkins所在服务器,生成公钥和私钥

ssh-keygen -t rsa

把生成的公钥(/root/.ssh/id_rsa.pub)放在需要部署jar的服务器的/root/.ssh/authorized_keys文件中。然后进入jenkins系统配置 

Jenkins 系统全局配置-Publish over SSH设置: 把生成的私钥放在key那里,path to key写上私钥的路径

密钥格式

-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEA6Ybe0cXysqPS0R92fFW6ihbnQzrCYBBfQ1pB5xyPI63WTIj7
USniU4OLiBp5sGGoRh9pKHhkqTMBKspnn3yWW/kBJGp3bSKiZ8wj3wrGjn9hQN+q
mrG0gdYaxx2rZVD0Bf54eY2Gt2dz8I974OKibfNz09ADrwSFz4sD03wRzcK3Nife
WgzEzBy/JwyXPih66rO/qe+qQMw7uKpWiq+L6Pq5gld/yl6TobvX+0CtazpltDRq
FMm5UYe63TaB4p2xbbgK0Suked+ltWSM6rETO+BTE6xzgbEBCeTq00D9+q9nPg6P
oWO63OqKNuJdmDnNaBJ2StF+IEMBwE/956O5AwIDAQABAoIBAEPoto8mEyejwECT
9668d1yEwIeqZK/u0uURMCz2/yEPAkyLYRn/JhPHIyJXIKAMJhUOOVRNfmg9rs80
wOF+J3Nje9ONKmGQOs4YbS4FQixaGnv1DvWhS66eBnd0x0zVN8EuePZQE6bt7Kc9
8nY5MabrrvkfepLAq/Doqhor8Dl3Id6MENO1H+UsO9IgaX6WxvJFbfm6c5a3jkLf
5n36FEgJjY+cirwFL4WZOpZ4hmnzZsYbYOOcQGeU0Hv2AUvlZC4qV7FKq7u/T/P9
19AL3l8MI5ig0QJv1xIsynmB4nBIzGYrsOpYaGP/b/jRkqaJavWkWe7zq72lspt4
KqEKPfECgYEA/yQcJZscDSlXzfxyvBg2wdp24cxkDTyZIcJeJd2pNIdtMUm8IzIc
Fai2oDGP+ATmrYlsEm9IRZEDiC7k0WBiNbxS5jiUc1FijE/fd9QfSGBBvH+eQFTu
74ptEG/MoR12FaDrVdp4kyQEBGVPmZurquHc2US/eJBHjXU9GPoQ9VUCgYEA6lAh
671GehVSS1JbzVpT+ct7+FbPUr6u/cZJfDkQ8x40IS1EsHzbrzu3jDPthRbjfjmj
F/Za5nFGKjwbnpdCObDS6q3j0zszJJT3gStClnVIUJxTD4jXU1Fee8PDFDfMGhjT
El10Sv20eRS+KQaTOBwZu5sZDRgJNLbSA1mq9PcCgYBkGFeOjVao9zJCVqrwjhNV
ZA7FsPkDlGWDMAzdkCOkvwigkIvlxu/rs1/KYwdXRxz0sfgbF1tkJ2saT0NnvQdq
i3J+bW4X+7LM1z0Vdru7GkBP4kVEec2vXkBBdYrzHmrIO3R4Hxi0qSmGS/S5j6/+
f1O0TVtMwlW/8mHA3cIvbQKBgQCD2V+dFb7ox8KtG8UIwwFqGLTDw6WaPC6gIsoL
GtmM1LwkxyJV5YyBCKt6O2Y2c/DDgI9j1n7EGY2QCo7IKPldGUE2SW9f13op5aF4
j+1CWPC+W5jprujru2fdYQUPBW7WaI2tUeU0pZq+X4u57jc9ZaKdTONF2PalMRLw
S67FdQKBgGMCeJxSHNJ8FpzypgPLAuQIVLR4WghZa7RE5dKmleeMoSdzQ7jNfpSt
xGdzG0Rup0m469xb53S1a3otu65PHy2TugwQ24Zrms02NdpmZxEnLKOA7/MIYBYs
uz+GDmRQUz+SDMIGrGTOjt9jTNLgW8Wezbpv/EtOBuYmB1uTw4re
-----END RSA PRIVATE KEY-----

jenkins jar文件传输送设置

echo "重启服务"
pid=$( ps -ef |grep admin.jar |grep 'java -jar'|grep -v grep|awk 'print $2')
kill -9 $pid
sleep 5 #睡眠五秒
nohup java -jar admin.jar > logs/catalina.out &

保存配置

三.进入Jenkins工程面板,点击Build Now进行部署测试

文件成功传输到应用服务器,并成功重启服务。这里有个小插曲,jenkins的编译部署进度条不太友好,日志输出也比较少,有时候编译部署几分钟就完成了,但是进度条30分钟还没结束,这里主要看工程部署后的效果即可,将jenkins的部署超时时间设置的大一点。

jenkins+docker一键自动化部署springboot项目

本文章实现最简单全面的​​Jenkins+docker+springboot​​ 一键自动部署项目,步骤齐全,少走坑路。环境:centos7+git(gitee)简述实现步骤:在docker安装jenkins,配置jenkins基本信息,利用Dockerfile和shell脚本实现项目自动拉取打包并运... 查看详情

linux上gitlab+jenkins实现vuespringcloud项目的自动部署

一、相关插件安装1.安装GitLab相关插件2.NodeJS插件3.Maven插件4.手动安装插件网络或者其他原因,可能导致插件安装失败。可以采用手动安装的方式。手动下载jenkins插件:jenkins插件下载地址:http://mirror.xmission.com/jenkins/plugins/,一... 查看详情

jenkins实现项目自动部署

...脚本2远程执行3配置jenkins任务背景之前给公司搭建过一套gitlab+gerrit+jenkins的持续集成环境,由于操作起来有点繁琐,自己也没太搞清楚该怎么用,所以一直就只用了gitlab来做代码管理。最近要做一个项目自动部署的功能,使用过... 查看详情

jenkins实现自动部署

主机A搭建gitlab。gitlab下载:https://www.gitlab.cc/downloads/  (gitlab中文网)主机B搭建jenkinsjenkins下载:https://jenkins.io/index.html (gitlab官网)两端同时下载openssl-servergitlab端建好,创建一个项目。首先需要在gitlab端配置jenkin 查看详情

jenkins+git+gitlab+ansible实现持续集成自动化部署静态网站--技术流ken(代码片段)

 前言 在之前已经写了关于Git,Gitlab以及Ansible的两篇博客《Git+Gitlab+Ansible剧本实现一键部署Nginx--技术流ken》,《Git+Gitlab+Ansible剧本实现一键部署动态网站(二)--技术流ken》,以及关于jenkins的简单使用《Jenkins持续集成介... 查看详情

gitlab+jenkins通过钩子实现自动部署web项目,图文详细教程(代码片段)

一:基础环境介绍及准备1:Gitlab服务器:ubuntu192.168.152.131—参考搭建:Linux安装gitlab,docker安装gitlab教程2:Jenkins服务器:ubunu192.168.152.130—参考搭建:linux安装Jenkins,或docker安装Jenkins教 查看详情

gitlab+jenkins通过钩子实现自动部署web项目,图文详细教程

参考技术A扩展参考:Jenkins+Gitlab通过脚本自动部署回滚web项目至集群1):Gitlab服务器:ubuntu192.168.152.131---参考搭建:Linux安装gitlab,docker安装gitlab教程2):Jenkins服务器:ubunu192.168.152.130---参考搭建:linux安装Jenkins,或docker安装Jenkin... 查看详情

gitlab自动化触发jenkins构建项目(代码片段)

一、整体流程二、Jenkins安装插件要实现gitlab自动触发的功能,我们需要安装一个插件GitlabHookPlugin。三、重新配置任务在之前的任务里面,在构建触发器多了一项,如下,我们记住上面的接口,地址是我们jenkins的访问地址。四、... 查看详情

jenkins+git+gitlab+ansible实现持续集成自动化部署动态网站--技术流ken(代码片段)

 项目前言 在上一篇博客《Jenkins+Git+Gitlab+Ansible实现持续化集成一键部署静态网站(一)--技术流ken》中已经详细讲解了如何使用这四个工具来持续集成自动化部署一个静态的网站。如果大家可以熟练掌握以上内容,势必... 查看详情

jenkins+docker一键自动化部署springboot项目(代码片段)

...号,实用技术文章及时了解本文章实现最简单全面的Jenkins+docker+springboot一键自动部署项目,步骤齐全,少走坑路。环境:centos7+git(gitee)简述实现步骤:在docker安装jenkins,配置jenkins基本信息,... 查看详情

jenkins+docker一键自动化部署springboot项目(代码片段)

...号,实用技术文章及时了解本文章实现最简单全面的Jenkins+docker+springboot一键自动部署项目,步骤齐全,少走坑路。环境:centos7+git(gitee)简述实现步骤:在docker安装jenkins,配置jenkins基本信息,... 查看详情

[ci]项目规划-后续

?几个方面来写?1,搭建gitlab配邮箱域名等使之好用2,搭建jenkins–yum,安装常见插件3,搭建sonar,汉化4,安装sonar-scanner?0,实现sonar-scanner能手动扫描,在sonar界面可以看到评测结果?1,实现jenkins自动从gitlab拉代码2,构建触发器,实现当gitlab有pus... 查看详情

搭建jenkins,gitlab自动化打包部署项目(代码片段)

安装步骤:1.Docker-compose构建jenkins环境2.Docker-compose构建gitlab环境3.Jenkins,Gitlab自动化打包部署项目1.Docker-compose构建jenkins环境1、创建docker在主机的jenkins数据映射目录mkdir-p/data/jenkins_homechown-R777/data/jenkins_home2、用docker- 查看详情

jenkins自动构建gitlab项目

  安装的plugin: -kubernetes:1.7.1   -workflow-aggregator:2.5   -workflow-job:2.21   -credentials-binding:1.13   -git:3.6.4   查看详情

docker+harbor+jenkins+gitlab自动化cicd构建

文章大纲1.实现CICD的架构简介2.Gitlab部署和实践3.Docker部署4.Harbor私有仓库部署5.Jenkinspipeline项目持续集成实践6.整体架构参考文献1.实现CICD的架构简介本实践介绍了利用Jenkins和docker技术,如何实现CI/CD的各环节的步骤,包括代码... 查看详情

jenkins结合gitlab实现提交代码自动构建(代码片段)

...一个比较核心的工具。主要记录以下两个:利用jenkins和gitlab的webhook结合,实现提交代码之后,自动触发jenkins的构建。顺带介绍一下通过触发器构建,比如直接通过url去触发的方式。一、jenkins结合webhook1、jenkins配置 a、首先j... 查看详情

jenkins结合gitlab实现pipline的自动构建部署(代码片段)

部署jenkins与gitlab服务就在这不演示了,可以参考前面的两篇文章。1、jenkins配置自动构建部署1.1、基于sshkey拉取代码先在jenkins服务器上创建个sshkey,在把公钥配置到gitlab上面,再到jenkinsweb界面配置凭据,使jenkins来拉取代码。roo... 查看详情

gitlab+jenkins实现自动部署

https://carlislebear.blogspot.com/2019/02/gitlab-jenkins-continuous-integration.html  此篇文章写得很详细大体思路如下:一、安装Gitlab+Jenkins(省略)二、配置Gitlab(上传Jenkins服务器的秘钥、捣鼓代码)三、配置Jenkins1、安裝插件ManageJenkins... 查看详情