码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Azure DevOps (三) 实现和Jenkins的联动


    上一篇文章中,我们通过azure 的webhook实现了和钉钉机器人的联动,实现了通过钉钉机器人告知大家刚才谁动了仓库。

    在文章开篇的时候我们举例说了jenkins也可以实现和azure联动,今天我们来实现一下。

    文章配套视频专栏:

    https://space.bilibili.com/38649342/channel/seriesdetail?sid=2267536

    首先,我们得先把jenkins装好,并且把它部署在一个公网可以访问的主机上。

    jenkins的使用步骤我们这里不在赘述。仅贴出docker的安装命令。

    复制代码
    docker run \
      -u root \
      --rm \  
      -d \ 
      -p 8080:8080 \ 
      -p 50000:50000 \ 
      -v jenkins-data:/var/jenkins_home \ 
      -v /var/run/docker.sock:/var/run/docker.sock \ 
      jenkinsci/blueocean 
    复制代码

     

     装好之后我们需要在在Jenkins中添加一条流水线,我们新建一条流水线,然后把上一篇文章中我们创建好的仓库添加到流水线中,仓库中的代码就是我们第二篇编写的和钉钉联动的源代码。

    首先我们需要自己先跑一下验证一下流水线编译是没有问题的。

     

     

    验证完我们的流水线是可以正常运行的之后,我们开始在azure进行jenkins的配置。

     

    在webhook界面,选择jenkins,选择好要触发的操作和仓库,我这里选择的是code pushed就触发hook,然后我们选择Trigger generic build。

    在表单中填入jenkins的公网服务地址/用户名/密码,这时候azure会连通jenkins获取到我们的流水线,选择你要触发的流水线,点击test测试一下是否可以连通。

     

     

     

    这里有一个坑,如果你的jenkins是2.2以上的高版本,会收到jenkins的403错误,出现这个问题的原因是jenkins拒绝了跨站的访问,我们需要修改jenkins的启动文件

    关闭跨站保护。

     

    关闭跨站保护的方法如下,我们进入到容器内修改jenkins的启动脚本

    docker exec -it jenkins /bin/sh
    vi /usr/local/bin/jenkins.sh

     

    然后我们需要在启动参数里加上:-Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true

     效果如下:

     

    设置完之后我们重启一下容器,重新使用azure测试一下,会发现已经可以打通了

     

    我们尝试提交一下代码,看一下azure的效果和jenkins的效果

     

     

     

     我们可以看到jenkins成功收到了azure的通知,并且开始了流水线的构建。

     

     

     

     

      好了,azure打通jenkins的例子到这里就结束了,当然这只是一个简单的demo,Jenkins的花样肯定还有很多,需要大家去自己挖掘,下一篇文章我们将继续发掘azure devops的更多功能。

  • 相关阅读:
    【涨薪技术】0到1学会性能测试 —— LR录制回放&事务&检查点
    软考76-上午题-【面向对象技术3-设计模式】-创建型设计模式01
    如何使用 Nmcli 通过 Linux 终端连接到 Wi-Fi
    csdn关注打开文章,自动取关脚本(设置为仅粉丝查看的文章)
    windows11本地深度学习环境搭建Anacond,keras,tensorflow,pytorch, jupyter notebook
    java毕业设计电力公司员工安全培训系统Mybatis+系统+数据库+调试部署
    wsl2的nat网络, 让我再次理解了为什么我的网络配置总是ping不通,记录下总结
    Vue.js 原理分析
    Redis的Java客户端-Jedis
    使用C++库实现两个线程交替打印(一个线程打印奇数、一个线程打印偶数)
  • 原文地址:https://www.cnblogs.com/Tassdar/p/15992253.html
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号