微服务之Jenkins 使用

一、docker版本安装

1、先下载镜像并执行 run 操作,下方 -v 是将容器目录映射到主机,如第一个的 /var/jenkins_home 映射到主机 jenkins-data

docker run \
  --rm \
  -u root \
  -p 8080:8080 \
  -v jenkins-data:/var/jenkins_home \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /root:/home \
  jenkinsci/blueocean

2、运行后浏览器访问 http://192.168.1.60:8080/ 即可进入安装向导,开头需要输入密码,密码在界面提示的文件可以拿到,之后再按照向导,创建用户和密码等,稍等片刻即可安装完成。

  

二、尝试构建第一个流水线项目

1、由于前面启动容器时指定了 -v /root:/home ,所以我们到主机 /root 下创建一个GitHub目录,作为本地github仓库,接着我们到GitHub目录 clone一个自己 github上的项目

git clone git@github.com:linzhuzai/simple-java-maven-app.git

2、接着到 jenkins 管理界面,我们开始创建一个构建项目,输入项目名,然后配置页填写描述,最重要是流水线部分填写,如下图2,其中 Repository URL 路径是本地仓库路径(由于主机和容器映射了地址 /root:/home,因此这里 /home/GitHub/simple-java-maven-app 其实映射的主机地址就是 /root/GitHub/simple-java-maven-app,也就是我们刚才 clone项目下来的本地地址),最后保存即可。

   

3、紧接着创建一个 Jenkinsfile,放到项目的根目录,输入以下内容

pipeline {
    agent {
        docker {
            image 'maven:3-alpine' 
            args '-v /root/.m2:/root/.m2' 
        }
    }
    stages {
        stage('Build') { 
            steps {
                sh 'mvn -B -DskipTests clean package' 
            }
        }
    }
}

4、完成后我们把它提交到git 本地仓库,cd 到 /root/GitHub/simple-java-maven-app ,然后提交新增的文件

git add .
git commit -m "test"

5、最后我们回到 jenkins管理界面,点击 Blue Ocean,然后选择我们刚才创建的项目,接着运行即可,点击项目可进入查看构建过程,如果有错误会显示,完成后界面变成绿色。

    

6、增加test 环节,修改 Jenkinsfile文件

pipeline {
    agent {
        docker {
            image 'maven:3-alpine' 
            args '-v /root/.m2:/root/.m2' 
        }
    }
    stages {
        stage('Build') { 
            steps {
                sh 'mvn -B -DskipTests clean package' 
            }
        }
		stage('Test') {
            steps {
                sh 'mvn test'
            }
            post {
                always {
                    junit 'target/surefire-reports/*.xml'
                }
            }
        }
    }
}

7、同样commit到本地仓库 ,然后到管理平台 运行

  

8、增加 deliver 环节,同样,修改 Jenkinsfile文件

pipeline {
    agent {
        docker {
            image 'maven:3-alpine' 
            args '-v /root/.m2:/root/.m2' 
        }
    }
    stages {
        stage('Build') { 
            steps {
                sh 'mvn -B -DskipTests clean package' 
            }
        }
		stage('Test') {
            steps {
                sh 'mvn test'
            }
            post {
                always {
                    junit 'target/surefire-reports/*.xml'
                }
            }
        }
		stage('Deliver') {
            steps {
                sh './jenkins/scripts/deliver.sh'
            }
        }
    }
}

9、同样commit到本地仓库 ,然后到管理平台 运行

  

 

一、普通版本安装

https://www.jenkins.io/zh/doc/pipeline/tour/getting-started/

1、准备:由于后面构建我们采用脚本的需要,先自行安装好 jdk、git、maven

2、安装 jenkins

(1)下载 war包:https://www.jenkins.io/zh/doc/pipeline/tour/getting-started,上传到服务器
(2)到 war包目录执行 java -jar jenkins.war --httpPort=7070 &,访问 http://ip:7070 ,密码出现在启动日志里

(3)登录进去后,安装推荐插件,最后创建自己的用户如:lin/123456,其他的默认即可


(4)到 “全局工具配置” jdk、maven、git(可看每一个配置地址如: echo $JAVA_HOME、echo $MAVEN_HOME)



(5)在服务器上用 git 生成 公私钥(用  ssh-keygen -t rsa 命令,然后到 /root/.ssh 下找到对应的文件),把公钥放到 gitlab/github上(id_rsa.pub),私钥放 jenkins服务器上的 “凭据管理”(id_rsa里内容) 

 

 

(5)到 “插件管理” 安装构建插件:Deploy to container 和 Maven Integration

(6)创建项目,选 “Maven 项目”

(7)服务器上指定目录下放上两个脚本文件(stop.sh、replace.sh), jenkins构建后则会执行配置的 shell脚本,进行更新

(8)我们可以直接发送 Get接口请求来执行构建

(9)可结合 钩子 webhook,做到提交代码自动触发

  • 如果是 github,可以直接把上面 第八步的 Get接口请求地址直接放到配置中即可(后面的操作都不需要)

  • 如果是 gitee,先要安装插件:Generic Webhook Trigger,然后到项目下勾选

  • 配置 api token,先到 “全局安全配置” 打开功能,然后到 “系统管理 -- 管理用户 -- 某个用户 -- 设置”,查看

  • 注意点:这里要特别注意,因为 git仓库上执行远程构建,会被 jenkins的 csrf 防护拦截导致构建不了,而低版本 jenkins可以直接在 “全局安全配置” 中 csrf模块关闭但高版本已经没有该按钮,所以高版本可以通过启动时增加参数来关闭该功能:
-Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true

完整启动命令:nohup java -jar jenkins.war --httpPort=7070 -Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true &

 

注:如果遇到安装插件失败,可能是插件版本太新而 jenkins版本太旧导致,直接升级 jenkins,重启完成后去 “插件中心” 重新更新插件

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值