无法解析元作业中的Rundeck全局变量

时间:2019-11-27 10:58:19

标签: rundeck

我们有一个Rundeck(3.1.2-20190927)作业,该作业会触发Rundeck中的多个其他作业。在/etc/rundeck/framework.properties中,定义了在作业中使用的全局变量。它用于构建Icinga的URL,因此Rundeck可以将作业结果提交给监视。在每个作业的通知选项卡(编辑作业->通知)中使用该变量。 元作业运行后,它将结果成功提交给监视。如果您手动触发它们,则同样适用于“子”作业。但是,如果它们被meta作业触发,则会抛出错误:

Error calling the endpoint: Illegal character in authority at index 8: https://icinga-master-${globals.environment}.some.domain.

当元作业触发作业时,似乎无法正确解析全局变量。奇怪的是,其他meta作业没有这个问题。我找不到任何配置差异。有谁知道原因可能是什么? 感谢您的帮助!

更新:这是我的工作定义

- defaultTab: output
  description: "Call Patchday Jobs in a row  \n**Attention! This will reboot the servers**"
  executionEnabled: true
  group: CloudServices/SomeSoftWare
  id: 5cf2966c-3e5f-4a32-8cce-b3e82b6fd036
  loglevel: INFO
  multipleExecutions: true
  name: Patchday SomeSoftWare - Meta Job
  nodeFilterEditable: false
  nodefilters:
    dispatch:
      excludePrecedence: true
      keepgoing: false
      rankOrder: ascending
      successOnEmptyNodeFilter: false
      threadcount: '1'
    filter: 'tags: role_SomeSoftWare'
  nodesSelectedByDefault: false
  notification:
    onfailure:
      plugin:
        configuration:
          _noSSLVerification: ''
          _printResponseToFile: ''
          _proxySettings: ''
          authentication: Basic
          body: |-
            {
              "type": "Service",
              "filter": "service.name==\"Rundeck-Job - ${job.name}\"",
              "exit_status": 2,
              "plugin_output": "'${job.name}' failed"
            }
          contentType: application/json
          file: ''
          headers: 'Accept: application/json'
          method: POST
          noSSLVerification: 'true'
          oauthTokenEndpoint: ''
          oauthValidateEndpoint: ''
          password: ******
          proxyIP: ''
          proxyPort: ''
          remoteUrl: https://icinga-master-${globals.environment}.some.domain:5665/v1/actions/process-check-result
          timeout: '30000'
          username: rundeck_process-check-result
        type: HttpNotification
    onsuccess:
      plugin:
        configuration:
          _noSSLVerification: ''
          _printResponseToFile: ''
          _proxySettings: ''
          authentication: Basic
          body: |-
            {
              "type": "Service",
              "filter": "service.name==\"Rundeck-Job - ${job.name}\"",
              "exit_status": 0,
              "plugin_output": "'${job.name}' succeeded"
            }
          contentType: application/json
          file: ''
          headers: 'Accept: application/json'
          method: POST
          noSSLVerification: 'true'
          oauthTokenEndpoint: ''
          oauthValidateEndpoint: ''
          password: ******
          proxyIP: ''
          proxyPort: ''
          remoteUrl: https://icinga-master-${globals.environment}.some.domain:5665/v1/actions/process-check-result
          timeout: '30000'
          username: rundeck_process-check-result
        type: HttpNotification
  notifyAvgDurationThreshold: null
  options:
  - description: Addition paramater to give to the ansible-playbook call
    name: AdditionalParameter
  scheduleEnabled: true
  sequence:
    commands:
    - jobref:
        args: 'branch: ${globals.defaultbranch}'
        group: Infrastructure
        name: Icinga Service Downtime
        nodefilters:
          dispatch:
            nodeIntersect: true
        uuid: 6eec5749-ef35-481e-aea8-674f233c32ac
    - description: Pause Bamboo Server
      jobref:
        args: -branch ${globals.defaultbranch} -bamboo_command pause
        group: Infrastructure
        name: Bamboo Control
        nodefilters:
          dispatch:
            nodeIntersect: true
        uuid: 87bc7f1c-d133-4d7e-9df9-2b40fb935fd4
    - configuration:
        ansible-become: 'false'
        ansible-disable-limit: 'false'
        ansible-playbook-inline: |
          - name: +++ Stop Tomcat ++++
            hosts: tag_role_SomeSoftWare
            gather_facts: true
            remote_user: ec2-user
            become: yes

            tasks:
              - name: stop tomcat
                service:
                  name: tomcat
                  state: stopped
      nodeStep: false
      type: com.batix.rundeck.plugins.AnsiblePlaybookInlineWorkflowStep
    - description: SomeSoftWare Update
      jobref:
        args: -branch ${globals.defaultbranch}
        group: Infrastructure
        name: SomeSoftWare Server - Setup
        nodefilters:
          dispatch:
            nodeIntersect: true
        uuid: f01a4483-d8b2-43cf-99fd-6a610d25c3a4
    - description: Install/Update fs-cli
      jobref:
        args: -branch ${globals.defaultbranch}
        group: Infrastructure
        name: firstspirit-cli - Setup
        nodefilters:
          dispatch:
            nodeIntersect: true
        uuid: c7c54433-be96-4d85-b2c1-32d0534b5c60
    - description: Install/Update Modules
      jobref:
        args: -branch ${globals.defaultbranch}
        group: Infrastructure
        name: SomeSoftWare Modules - Setup
        nodefilters:
          dispatch:
            nodeIntersect: true
        uuid: f7a8929b-2bc3-4abe-8c69-e0d2acf62159
    - description: restart SomeSoftWare
      exec: sudo service SomeSoftWare restart
    - description: Resume Bamboo Server
      jobref:
        args: -branch ${globals.defaultbranch} -bamboo_command resume
        group: Infrastructure
        name: Bamboo Control
        nodefilters:
          dispatch:
            nodeIntersect: true
        uuid: 87bc7f1c-d133-4d7e-9df9-2b40fb935fd4
    keepgoing: false
    strategy: node-first
  timeZone: Europe/Berlin
  uuid: 5cf2966c-3e5f-4a32-8cce-b3e82b6fd036

0 个答案:

没有答案