Jenkins下载安装和配置教程


这篇博文总结下如何下载安装和配置Jenkins

1.1 Jenkins 安装条件

  • 机器需要至少10GB 磁盘空间,最少256MB内存, 建议不低于512MB
  • JDK 8 或JDK 11 以上

1.2 Jenkins 安装方式

Jenkins 安装方式有两种:

  • 第一种 直接下载war包方式
  • 第二种通过下载Docker 容器方式

1.2.1 直接下载war包方式进行安装配置Jenkins

接下来我们讲解下如何使用下载war 包方式进行安装和配置Jenkins.

具体步骤如下:

java -jar jenkins.war --httpPort=8080
  • 然后我们将看到类似如下的信息:
    在这里插入图片描述

记下上图中出现的随机密码字符串,待会安装要用。

  • 打开浏览器,访问 http://localhost:8080

  • 等待一会后我们可以看到如下所示内容后,输入刚才记下的随机密码字符串并点击Continue
    在这里插入图片描述

  • 选择按照推荐的插件或自定义选择所需要安装的插件
    在这里插入图片描述

  • 这里我们选择推荐的插件进行安装
    在这里插入图片描述

安装时间可能有点长,稍作等候。

  • 然后安装成功后我们需要创建一个管理员账号
    在这里插入图片描述
  • 我们选择Save and Continue
    在这里插入图片描述
  • 访问首页: http://127.0.0.1:8080/
    在这里插入图片描述
  • 点击Start Using Jenkins 后我们可以看到如下内容:
    在这里插入图片描述

1.2.2 Docker 方式安装Jenkins

Docker 方式安装首先需要安装Docker 环境,具体安装方法见我的另外一篇博文Docker 入门学习教程

安装完Docker 之后,我们需要去Docker 仓库查找我们的Jenkins.

Docker 官方仓库地址:https://hub.docker.com/

打开官方仓库网址后,我们输入Jenkins 然后点击搜索即可。
在这里插入图片描述
值得注意的是当我们打开这个后你会发现有这么一句话:
在这里插入图片描述
翻译成中文就是:

不推荐使用此image,而应使用Jenkins社区在项目发布过程中提供和维护的jenkins / jenkins:lts image。 在LTS 2.60.x之后,此处找到的image将不再进行任何更新。 请相应地调整您的用法。

也就是说,我们不要再选择这个仓库镜像了,而是应该选择jenkins/jenkins:lts 这个长期支持版本。

长期支持版本地址:https://hub.docker.com/r/jenkins/jenkins

打开后我们可以看到如下提示:
在这里插入图片描述

  • 要使用长期支持版本就在命令行输入如下内容:
docker pull jenkins/jenkins:lts
  • 要使用最新版本就在命令行输入如下内容:
docker pull jenkins/jenkins

这里建议我们选择长期支持版本

如果我们选择的是长期支持版本,运行它就输入如下命令即可:

docker run -p 8080:8080 -p 50000:50000 jenkins/jenkins:lts

然后其他的安装步骤和之前的那种直接下载方式基本上一致了就不再重复讲解。

1.3 项目集成Jenkins参考配置文件

如果想让项目集成Jenkins,这里提供一个可供参考的配置文件。

Jenkinsfile.groovy

pipeline{
    agent {
        label 'LABEL_192.168.159.160'
    }
    triggers{ cron('H 11 * * *') }
    environment {
        GIT_EMAIL = sh(script: '''git log -3 | cat - | grep Author | grep -v nobody@nowhere | awk -F'[<>]' '{print $2}' | head -1 ''',returnStdout: true).trim()
        GIT_PROJECT = sh(script: '''git remote -v | head -1 | awk -F '/' '{print $4}' ''',returnStdout: true).trim()
        GIT_REPO = sh(script: '''git remote -v | head -1 | awk -F'[/.]' '{print $7}' ''',returnStdout: true).trim()
        TEAM_NAME = sh(script: '''git remote -v | head -1 | awk -F'[/.]' '{print $7}' | awk -F '_' '{print $1}' | tr '[a-z]' '[A-Z]' ''',returnStdout: true).trim()
        GIT_COMMIT = sh(script: '''git rev-parse HEAD ''',returnStdout: true).trim()
        GIT_CHANGE = sh(script: '''git show --stat $GIT_COMMIT | tail -1 ''',returnStdout: true).trim()
        GIT_AUTHOR = sh(script: '''git log -3 | cat - | grep Author | grep -v nobody@nowhere | awk -F'[<>]' '{print $1}' | awk -F ':' '{print $2}' | sed 's/ //g' | head -1 ''',returnStdout: true).trim()
    }
    stages{
        stage("trigger1"){
            steps{
                sh 'echo commit > $WORKSPACE/.trigger_type'
            }
        }
        stage("trigger2"){
            when { changeRequest() }
            steps{
                sh 'echo pr > $WORKSPACE/.trigger_type'
            }
        }
        stage("DailyBuild"){
            when { triggeredBy 'TimerTrigger' }
            steps{
                sh '''
                    echo daily > $WORKSPACE/.trigger_type
                    GIT_SSH_COMMAND="ssh -i $HOME/.ssh/seat_rdgit/id_rsa";export GIT_SSH_COMMAND
                '''
            }
        }
        stage("Build"){
            steps{
                sh 'echoEnv "Build"'
				sh 'mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent compile -Dmaven.test.failure.ignore=true'
                echo "---------这里替换为执行编译的步骤---------"
            }
        }
        stage("UnitTest"){
            steps{
                sh 'echoEnv "UnitTest"'
                echo "========executing UT========"
                echo "---------执行单元测试----------"
                sh 'mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent test -Dmaven.test.failure.ignore=true'
                    echo "---------这里替换为执行UT的步骤---------"
            }
            post{
                success{
                    echo "========UT executed successfully========"
                }
                failure{
                    echo "========UT execution failed========"
                    echo "--------单元测试失败--------------"
                }
            }
        }
        stage("SonarScan") {
            when{
                anyOf{
                    branch 'dev'
                    changeRequest()
                }
            }
            steps {
                sh 'echoEnv "SonarScan"'
                echo "---------执行静态代码扫描----------"
                //sh 'mvn sonar:sonar'
            }
        }
    }
    post{
        always{
            echo "========always========"
            emailext(
                subject: '${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志',
                body: '${FILE,path="/opt/app/jenkins/template/email.html"}',
                to: env.GIT_EMAIL
            )
        }
        success{
            sh 'echoEnv "SUCCESS"'
            echo "========pipeline executed successfully ========"
        }
        aborted{
            sh 'echoEnv "ABORT"'
        }
        failure{
            sh 'echoEnv "FAIL"'
            echo "========pipeline execution failed========"
        }
    }
}

1.4 参考资料

本篇完~

发布了194 篇原创文章 · 获赞 262 · 访问量 48万+

猜你喜欢

转载自blog.csdn.net/hadues/article/details/104052637