如何修复渲染 SLS 失败:Jinja 语法错误:预期标记 ',',得到 ':'?

问题描述

在这一行有一个特别的错误

 {% set icinga_ticket = salt['http.query'](https://ticket-generator.az.dev.com method=POST header_dict='{"Content-Type":"application/json"}' data="'{\"hostname\": \"minion.node.jio.com\"}'" backend=requests) %}

我得到了:

rendering SLS 'base:icinga.icinga2_core' Failed: Jinja Syntax error: expected token ',',got ':'

如何解决这个错误

解决方法

尝试用 , 分隔选项并引用像这样的非变量:method='POST'

 {% set icinga_ticket = salt['http.query']('https://ticket-generator.az.dev.com',method='POST',header_dict='{"Content-Type":"application/json"}',data="'{\"hostname\": \"minion.node.jio.com\"}'",backend='requests') %}

顺便说一下 icinga2 模块:https://docs.saltproject.io/en/latest/ref/modules/all/salt.modules.icinga2.html#salt.modules.icinga2.generate_ticket