day073-Jenkins消息通知与pipline流水线

发布于:2025-08-14 ⋅ 阅读:(13) ⋅ 点赞:(0)

0. 老男孩思想-老男孩名言警句

  • 技术的提升仅是量的积累,思想的提升才是质的飞跃
  • 成功绝非偶然,而是正确选择和持续努力后的必然
  • 成功最有效的途径就是不断的和有经验的、成功的人学习
  • 学习成功人士的思维和习惯,是成功的捷径
  • 要做别人不敢做、做不到的事,才能从竞争者胜出
  • 自己最不想改变的,往往是自己最需要改变的;要多接收、多学习他人的思维或习惯
  • 找一个能让自己快速成长的企业,比多1-2千工资更重要
  • 身份影响认知,气度主导格局,性格决定命运
  • 超越自我,就是做自己不想做的事
  • 永远不要试图改变一个人,只能去包容他
  • 如果自己不能成为大佬,可以先成为大佬的赞美者

在这里插入图片描述

1. Jenkins通知

1.1 配置钉钉通知

1.1.1 安装dingtalk插件

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • dingtalk插件:dingding-notifications.hpi 链接: https://pan.baidu.com/s/1-uXzS44lywEpcOcI4Rzfww?pwd=7y2x 提取码: 7y2x
  • 将插件复制到Jenkins插件目录下:/var/lib/jenkins/plugins
  • 重启Jenkins:systemctl restart jenkins.service

在这里插入图片描述

1.1.2 钉钉添加机器人

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

1.1.3 Jenkins配置dingtalk通知

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

1.2 配置企业微信通知

  • 企业微信插件:qy-wechat-notification.jpi 链接: https://pan.baidu.com/s/1nPekUKoqtnre4lpKhehC_w?pwd=n9ht 提取码: n9ht
  • 上传插件并重启Jenkins

1.2.1 企业微信添加机器人

在这里插入图片描述

在这里插入图片描述

  • webhook:https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=dad28fdb-8209-4c8a-abad-47a2abaee105

1.2.2 Jenkins配置企业微信通知

在这里插入图片描述

  • 测试

在这里插入图片描述

2. Jenkins分布式

  • 主节点安装Jenkins服务
  • 从节点安装jdk即可

2.1 添加node节点

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2.2 使用子节点

在这里插入图片描述

3. Jenkins-pipline流水线

根据jenkins的⼯作框架,通过"代码的⽅式",将多个任务联合起来

  • pipline代码结构:

在这里插入图片描述

3.1 简单案例

  • pipline代码:
pipeline {
    agent any
    environment {
        host="oldboylinux.com"
    }
    stages {
        stage('1.Open') {
            steps {
                echo "open eyes  $host"
            }
        }
  
        stage('2.CloseAlarm') {
            steps {
                echo "close alarm  $host"
            }
        }
  
        stage('3.Go_to_sleep') {
            steps {
                echo "go-to-sleep  $host"
            }
        }
    }
}

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3.2 实现docker-java项目

  1. Jenkins拉取Gitlab代码
  2. Jenkins调⽤Sonarqube/sonar scan 代码质量分析与编译
  3. docker build ,推送镜像到仓库
  4. Jenkins 调⽤部署删除旧的容器,启动新的容器.
  5. 企业微信,钉钉,发送上线结果

3.2.1 生成代码工具

在这里插入图片描述

在这里插入图片描述

3.2.2 编写Jenkinsfile文件

  • 在代码目录下:vim Jenkinsfile
pipeline {
    agent any
    stages {
        stage('1.编译与扫描') {
                // 拉取代码
            steps {
               sh  ''' /app/tools/maven/bin/mvn clean package
                '''
            }
        }
        stage('2.docker build') {
           steps {
             sh  '''
             docker build  -t harbor.oldboy.cn/oldboy/java:${GIT_COMMIT}   .
             docker login  -uadmin -pLidao996   harbor.oldboy.cn
             docker push harbor.oldboy.cn/oldboy/java:${GIT_COMMIT}
                 '''

           }

        }


        stage('3.deploy') {
             steps {
                sh  '''
                ip_list=10.0.0.81
                for pp in $ip_list
                  do
                    cnt=`ssh root@$pp docker ps -f "name=hello_*" -q |wc -l`
                    ssh root@$pp  <<-EOF
                        if [ $cnt -gt 0 ];then
                           docker ps -f "name=hello_*" -q |xargs docker rm -f
                        fi
                        docker run -d  --name hello_v1  -p 8080:8080  --restart always  harbor.oldboy.cn/oldboy/java:${GIT_COMMIT}
EOF
done
                '''
            }
        }
        }

          post {
        success{
 qyWechatNotification failNotify: true, webhookUrl: 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=26eca4c2-af1a-4861-9e4e-d5088f828bdb'
    }
        failure{
 qyWechatNotification failNotify: true, webhookUrl: 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=26eca4c2-af1a-4861-9e4e-d5088f828bdb'
   }
  }
}
  • 上传代码:
git add .
git commit -m "pipline"
git tag -a v2.0 -m "v2.0"
git push origine master
git push --tags

在这里插入图片描述

在这里插入图片描述

3.2.3 修改Jenkinsfile

$ cat Jenkinsfile

pipeline {
    agent {  label 'maven' }
    stages {
        stage('1.编译与扫描') {
                // 拉取代码
            steps {
               sh  ''' /app/tools/maven/bin/mvn clean package
                '''
            }
        }
        stage('2.docker build') {
           steps {
             sh  '''
             docker build  -t harbor.oldboy.cn/oldboy/java:${GIT_COMMIT}   .
             docker login  -uadmin -pLidao996   harbor.oldboy.cn
             docker push harbor.oldboy.cn/oldboy/java:${GIT_COMMIT}
                 '''

           }

        }
        stage('2.5 .确认是否部署') {

            steps {
                input '是否继续进行部署'
                }
        }


        stage('3.deploy') {
             steps {
                sh  '''
                ip_list=10.0.0.81
                for pp in $ip_list
                  do
                    cnt=`ssh root@$pp docker ps -f "name=hello_*" -q |wc -l`
                    ssh root@$pp  <<-EOF
                        if [ $cnt -gt 0 ];then
                           docker ps -f "name=hello_*" -q |xargs docker rm -f
                        fi
                        docker run -d  --name hello_v1  -p 8080:8080  --restart always  harbor.oldboy.cn/oldboy/java:${GIT_COMMIT}
EOF
done
                '''
            }
        }




        }

          post {
        success{
 qyWechatNotification failNotify: true, webhookUrl: 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=26eca4c2-af1a-4861-9e4e-d5088f828bdb'
    }
        failure{
 qyWechatNotification failNotify: true, webhookUrl: 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=26eca4c2-af1a-4861-9e4e-d5088f828bdb'
   }
  }
}

4. 思维导图

https://kdocs.cn/join/gpuxq6r?f=101\r\n邀请你加入共享群「老男孩教育Linux运维99期-孙克旭」一起进行文档协作


网站公告

今日签到

点亮在社区的每一天
去签到