Jenkins部署配置及Jenkinsfile流水线任务示例【无图版】

一、下载

  • JDK环境下载:https://repo.huaweicloud.com/java/jdk/11.0.1+13/jdk-11.0.1_linux-x64_bin.tar.gz

  • Jenkins安装包下载:https://github.com/jenkinsci/jenkins/releases/tag/jenkins-2.375.3

二、Jdk/Java环境配置

  • 解压
tar -zxvf jdk-11.0.1_linux-x64_bin.tar.gz
mv jdk-11.0.1_linux-x64_bin /usr/local/jdk
  • 添加环境变量

vim /etc/profile

#   追加写入
........
# Java11
export JAVA_HOME=/usr/local/jdk
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:${PATH}
export PATH=/usr/local/node/bin:${PATH}

  • 使配置生效
source /etc/profile

三、Jenkin初始化

  • jenkins存放目录
/www/jenkins/jenkins.war
  • 启动
nohup java -jar jenkins.war --httpPort=9080 > jenkins.log 2>&1 &
  • 安装

启动后在浏览器访问http://ip:9080,根据提示在~/.jenkins/secrets/initialAdminPassword文件中找到初始密码,根据提示选择安装推荐的插件

Install suggested plugins,安装后以后根据提示创建账号密码。

四、Jenkins配置

  • 添加全局SSH密钥【密钥为Jenkins所在服务器的私钥】

​ 地址:http://localhost:9080/manage/credentials/store/system/domain/_/

​ web界面:系统管理—>Manage Credentials—>System—>全局凭据 (unrestricted)—>Add Credentials ,根据要求添加私钥

  • 插件安装

    【Docker Pipline】:使用Jenkins构建镜像时需用到

    【build user vars】:获取构建者信息时需用到

五、流水线任务配置

1.创建一个流水线任务

以【FirstPipeline】为例

【web地址】:http://localhost:9080/job/FirstPipeline/configure

2.修改以下配置:

  • 2.1【Throttle builds】

    构建数:1
    Time period:Secone
    
  • 2.2 只勾选【不允许并发构建】

  • 2.3【参数化构建过程】:选择字符参数

    名称:target
    默认值:test
    描述:
    test:测试环境
    prod:生产环境
    
  • 2.4【流水线】

    定义:Pipeline script from SCM
    SCM:Git
    Repository URL:项目代码仓库地址
    Credentials:全局凭据里的保存的私钥
    Branches to build:指定分支:*/test
    源码库浏览器:(自动)
    脚本路径:Jenkinsfile
    勾选轻量级检出
    

六、Vue项目Jenkinsfile示例

采用指定节点声明式流水线写法

node {
    stage('拉取代码'){
        try {
            echo "拉取最新代码!"
            checkout scm
        }
        catch(err) {
            echo "拉取失败!"
            throw err
        }
    }
    stage('打包') {
        try{
            sh 'node --version'
            sh 'pnpm --version'
            sh 'pnpm --registry https://registry.npm.taobao.org install --no-frozen-lockfile'
            sh 'pnpm build'
        }
        catch(err){
            echo 'pnpm build failed'
            throw err
        }
    }
    stage('部署') {
        if (env.target == 'prod') {
            sh "rsync -zcav -e ssh dist/* server01:/data/www/website"
        }
    }
    stage('清理'){
        deleteDir()
    }
}

七、一些说明

这种方式未增加自动触发构建发布操作,每次更新代码后需手动到Jenkins上流水线任务中点击Build with Parameters才可触发构建发布操作。后续再更新配合gitlab webhook进行提交触发构建的步骤及所需的Jenkins 插件文档。

你可能感兴趣的:(运维,jenkins)