管理使用Ansible创建吉拉门票的Elatsic Watchers

时间:2020-07-02 09:34:52

标签: json elasticsearch ansible jira elasticsearch-watcher

问题: 我正在尝试使用ansible管理我的弹性观察者,但运行我的剧本时出现以下错误:

“致命:[localhost] =>一个或多个未定义变量:“ ctx”未定义”

我发现原因是我的/roles/update-watchers/files/watcher.json文件(我的弹性观察者的json负载)包含许多使用观察者语法{{ctx.payload.status}}的引用

为了解决这个问题,我发现了一篇文章http://svops.com/blog/managing-elastic-watches-with-ansible/,其中说我可以对json文件中的变量引用进行转义,因此Ansible将忽略它。因此,而不是包含以下内容的watcher json文件:

{{ ctx.payload.status }} 

它包含了这个

{% raw %}{{ ctx.payload.status }}{% endraw %} 

这有效并且Ansible从我的观察者操作块的此示例部分中更新了有效负载:


  "actions": {
    "index_payload": {
      "create-jira-issue": {
        "jira": {
          "account": "jiraaccountname",
          "fields": {
            "summary": "{{ctx.payload.summary}}",
            "description": "{{ctx.payload.description}}"
          }
        }
      }
    }
  } 

对此:


  "actions": {
    "index_payload": {
      "create-jira-issue": {
        "jira": {
          "account": "jiraaccountname",
          "fields": {
            "summary": "{% raw %}{{ctx.payload.summary}}{% endraw %} ",
            "description": "{% raw %}{{ctx.payload.description}}{% endraw %} "
          }
        }
      }
    }
  }

我现在面临的问题是,在上面的操作块中尝试创建Jira票证时,观察程序失败。除了使凭单不可读之外,因为凭单的摘要和说明的末尾都有esc字符,这还使“摘要”字段中的Jira验证失败。

问题: 我有什么办法可以避免不得不使用esc字符,而是让Ansible忽略我从/ roles / update-watchers / files /目录传递的文件中的{{}}字符吗?

也许某本剧本中存在某种全局标记?任何帮助将不胜感激。

0 个答案:

没有答案