篇五:创建流水线-3.配置Webhook触发流水线

创建流水线-3.完善工作

1.选择Jenkins Agent

​ 选择Jenkins Agent,基于maven:3.3.9-jdk-8-alpine镜像配置Pod模板。

2.配置GitLab的Webhook

​ 在GitLab中配置webhook,将提供的代码推送到GitLab触发构建,完成后访问部署的应用。配置Webhook首先要配置出口请求,在配置webhook,如下所示。

注:如上创建的流水线并不能使用webhooks来触发,实现该功能需要创建流水线时指定代码仓库。

2.1再创建一个流水线

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LaVVYaPF-1680831179996)(image/image-20220627185115188.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-phYTw1Fq-1680831179996)(image/image-20220627185140229.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fWt3KAZI-1680831179996)(image/image-20220627185253012.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bcgP8Un7-1680831179997)(image/image-20220627185315227.png)]

​ 如下便生成了webhook的推送URL,将其复制。(http://10.18.4.10:30880/devops_webhook/git/?url=http://10.18.4.10:30888/root/springcloud.git

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2rHui4Qy-1680831179997)(image/image-20220627185429321.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OJpMqnW2-1680831179997)(image/image-20220627190923003.png)]

2.2设置Outbound requests

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8ihG7cWo-1680831179998)(image/image-20220627171837460.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-38WjDgFf-1680831179999)(image/image-20220627172103428.png)]

2.3配置Webhook

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fYuvUOQk-1680831179999)(image/image-20220627172228293.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-44TD3gZT-1680831179999)(image/image-20220627172248035.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2izViLXi-1680831180000)(image/image-20220627190640423.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-C32NwGEt-1680831180001)(image/image-20220627190719670.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VmYMhckq-1680831180001)(image/image-20220627190748500.png)]

2.4往项目中的Jenkinsfile文件

​ 在我们创建的项目添加Jenkinsfile文件,并把在上面生成的流水线的过程复制进去。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5IiDPsCJ-1680831180002)(image/image-20220627191442049.png)]

​ 写完以后进行提交。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rEL5hsKS-1680831180003)(image/image-20220627191508993.png)]

​ 可以选择是更新master节点还是创建新的分支,按照需求走。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-osZ35c6z-1680831180004)(image/image-20220627191550619.png)]

​ 等待一会回看kubesphere,为master触发了新的部署,并且目前的状态,处于让我们审核的状态,点击继续就是更新我们的部署。从而真正意义上实现CICD。

v

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sTrZBZm3-1680831180004)(image/image-20220627191750581.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5Bh3pYN8-1680831180004)(image/image-20220627191829009.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wKJXSqdq-1680831180005)(image/image-20220627191950349.png)]

​ 如下状态就没毛病。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9TdZPnho-1680831180005)(image/image-20220627192020764.png)]

3.附Jenkinsfile文件

pipeline {
  agent {
    node {
      label 'maven'
    }

  }
  stages {
    stage('Checkout SCM') {
      steps {
        container('maven') {
          git(url: 'http://10.18.4.10:30888/root/springcloud.git', branch: 'master', changelog: true, poll: false)
        }

      }
    }

    stage('unit test') {
      steps {
        container('maven') {
          sh 'mvn clean package  -DskipTests -f ./'
        }

      }
    }

    stage('镜像构建') {
      agent none
      steps {
        container('maven') {
          sh '''ls
docker build -t 10.18.4.10/springcloud/gateway:latest -f gateway/Dockerfile gateway
docker build -t 10.18.4.10/springcloud/config:latest -f config/Dockerfile config
'''
        }

      }
    }

    stage('push镜像') {
      agent none
      steps {
        container('maven') {
          withCredentials([usernamePassword(credentialsId : 'harbor' ,passwordVariable : 'HABOR_PASSWORD' ,usernameVariable : 'HABOR_USER' ,)]) {
            sh '''docker login 10.18.4.10 -u=admin -p=Harbor12345
docker push 10.18.4.10/springcloud/gateway:latest
docker push 10.18.4.10/springcloud/config:latest '''
            sh '''sed -i "s/sqshq\\\\/piggymetrics-gateway/10.18.4.10\\\\/springcloud\\\\/gateway:latest/g" yaml/deployment/gateway-deployment.yaml
sed -i "s/sqshq\\\\/piggymetrics-config/10.18.4.10\\\\/springcloud\\\\/config:latest/g" yaml/deployment/config-deployment.yaml'''
          }

        }

      }
    }

    stage('deploy project') {
      agent none
      steps {
        input(message: '是否部署@examuser1', submitter: 'examuser1')
        container('maven') {
          withCredentials([
                                    kubeconfigFile(
                                          credentialsId: env.KUBECONFIG_CREDENTIAL_ID,
                                          variable: 'KUBECONFIG')
                                          ]) {
                sh 'envsubst < yaml/deployment/gateway-deployment.yaml | kubectl apply -f -'
                sh 'envsubst < yaml/deployment/config-deployment.yaml  | kubectl apply -f -'
                sh 'envsubst <  yaml/svc/gateway-svc.yaml | kubectl apply -f -'
                sh 'envsubst < yaml/svc/config-svc.yaml | kubectl apply -f -'
              }

            }

          }
        }

      }
      environment {
        DOCKER_CREDENTIAL_ID = 'dockerhub-id'
        GITHUB_CREDENTIAL_ID = 'github-id'
        KUBECONFIG_CREDENTIAL_ID = 'kubeconfig'
        REGISTRY = 'docker.io'
        DOCKERHUB_NAMESPACE = 'docker_username'
        GITHUB_ACCOUNT = 'kubesphere'
        APP_NAME = 'devops-java-sample'
      }
      parameters {
        string(name: 'TAG_NAME', defaultValue: '', description: '')
      }
    }
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值