jenkins访问地址_运维机器人hubot集成jenkins

背景

Jenkins 现在不允许放在互联网上,只能通过内网去访问。有时候你在外面,有时候你在连别的机房的 VPN,这时候开发叫你发布咋办呢?答案就是发指令给 hubot,它去执行。先上个图看看:

10ffafc14807c0701a819bacad89289f.png

集成 Jenkins
安装配置插件
npm install hubot-jenkins-optimised --save

然后把 hubot-jenkins-optimised 添加到 external-scripts.json :

[
  "hubot-jenkins-optimised"
]
Jenkins 配置

访问 $JENKINS_URL/me/configure,新建一个 API Token,记录下来

在 .bashrc 增加环境变量:

export HUBOT_JENKINS_URL=http://1192.168.1.1:15678/jenkins/
export HUBOT_JENKINS_AUTH=jenkins:11exxxxxxxxxxx

重启 hubot,开始操作。

  • jenkins list :列出所有任务
  • jenkins b:执行第几个任务
  • jenkins d:查看这个任务的描述。

几个例子:

c99e694ec7c8a7a74fd8131ffe0ce792.png

1707f43d523300d4e89d77b52439da52.png

jenkins 新建任务

这个才是重头戏。当你发布比如 Vue 的项目,除了 JOB_NAME、 gitlab 地址 ,其他都不变,如果是人工操作是这样的,打开 jenkins,新建任务,输入任务名 xx,拉到最下方有一个复制,输入已有的 yy 任务,复制好以后,更改 gitlab 地址,点击构建发布。如果是 hubot,怎么做呢?

使用 python-jenkins ,创建任务,替换JOB_NAME、gitlab 地址,即可,

例子:

现在要创建一个 web-contact 的任务,gitlab地址未 xx-contact,怎么做

run jenkins/jenkins_create.sh web-contact xx-contact

由于 hubot 不能直接和 Python 交互,所以需要通过一个 shell 脚本去执行 Python

#!/bin/bash

set -x 

/usr/local/python3/bin/python3 /data/hubot/bash/handlers/python3/create_job.py $1 $2

reate_job.py  脚本如下,基于 Python3:

# 使用方法 run jenkins/jenkins_create.sh web-contact xian-contact


import jenkins
import sys


server = jenkins.Jenkins('http://1192.168.1.1::15678/jenkins/', username='jenkins', password='xx')
# 复制 web-certificate 这个任务为 web-contact
defProjectName = "web-certificate"

def create_job(job_name, git_url):
    newProjectName = job_name
    if server.job_exists(newProjectName) != True:
        print("The project does not exist, start a new project")

        config_xml = server.get_job_config(defProjectName)
        # git 地址替换为 xx-certificate
        newconfig_xml = config_xml.replace("xx-certificate", git_url)
        server.create_job(newProjectName, newconfig_xml)
    else:
        print("Project already exists")

if __name__ == '__main__':
    try:
        job_name, git_url = sys.argv[1:3]
        create_job(job_name, git_url)
    except Exception as e:
        print(e)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值