【问题标题】:How to use Rundeck workflow global variable inside a Microsoft Teams Notification groovy script?如何在 Microsoft Teams Notification groovy 脚本中使用 Rundeck 工作流全局变量?
【发布时间】:2021-09-12 00:33:42
【问题描述】:

我有一个全局日志键值数据过滤器: 使用此模式:^RUNDECK:DATA:(.+?)\s*=\s*(.+)$

Step 1. 输出下一步需要的字符串 echo "RUNDECK:DATA:repo=repository1"

第 2 步。使用键/值数据构建全局变量。 价值:${data.repo*} 组: 出口 名称:回购

作业完成后,它将发送 Microsoft Teams 通知,但没有发送任何通知。

这是 groovy 脚本。我将工作流全局变量用于存储库字段。

存储库:${execution.export.repo}

/opt/rundeck-plugins/microsoftTeamsIncomingWebhook.groovy

import com.dtolabs.rundeck.plugins.notification.NotificationPlugin;
import groovy.text.SimpleTemplateEngine

rundeckPlugin(NotificationPlugin){

  title="Microsoft Teams Incoming Webhook"

  description="Customized webhook notification script"

  configuration{
    webhook_url title:"MS Teams Incoming Webhook URL"
  }

  def ms_teams_notification = {
    command = [ 'bash', '-c',  "curl -X POST ${configuration.webhook_url} -d '{ \"title\": \"${execution.job.name}\", \"text\": \"[View job in Rundeck](${execution.href})\n\n \n\n **Status**: **${execution.status}** \n\n **Initiated by**: ${execution.user} \n\n **Repository**: ${execution.export.repo}\"}'" ]
    def proc = command.execute()

    proc.waitForProcessOutput(System.out,System.err)
    proc.exitValue()==0
  }

  onsuccess ms_teams_notification
  onfailure ms_teams_notification
}

使用 Rundeck 2.10.8-1

【问题讨论】:

    标签: groovy rundeck


    【解决方案1】:

    嗨,马克杰弗里德拉克鲁斯,

    我在我的 Rundeck 实例中测试了您的步骤,似乎 CURL 表达式有一些无效参数,我们在 groovy 文件中所做的唯一更改是命令部分中的第三个元素,并且文件成功运行。

    你是直接在终端中测试 curl 的吗?

    当 Rundeck 尝试发送通知时,您是否收到任何日志?

    问候。

    JB

    【讨论】:

    • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
    • 首先,你不应该称呼这个人,因为很多人会阅读答案。其次,如果您还有其他问题,请在问题中添加评论。答案不应引发讨论。
    猜你喜欢
    • 2022-09-28
    • 1970-01-01
    • 1970-01-01
    • 2012-03-22
    • 2011-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-03
    相关资源
    最近更新 更多