前言

Jenkins 是一个可扩展的持续集成引擎,主要作用:简化部署流程,降低部署风险,快速回滚,解放开发和运维人员。
CICD是持续集成(Continuous Integration)和持续部署(Continuous Deployment),是指通过自动化的构建、测试和部署,实现软件产品可循环使用的快速交付流程。

Jenkins的工作流程

1.开发者向Gitlab提交代码
2.GitLab使用 WebHook通知Jenkins有代码更新。
3.Jenkins 从节点(指定分支)拉取代码到服务器本地
4.Jenkins对拉取到本地的代码进项打包(mvn clean install),生成本地war或者jar包
5.Jenkins在服务器上对打包后的war或者jar进行部署  java  -jar  xxxx.war
6.Jenkins将构建报告以邮件方式通知开发者
7.将Jenkins的界面开放给开发或者测试人员,他们只需要点击 build ,选择分支,一键部署即可

centos7中Jenkins的安装

1.安装jdk

jdk-11.0.18_linux-x64_bin.tar.gz方式
创建文件夹
mkdir -p /usr/local/java
上传 jdk-11.0.18_linux-x64_bin.tar.gz 到/home/java,并解压 tar -zxvf jdk-11.0.18_linux-x64_bin.tar.gz
修改配置文件
vi /etc/profile,   添加
export JAVA_HOME=/usr/local/java/jdk-11.0.18
export CLASSPATH=$JAVA_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile
java -version如果有java8的环境,移除再重新配置java11的配置
whereis  java
rm -rf  /usr/bin/java
ln -s /usr/local/java/bin/java /usr/bin/java

2.安装maven

apache-maven-3.6.1-bin.tar.gz
mkdir -p /usr/local/mvn
tar -zxvf  apache-maven-3.6.1-bin.tar.gz
vi /etc/profile
export MAVEN_HOME=/usr/local/mvn/apache-maven-3.6.1
export PATH=${PATH}:${MAVEN_HOME}/bin
source /etc/profile
mvn -v

3.安装git

v2.32.0.tar.gz
mkdir -p /usr/local/git
git 安装省略,详见 https://blog.csdn.net/liutong880818/article/details/127177930
git --version

4.安装Jenkins

jenkins.war
nohup java -jar jenkins.war --httpPort=9000 >>log 2>&1 &
访问; http://192.168.12.171:9000
重启 http://192.168.12.171:9000/restart

5.Jenkins创建任务

5.1Jenkins各种插件安装—插件管理

Git plugin
Git Parameter
Publish Over SSH
Pipeline Maven Integration Plugin
Role-based Authorization Strategy

5.2 全局工具配置






5.3生成git的公钥和私钥

生成私钥和公钥
config --list
git config --global user.name "xuelin.zhou"
git config --global user.email "zhouxl@sijibao.com"
git config --global user.password 'Zxl123456!@#'
git config --global unset user.passwordssh-keygen -t rsa -C "zhouxl@sijibao.com"      查看私钥cat /root/.ssh/id_rsa全部复制 ,放在Jenkins的全局凭证那里查看公钥cat /root/.ssh/id_rsa.pub全部复制,放在gitlab上面   gitlab上  我的------setting----SSH Keys

5.4 创建Jenkins任务

构建一个maven项目,如果没有这个选项,则需要安装maven插件,去【插件管理】那里安装








exce command

#!/bin/sh
ps -ef |grep -v grep | grep cu-extension-service | awk '{print $2}' | xargs kill -s 9 >/dev/null 2>&1
cd /home/wyyt/server/cu-extension/cu-extension-service/target
tar -zxvf  *-SNAPSHOT.tar.gz
rm -rf  *-SNAPSHOT.tar.gz
nohup java -jar boot/cu-extension-service.jar --spring.cloud.nacos.discovery.register-enabled=false --server.servlet.context-path=/cu  --spring.config.location=config/ >/home/wyyt/server/cu-extension/log-extension.log 2>&1 &

/home/wyyt/server/cu-extension/pom.xml
clean install  -DskipTests=true

修改admin 密码


权限配置

6搭建过程中的坑

6.1 git Authentication failed for 128

升级git版本 删除原有 git  ln 重新 简历ln  链接
whereis git
rm -rf /usr/local/bin/git
ln -s /usr/local/git/bin/git /usr/bin/git

6.2 Jenkins启动失败

最新的Jenkins 依赖 jdk11   ,需要安装 jdk11

6.2.1Jenkins插件安装失败

https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json


6.3搭建过程中常用调试命令

curl -H "Content-Type: application/json" -H "Authorization: 49e0028ab5b44c139494d4d6c6960e9d" -X POST -d '{"belongToDate":"2023-02"}' "https://sc-gateway.test027.com/cu/enterprise/index/todo/purchase/businessInfos"nohup java -jar boot/cu-extension-service.jar --spring.cloud.nacos.discovery.register-enabled=false  --server.servlet.context-path=/cu  --spring.config.location=config/ >/dev/null 2>&1 &git ls-remote -h http://git.sijibao.com/cu/cu-extension.git HEAD启动
nohup java -jar jenkins.war --httpPort=9000 >>log 2>&1 &
关闭
ps -ef |grep -v grep | grep jenkins | awk '{print $2}' | xargs kill -s 9 >/dev/null 2>&1
查看端口号8080正在使用的进程
netstat -alnp | grep 8080   git config --global user.name "xuelin.zhou"git config --global user.email "zhouxl@sijibao.com"ssh-keygen -t rsa -C "zhouxl@sijibao.com"git config --global --unset user.passwordgit config --global user.password
git config --listyum install -y isof
yum intall -t net-toolsisof -i:9005
netstat -ntulp | grep 9005
ps -ef|grep java
ps -ef|grep java | grep 进程号
Jenkins的启动脚本
vi start.sh
#!/bin/bash
nohup java -jar jenkins.war --httpPort=9000 >>log 2>&1 &
chmod +x start.sh
./start.sh
vi stop.sh
#!/bin/bash
ps -ef |grep -v grep | grep jenkins | awk '{print $2}' | xargs kill -s 9 >/dev/null 2>&1
./stop.sh

redis安装

wget https://download.redis.io/releases/redis-6.2.6.tar.gztar -xvf redis-6.2.6.tar.gzcd redis-6.2.6makemake installvi /redis.confdaemonize = yes         ---开启后台启动requirepass  123456    ----密码protected-mode no    ------远程连接bind 192.168.12.124    ---远程连接iptouch start.sh  stop.shvi  start.sh/usr/local/redis/redis-6.2.6/src/redis-server  /usr/local/redis/redis-6.2.6/redis.confvi stop.shps  -ef |grep -v grep | grep redis | awk '{print $2}' | xargs kill -s 9 >/dev/null 2>&1chmod +x start.sh stop.sh

6.4安装包

Jenkins安装包
jenkins.war -----Jenkins 2.391
apache-maven-3.6.1-bin.tar
jdk-11.0.18_linux-x64_bin.tar.gz
v2.32.0.tar.gz ----git
redis-6.2.6.tar.gz

Jenkins的实战部署相关推荐

  1. jenkins shell 权限_使用Jenkins一键打包部署SpringBoot应用,就是这么6!

    任何简单操作的背后,都有一套相当复杂的机制.本文将以SpringBoot应用的在Docker环境下的打包部署为例,详细讲解如何使用Jenkins一键打包部署SpringBoot应用. Jenkins简 ...

  2. Jenkins服务器实战-臧雪园-专题视频课程

    Jenkins服务器实战-125人已学习 课程介绍         本套课程从持续集成--持续传送--持续测试--持续传送--持续监控和管理都有涉及.能够让没有接触过或者不太了解DevOps实践全过程 ...

  3. springboot 使用Jenkins实现自动化部署

    springboot 使用Jenkins实现自动化部署 简介 Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持 ...

  4. Jenkins+Pipeline+Docker部署SpringBoot项目到远程服务器

    Jenkins部署 前言 Jenkins 安装 nginx配置 jenkins配置 Docker安装 项目部署 项目添加Dockerfile文件 Jenkins新建任务 使用Pipeline部署 结果 ...

  5. 使用jenkins自动化打包部署Vue项目。详细教程。

    此教程 jenkins是直接部署到linux服务器上.服务器系统:CentOS 7.3 64位. 流程:jenkins关联码云仓库,点击立即构建,执行shell进行构建,打包,把打包后的dist目录文 ...

  6. gitlab与jenkins的自动化部署(通过webhook与ansible)

    gitlab与jenkins的自动化部署(通过webhook与ansilble) 1.部署介绍 gitlab服务器:192.168.1.49:80 jenkins服务器:192.168.1.49:81 ...

  7. 实战部署MySQL用户认证的Postfix邮件系统(3)

    实战部署Postfix+MySQL+Dovecot+Postfixadmin+Extmail邮件系统(3) -----构建开源邮件系统系列 如果您对本系列文章感兴趣,可以通过点击以下链接查看全文: 点 ...

  8. JenKins使用pm2部署.net core网站

    JenKins使用pm2部署.net core网站 原文:JenKins使用pm2部署.net core网站 登录事先准备好的 Jenkins 1 新建任务 2 源码管理 git 输入正确地址 3 构 ...

  9. 这样用Docker 搭建 Jenkins 实现自动部署,你知道吗?

     一.为什么用jenkins 主要是我们现在的项目都是采用手动部署的,每当给项目中新增一个功能就必须执行(打包--测试--上传测试修复的包到指定服务器--部署上线),这个流程操作起来繁杂,不小心就可能 ...

最新文章

  1. day22-Model数据验证以及钩子
  2. python安装cv-oracle时如何解决vc++的问题_python中cx_Oracle模块安装遇到的问题与解决方法...
  3. svn更改用户名方法:
  4. Spring MVC 教程,快速入门,深入分析——多视图控制器
  5. queue:queue清空的方法?
  6. js中load载入html页面,使用jquery的load方法加载html页面,但是html引入的js不生效
  7. python基础入门大作业怎么做_【百度飞桨】零基础Python课程大作业
  8. 面试官:Spring创建好的单例对象存在线程安全问题吗?
  9. sql server 数据库创建链接服务器访问另外一个sql server 数据库
  10. Spring(16)——使用注解进行bean定义
  11. java 30天之前,Java获取当前时间30天之前的时间
  12. lsblk命令 – 查看系统的磁盘
  13. html+css基础-3-flex,浏览器内核,HTML5新特性
  14. [答疑]关于产品线:充气娃娃,苍井空,猩猩
  15. 网络战武器——震网(Stuxnet)病毒
  16. 非靶向代谢组学数据分析方法总结
  17. 【Matlab绘图要点汇总】Matlab图中添加图例+添加轴标签+添加文本+添加注释
  18. 区块链数据分析1-如何查询token余额
  19. 从零开始学Swift计时器App开发
  20. 培训python开发 骗局

热门文章

  1. VC 基础知识(转载)
  2. 高压放大器在柔性材料测试中的应用
  3. 第五届蓝帽杯初赛 misc 赛后复现
  4. AMD新旗舰APU A12-9800 主频可超频至4.8GHz
  5. python--猜数字小游戏
  6. 和一位创业老板的聊天
  7. GUI+Mysql 仿照水果超市实现简易学生管理系统
  8. WordPress文章海报分享WP-Poster插件源码
  9. O2O,B2B,C2C等相关概念介绍
  10. 伺服驱动器-速度环设计