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 脚本

未完待续。。。

相关推荐
不惑_7 小时前
Logstash 安装与部署(无坑版)
运维·jenkins
Lill_bin1 天前
ElasticSearch底层原理解析
大数据·分布式·elasticsearch·搜索引擎·zookeeper·云原生·jenkins
爱吃香蕉的阿豪1 天前
828华为云征文|Flexus X实例Docker+Jenkins+gitee实现CI/CD自动化部署-解放你的双手~
ci/cd·docker·gitee·华为云·jenkins
laufing2 天前
基于 jenkins 的持续集成、持续部署方案
运维·ci/cd·jenkins·开发
NEIL_XU_4 天前
jenkins流水线+k8s部署springcloud微服务架构项目
服务器·spring cloud·架构·kubernetes·jenkins
Linux运维老纪4 天前
基于zabbix实现监控Jenkins过程---超详细
linux·云计算·jenkins·zabbix·运维开发
m0_629776925 天前
CI/CD中gitlab和jenkins讲解
git·ci/cd·gitlab·jenkins
qq_586475435 天前
Jenkins、Ansible 和 Git 的自动化部署教程
git·ansible·jenkins
挽风8215 天前
Jenkins生成html报告
jenkins
爱摄影的程序猿5 天前
DevOps平台搭建过程详解--Gitlab+Jenkins+Docker+Harbor+K8s集群搭建CICD平台
gitlab·jenkins·devops