码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • jenkins


    目录

    1.什么是jenkins

    2.为什么使用jenkins

    3.安装jenkins

    3.1.准备条件

    3.1.1.安装jdk下载jdk,上传至linux并解压

    3.1.2.配置环境变量

    3.1.3.使配置环境变量生效

    3.1.4.检测java环境信息

    3.2.打开虚拟机

    3.3.将把jenkins的war放入虚拟机中

    3.4.运行jenkins

    3.5.访问浏览器

    3.6.查看密码

    3.7.输入密码进入

    3.8.安装成功之后

    4.修改密码

    4.1.点击用户列表

    4.2. 点击admin

    4.3.点击设置

    4.4.修改密码

    4.5.修改密码之后,重新登录

    4.6.登录成功之后

    5.jenkins集成jdk

    5.1.安装jdk

    5.1.1.查看有没有安装jdk

    5.1.2.安装jdk

    5.2. 点击控制面板

    5.3.点击设置

    5.4.点击全局配置

    5.5.点击新增jdk

    5.6.点击保存

    6.集成git

    6.1.在jenkins所在的服务器上安装git软件

    6.2.查看是否安装成功git

    6.3. 点击设置

    6.4.点击全局配置

    6.5.配置

    6.6保存

    6.7.测试jenkins会不会从gitee拉取代码

    6.7.1.打开git

    6.7.2.在git中新建一个仓库

    6.7.3.修改一下文件的内容并提交

    6.7.4.新建item

    6.7.5.报错

    6.7.6.添加

    6.7.7.添加成功之后

    6.7.8.build

    6.7.9.build完成之后

    6.7.10.点击控制台输出

    7.Maven集成

    7.1.将winds下的maven拉取到Linux上

    7.2.解压maven

    7.3.配置环境变量

    7.4.使环境变量生效

    7.5.查看安装情况

    7.6.修改maven的镜像

    7.6.1.进入maven里面

    7.6.2.进入到conf里

    7.6.3.进入到settings.xml

    7.6.4.修改镜像

    7.6.5.修改本地仓库的地址

    7.7.登录到jenkins

    7.8.点击设置和全局配置

    7.9.配置maven

    7.10.安装maven插件

    7.10.1.点击设置和插件7.

    7.10.2搜索maven插件,然后选中,直接安装

    7.11.测试maven

    7.11.1.在gitee上新建一个仓库

    7.11.2.idea中创建一个maven工程

    7.11.3.将maven项目上传到gitee上

    7.11.4.Jenkins拉去项目

    ​8.jenkins自动拉取gitee远程仓库的代码

    8.1.jenkins中安装gitee插件

    8.2.修改任务项目的设置

    8.3.内网穿透

    8.4.在Jenkins上点击保存, 在gitee上点击添加

    8.5.测试

    9.需要把jenkins打包好的项目复制到测试服务器

    9.1.前提

    9.1.1.克隆一下虚拟机,修改一下ip

    9.1.2.链接,看一下javac的命令管用吗?

    9.2.找到我们要复制的jar包

    9.3.将我们jar包复制到另一台虚拟机上

    9.4.测试一下有没有复制成功

    9.5.在当前的虚拟机登录另一台虚拟机

    9.6.退出登录

    10.如何设置免密

    10.1.在jenkins所在的服务器上输入如下命令

    10.2.接下来需要将公钥导入到认证文件中

    10.3.给对应文件授权

    10.3.1.如果希望ssh公钥生效需满足至少下面两个条件

    10.3.2.给对应文件授权

    10.4.将当前虚拟机的公钥复制到另一台虚拟机上

    10.4.1.在另一台虚拟机上创建一个文件放入公钥

    10.4.2.在当前虚拟机上输入命令

    10.4.3.登录另一台虚拟机

    11.使用脚本在jenkins 完成jar的复制

    11.1.测试

    11.1.1.随便修改一下idea项目

    11.1.2.上传的远程仓库

    11.1.3.查看jenkins

    12. 编写启动脚本

    12.1.创建脚本

    12.2.修改权限

    12.3.执行

    13.编写关闭脚本

    13.1.创建关闭的脚本

    13.2.修改权限

    13.3.关闭

    13.4.查看一下是否真的关闭

    14.让jenkins自己启动和关闭

    14.1.测试

    14.1.1.修改idea里面的代码(省略)

    14.1.2.提交到远程仓库(省略)

    14.1.3.查看jenkins有没有打包编译



    1.什么是jenkins

     Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持续、自动的构建/测试软件项目、监控外部任务的运行(这个比较抽象,暂且写上,不做解释)。Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。通常与版本管理工具(SCM)、构建工具结合使用。常用的版本控制工具有SVN、GIT,构建工具有Maven、Ant、Gradle。

    2.为什么使用jenkins

     注意:jenkins本身没有编译打包的功能,集成maven完成编译和打包, jenkins本身不会拉取gitee远程仓库的代码,集成git从远程仓库拉取代码, git本身也不会运行jar,需要集成jdk来运行jar

    3.安装jenkins

    3.1.准备条件

    3.1.1.安装jdk下载jdk,上传至linux并解压

    3.1.2.配置环境变量

    配置/etc/profile的内容
    ############JDK
    export JAVA_HOME=/usr/local/jdk1.8.0_161
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    export PATH=$JAVA_HOME/bin:$PATH

    3.1.3.使配置环境变量生效

    source /etc/profile

    3.1.4.检测java环境信息

    javac

    3.2.打开虚拟机

     3.3.将把jenkins的war放入虚拟机中

     3.4.运行jenkins

    nohup java -jar /usr/local/jenkins.war  --httpPort=8777 --httpsPort=8778 > /usr/local/jenkins.log 2>&1 &

    -- nohup:如果虚拟机休眠时不关闭jenkins
    -- >: 启动时生成的日志放入
    -- &: 后台运行

    3.5.访问浏览器

    http:自己的ip地址:8777

     3.6.查看密码

     使用tail/cat 命令查看启动日志,日志中会输出jenkins密码

     3.7.输入密码进入

     自己运行,比较慢,稍等一会

    3.8.安装成功之后

    4.修改密码

    4.1.点击用户列表

    4.2. 点击admin

     4.3.点击设置

     4.4.修改密码

    4.5.修改密码之后,重新登录

    4.6.登录成功之后

    5.jenkins集成jdk

    5.1.安装jdk

    5.1.1.查看有没有安装jdk

    cat /etc/profile

    5.1.2.安装jdk

    在jenkins所在的服务上安装jdk并配置环境变量。
    【1】解压jdk软件
     [2]vi /etc/profile
        export JAVA_HOME=JDK的安装路径
        export PATH=$PATH:$JAVA_HOME/bin
     [3] source /etc/profile  

    5.2. 点击控制面板

    5.3.点击设置

     

    5.4.点击全局配置

    5.5.点击新增jdk

    5.6.点击保存

    6.集成git

    6.1.在jenkins所在的服务器上安装git软件

    yum install -y git

    6.2.查看是否安装成功git

    git --version

    6.3. 点击设置

     6.4.点击全局配置

     6.5.配置

    6.6保存

    6.7.测试jenkins会不会从gitee拉取代码

    6.7.1.打开git

     6.7.2.在git中新建一个仓库

     6.7.3.修改一下文件的内容并提交

    6.7.4.新建item

     

     

     6.7.5.报错

     错误的原因,因为你的仓库是私有的,需要你的账号和密码

    6.7.6.添加

     

     6.7.7.添加成功之后

    6.7.8.build

    6.7.9.build完成之后

     6.7.10.点击控制台输出

    7.Maven集成

    7.1.将winds下的maven拉取到Linux上

    7.2.解压maven

    tar -zxvf 要解压的名称

    7.3.配置环境变量

    vi /etc/profile

    7.4.使环境变量生效

    source /etc/profile

    7.5.查看安装情况

    mvn -versio

    7.6.修改maven的镜像

    7.6.1.进入maven里面

     cd maven3.8.6/

    7.6.2.进入到conf里

    cd conf/

    7.6.3.进入到settings.xml

    vi settings.xml

    7.6.4.修改镜像

    找到自己Windows下的maven的镜像,将Linux里面的镜像删除,将Windows下的maven镜像复制到Linux里

     7.6.5.修改本地仓库的地址

    7.7.登录到jenkins

    7.8.点击设置和全局配置

    7.9.配置maven

    7.10.安装maven插件

    7.10.1.点击设置和插件7.

    7.10.2搜索maven插件,然后选中,直接安装

     注意:下载失败要重新下载,直到安装maven

    7.11.测试maven

    如果gitee上的maven项目内容发生改变,则会拉取并进行编译 打包了

    7.11.1.在gitee上新建一个仓库

    7.11.2.idea中创建一个maven工程

    7.11.3.将maven项目上传到gitee上

    (1).先将项目设置成本地项目

    (2)上传到远程仓库 (步骤省略)

     7.11.4.Jenkins拉去项目

    (1)新建任务

     

    (2)点击一下

     我们能可以看到成功了

    8.jenkins自动拉取gitee远程仓库的代码

    8.1.jenkins中安装gitee插件

    8.2.修改任务项目的设置

    8.3.内网穿透

    8.4.在Jenkins上点击保存, 在gitee上点击添加

     

    8.5.测试

    测试后在Jenkins上,你会看见她自动打包了

    9.需要把jenkins打包好的项目复制到测试服务器

    在企业中jenkins所在的服务器和我们项目运行时的服务器应该不是同一台机器,jenkins编译打包好的软件在jenkins所在的服务器

    9.1.前提

    9.1.1.克隆一下虚拟机,修改一下ip

    修改IP在以前的笔记中

    9.1.2.链接,看一下javac的命令管用吗?

    9.2.找到我们要复制的jar包

    9.3.将我们jar包复制到另一台虚拟机上

    scp 文件名  root@远程ip:/远程的目录

    9.4.测试一下有没有复制成功

    去另一台虚拟机上去看一下有没有

    9.5.在当前的虚拟机登录另一台虚拟机

    ssh 另一台虚拟机的IP

    远程登录其他服务器时,需要手动的输入密码,能否设置免密登录  

    9.6.退出登录

     exit

    10.如何设置免密

    10.1.在jenkins所在的服务器上输入如下命令

    ssh-keygen -t rsa---敲回车

    10.2.接下来需要将公钥导入到认证文件中

    cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

    10.3.给对应文件授权

    10.3.1.如果希望ssh公钥生效需满足至少下面两个条件

    • .ssh目录的权限必须是700 r4 w2 x1

    • .ssh/authorized_keys文件权限必须是600

    10.3.2.给对应文件授权

     chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys

    10.4.将当前虚拟机的公钥复制到另一台虚拟机上

    10.4.1.在另一台虚拟机上创建一个文件放入公钥

    mkdir ~/.ssh

    10.4.2.在当前虚拟机上输入命令

    scp -p ~/.ssh/id_rsa.pub root@另一台虚拟机的ip:路径

    scp -p ~/.ssh/id_rsa.pub root@192.168.74.154:/root/.ssh/authorized_keys

    10.4.3.登录另一台虚拟机

    ssh 另一台虚拟机的ip

    11.使用脚本在jenkins 完成jar的复制

    #!/bin/bash

    echo "部署的目录和项目名称"---输出的话
    DIR="/data/app" ---把jar包放到那个目录下
    projectName="my-boot"  jar包工程名字

    echo "待部署的应用服务器,可多台用@分割"
    server_ips="192.168.74.154" --准备部署到那个服务器的IP
    for server_ip in ${server_ips[@]}
    do

    echo "ssh连接进行备份操作"
    ssh -Tq -oStrictHostKeyChecking=no root@${server_ip} < mkdir -p $DIR/backup/${projectName} --创建一个备份目录
    mkdir -p $DIR/${projectName}  --创建一个真实的目录
    if [ -f "$DIR/${projectName}/${projectName}.jar" ];then
      mv $DIR/${projectName}/${projectName}.jar $DIR/backup/${projectName}/${projectName}-`date "+%Y%m%d_%H%M%S"`.jar
    fi
    EOF

    echo "拷贝jar包到目标服务器的tmp目录"
    scp -q -oStrictHostKeyChecking=no ${WORKSPACE}/target/*.jar root@${server_ip}:/tmp/${projectName}.jar  --远程复制

    echo "ssh远程连接进行发布操作"
    ssh -q -oStrictHostKeyChecking=no root@${server_ip} < mv /tmp/${projectName}.jar $DIR/${projectName}/${projectName}.jar

    EOF

    done

    echo "success"

    11.1.测试

    11.1.1.随便修改一下idea项目

    11.1.2.上传的远程仓库

     11.1.3.查看jenkins

    12. 编写启动脚本

    12.1.创建脚本

    vi start.sh

    #!/bin/bash
    set -e #任何命令出错就退出
    set -o pipefail

    APP_ID=my-boot
    APP_DIR="/data/app"

    nohup java -jar ${APP_DIR}/${APP_ID}/${APP_ID}.jar > release_out.log &
    start_ok=false
    if [[ $? = 0 ]];then
            sleep 3
            tail -n 10 release_out.log
            sleep 5
            tail -n 50 release_out.log
    fi
    aaa=`grep "Started" release_out.log | awk '{print $1}'`
    if [[ -n "${aaa}" ]];then
        echo "Application started ok"
        exit 0
    else
        echo "Application started error"
        exit 1
    fi

     12.2.修改权限

    chmod 777 start.sh

     12.3.执行

    ./start.sh

    13.编写关闭脚本

    13.1.创建关闭的脚本

    vi stop.sh

    #!/bin/bash

    APP_ID=my-boot
    ps aux | grep ${APP_ID} | grep -v "grep" | awk '{print "kill -9 "$2}' | sh

    13.2.修改权限

    chmod 777 stop.s

    13.3.关闭

    ./stop.sh

     13.4.查看一下是否真的关闭

    ps -ef|grep my-boot.jar

     两个脚本的运行还需要手动运行

    14.让jenkins自己启动和关闭

    sh $DIR/${projectName}/stop.sh
    sh $DIR/${projectName}/start.sh

    14.1.测试

    14.1.1.修改idea里面的代码(省略)

    14.1.2.提交到远程仓库(省略)

    14.1.3.查看jenkins有没有打包编译

  • 相关阅读:
    ZigBee 3.0实战教程-Silicon Labs EFR32+EmberZnet-3-06:不同格式固件的区别:bin/hex/s37/gbl
    基于科大讯飞AIGC创作平台,构建数字人虚拟主播
    2023年中国半导体缺陷检测设备市场规模及发展趋势分析[图]
    TikTok Shop商品的评价有哪些规则?
    最短路径专题6 最短路径-多路径
    python 执行cmd命令,输出日志的几种写法
    ubuntu 系统解决GitHub无法访问问题
    Mysql、Oracle、Sql Service的区别
    LeetCode25:K个一组翻转链表
    一文读懂uniapp中的tabBar底部导航
  • 原文地址:https://blog.csdn.net/ne_123456/article/details/126284284
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号