Jenkins服务安装配置

什么是 Jenkins

Jenkins 是一个开源的自动化服务器,主要用于持续集成(CI,Continuous Integration)和持续交付/持续部署(CD/CD,Continuous Delivery/Continuous Deployment)。它帮助开发团队自动化构建、测试、部署和交付软件的过程,从而提高软件开发的效率和质量。

Jenkins 下载安装

Jenkins启动包官网下载地址:https://www.jenkins.io/download/

下载完成后把 jenkins.war 包上传到 Linux 服务器上 (windows 或 linux 都是这个包)

注意:如果jenkins版本太高,需要使用JDK11或更高才能启动Jenkins服务。并不影响你在 Jenkins 中构建或部署使用 JDK 8 开发的代码。

Linux 环境准备

JDK17:用于启动Jenkins服务

JDK8:你的代码中使用的是JDK8的话,Jenkins使用JDK8编译打包你的代码。

Maven3.6+:Jenkins编译你的代码需要的maven版本。

Git:Jenkins拉取你的Git仓库代码。git 已经把 ssh 公钥配置到git代码仓库。

SSH:Linux服务器允许用户远程连接到系统,进行管理、维护和文件传输。

启动 Jenkins 服务,命令如下:

java -jar jenkins.war

浏览器打开 Jenkins 页面:http://127.0.0.1:8080/

安装推荐的插件,因为我们不知道要安装哪些插件,推荐的插件会把保证使用的插件安装上来

插件安装中,等待插件安装完成

插件安装完成之后,会进入到创建管理员账号密码页面


修改 admin 账号的密码

因为上面的admin账号的密码不生效,还是原来的 /root/.jenkins/secrets/initialAdminPassword 路径下的密码,所以这里要修改一下密码


Jenkins 配置环境

配置 中文插件

搜索 local 和 Localization: Chinese 插件,点击 Install after restart 安装后重启Jenkins服务

进入 Dashboard->Manage Jenkins->Appearance,配置如下


配置 Maven 插件

  1. 下载 Maven 插件

搜索 Maven Integration,点击 Install after restart 安装后重启Jenkins服务

  1. 配置 Maven

进入 Dashboard->Manage Jenkins->Tools


配置 JDK

进入 Dashboard->Manage Jenkins->Tools


配置 Git

进入 Dashboard->Manage Jenkins->Tools

linux 使用 which git 命令查看 git可执行文件的路径

配置 Git 登录的账户密码

进入 Dashboard->Manage Jenkins->Credentials


配置 SSH 远程服务器

下载 Publish Over SSH 插件,下载完成之后重启 jenkins 服务。

配置 远程服务器

进入 Dashboard->Manage Jenkins->System


Jenkins 配置任务

构建 maven 任务

  1. 新建 maven 任务
  1. 配置任务Git

保存之后构建,就可以看到 jenkins 在向 git 仓库中拉取代码了

如果还想maven构建完成之后再发布,因为主要讲的不是maven项目,所以还想maven发布的,请看这里 https://download.csdn.net/download/a1053765496/11192998


构建流水线项目

下载 pipeline、blue ocean 插件

  1. 新建流水线任务
  1. 编写声明式流水线脚本

脚本结构如下:

Groovy 复制代码
pipeline{
    agent any
    tools {
        jdk 'jdk1.8'
    }
    stages{
        stage("拉取代码"){
            steps {           
                echo '拉取成功'
            }
        }
    }
    post{            
        always{
            echo 'always say goodbay'
        }
    }
}

脚本说明

Groovy 复制代码
pipeline{        // 声明这是一个 Pipeline 脚本

    agent any    // 表示这个 Pipeline 可以在任何可用的 Jenkins 节点(agent)上运行。
    // agent none   # 表示在 Pipeline 的顶层不指定任何全局的 agent,通常用于在每个 stage 中单独指定 agent。适用于需要在不同阶段使用不同环境的情况。
    // agent {    // 使用指定的 Docker 镜像作为运行环境。Jenkins 会启动一个 Docker 容器来运行 Pipeline
    //    docker {
    //        image 'maven:3.6.3-jdk-8'
    //        label 'docker'
    //    }
    // }
    // agent ... 还有很多写法

    tools {
        jdk 'jdk1.8'         // 指定 mvn 命令使用的jdk版本, 这里的 'jdk1.8' 是在全局工具配置中设置的 JDK 名称
    }

    stages{                  // 定义了流水线的不同阶段(stages),每个阶段包含一个或多个步骤(steps)
        stage("拉取代码"){    // 表示一个阶段,包含一个名称和一些步骤。
            steps {            // 定义了该阶段内的步骤,可以是 shell 脚本、构建命令等。
                echo '拉取成功'
            }
        }
    }
    post{            // 定义在流水线结束后执行的步骤,根据执行结果(成功或失败)执行不同的操作。
        always{
            echo 'always say goodbay'
        }
    }
}

打印 pipeline 工作目录,拉取下来的代码就存在工作目录中

Groovy 复制代码
pipeline {
    agent any
    stages {
        stage('打印 pipeline 工作目录') {
            steps {
                script {
                    echo "Workspace: ${env.WORKSPACE}"
                }
            }
        }
    }
}

修改 pipeline 工作目录

Groovy 复制代码
pipeline{
    agent any
    stages{
        stage("拉取代码"){
            steps {
                dir('/app/aaa') {    # 修改工作目录,这样 git 拉取下来的代码就在修改后的目录,可以一个项目一个目录,避免多个项目在一个目录下的混乱
                    git branch: 'test', credentialsId: 'cedc056b-9f2d-4375-be48-f0d124ca069c', url: 'git@codeup.aliyun.com:659542b3e7f9ce3ec819b592/ppl_boot.git'
                    echo '拉取成功'
                }
            }
        }
    }
}
  1. 使用 pipeline 脚本自动拉取 git 仓库的代码
Groovy 复制代码
pipeline{
    agent any
    stages{
        stage("Git拉取代码"){
            steps {
                dir('/app/aaa') {
                    git branch: 'test', credentialsId: 'cedc056b-9f2d-4375-be48-f0d124ca069c', url: 'git@codeup.aliyun.com:659542b3e7f9ce3ec819b592/ppl_boot.git'
                    echo '拉取成功'
                }
            }
        }
    }
    post{            
        always{
            echo 'always say goodbay'
        }
    }
}
  1. 使用 maven 打包拉取下来的代码
Groovy 复制代码
pipeline{
    agent any
    tools {
        jdk 'jdk1.8' // 指定 mvn 命令使用的jdk, 这里的 'jdk1.8' 是在全局工具配置中设置的 JDK 名称
    }
    stages{
        stage("Git拉取代码"){
            steps {
                dir('/app/aaa') {    // 指定 pipeline 的工作目录
                    git branch: 'test', credentialsId: 'cedc056b-9f2d-4375-be48-f0d124ca069c', url: 'git@codeup.aliyun.com:659542b3e7f9ce3ec819b592/ppl_boot.git'
                    echo '拉取成功'
                }
            }
        }
        stage("Maven打包代码"){
            steps {
                dir('/app/aaa') {    // 指定 pipeline 的工作目录
                    // shell 脚本代码, 不需要加 #!/bin/bash 因为 sh 时 Jenkins 默认会使用 Shell 来运行这些命令。 sh """执行多行shell脚本命令的语法"""
                    sh """ 
                    mvn clean install -Dmaven.test.skip=true
                    """
                    echo '构建完成'
                }
            }
        }
        
    }
    post{            
        always{
            echo 'always say goodbay'
        }
    }
}
  1. 发送 jar 包到测试/生产服务器

下载 Publish Over SSH 插件

编写 pipeline 脚本

未完待续。。。

相关推荐
呆萌的代Ma4 小时前
python操作Elasticsearch执行增删改查
python·elasticsearch·jenkins
字节程序员7 小时前
基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程
python·ubuntu·jenkins
高hongyuan11 小时前
Windows 安装 Jenkins 教程
运维·windows·jenkins
LinuxSuRen1 天前
Jenkins 命令行多线程并发下载制品包
运维·jenkins
神的孩子都在歌唱2 天前
es创建的索引状态一直是red
大数据·elasticsearch·jenkins
万万君2 天前
Linux 更改Jenkins使用其他账户启动
linux·jenkins
赤叶丶秋枫2 天前
Jenkins入门使用
运维·jenkins
紫菜(Nori)2 天前
Jenkins Api Token 访问问题
运维·jenkins
嘤嘤怪呆呆狗3 天前
【开发问题记录】使用 Docker+Jenkins+Jenkins + gitee 实现自动化部署前端项目 CI/CD(centos7为例)
前端·vue.js·ci/cd·docker·gitee·自动化·jenkins
张某人想退休3 天前
Postman最新接口自动化持续集成
自动化·jenkins·postman