jenkins使用参数远程执行job

该博客介绍了两种在Jenkins中执行job的方法。方法一是利用curl命令,方法二是通过Groovy编写的Jenkins流水线脚本,其中包含了参数化构建,允许用户输入job名称,并使用for循环并行执行多个job。脚本中的`propagate:false`和`wait:false`选项确保了错误不会停止流程且job能并行运行。

目的:传入Jenkins的job名,根据job名执行job

实现:

方法一:使用curl命令

        详见jenkins循环取参数执行构建命令_taoying220的博客-优快云博客_jenkins循环构建

方法二:使用流水线的build job实现

#!/usr/bin/env groovy

properties(
        [parameters(
                [string(defaultValue: "", description: "微服务名", name: "jobName")]
        )]
)

node("slave2") {
    withEnv(["PATH+EXTRA=/usr/sbin:/usr/bin:/sbin:/bin:/opt/apache-maven-3.5.4/bin"]) {
        
        stage('gogogo'){
        
            jobID = "${jobName}"
            
            for (item in jobID.tokenize(',')){
                echo "for里面的jobID = " + item
                
                build propagate: false,  wait: false, job: item
            }

       }

  }
}
 

说明:

propagate: false  报错不停止

wait: false 不等待结果,为了达到并行运行的目的。不加这个就会等当前job执行完,再进入下次循环

Jenkins远程调用并执行 Python 脚本,通常可以通过以下几种方式实现: ### 1. 使用 SSH 插件执行远程命令 Jenkins 提供了多种插件来支持远程执行脚本,其中最常用的是 **Publish Over SSH** 插件。通过该插件,可以将文件传输到远程服务器并执行脚本。 #### 配置步骤: 1. 安装 **Publish Over SSH** 插件。 2. 在 Jenkins 系统设置中配置远程服务器信息,包括 IP、端口、用户名、密码或密钥等。 3. 在 Jenkins Job 中配置远程执行命令,例如执行 Python 脚本。 #### 示例: ```bash # 执行远程 Python 脚本 python /path/to/your_script.py ``` 此方法适用于脚本较为简单且无需复杂参数传递的场景[^4]。 ### 2. 使用 Jenkins Pipeline 脚本调用远程执行Jenkins Pipeline(声明式或脚本式)中,可以通过 `sh` 或 `sshagent` 插件结合 `ssh` 命令远程执行 Python 脚本。 #### 示例 Pipeline 脚本: ```groovy pipeline { agent any stages { stage('Execute Remote Python Script') { steps { sshagent(['your-ssh-credentials-id']) { sh 'ssh user@remote_host "python /path/to/your_script.py"' } } } } } ``` 此方法适用于需要与 Jenkins Pipeline 深度集成的场景,并且支持更复杂的脚本执行流程。 ### 3. 通过 Jenkins Webhook 触发远程脚本 可以使用 Webhook 钩子触发 Jenkins Job,然后在 Job 中配置执行远程 Python 脚本。这种方式通常用于 Git 仓库的自动构建与部署。 #### 示例: 1. 在 Git 仓库中配置 Webhook,指向 JenkinsJob 地址。 2. Jenkins Job 收到请求后,自动触发构建。 3. 构建过程中执行远程 Python 脚本。 ```bash # Jenkins Job 中的构建命令 python /path/to/deploy_script.py ``` 此方法适用于自动化部署流程,能够实现代码推送后自动触发脚本执行[^3]。 ### 4. 使用 Python 脚本调用 Jenkins API 如果需要从 Python 脚本中主动触发 Jenkins Job,可以使用 Jenkins 的 REST API。 #### 示例代码: ```python import requests jenkins_url = 'http://jenkins_url/job/job_name/build' auth = ('username', 'api_token') response = requests.post(jenkins_url, auth=auth) print(response.status_code) ``` 此方法适用于从外部系统触发 Jenkins 构建任务,实现更灵活的集成[^3]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值