小编ans*_*erp的帖子

Ansible 和 jinja - 将双引号转义的 JSON 字符串发送到 AWS

我们需要将双引号转义的 JSON 字符串提供到 NodeJS 产品的 AWS 密钥中。单内双引号格式不适用于该应用程序。结构化数据采用 dict-list-dict 格式。例子:

{
  "data": "[{\"URL\": \"beta.test.net\", \"token\": \"beta-token\"}, {\"URL\": \"beta-prod.test.net\", \"token\": \"beta-prod-token\"}]"
}
Run Code Online (Sandbox Code Playgroud)

我尝试了许多过滤器来让 ansible 和 jinja 获取 JSON 变量并将其转换为所需格式的字符串,但结果从来都不太正确。| 到_json | 字符串给出以下结果:

{
  "data": "[{'URL': 'beta.test.net', 'token': 'beta-token'}, {'token': 'test-token', 'URL': 'beta-prod.test.net'}]"
}
Run Code Online (Sandbox Code Playgroud)

当我尝试使用替换或正则表达式替换时,即使使用保护字符,我最终也会遇到 python 解析错误。下面是一个示例,仅使用坟墓的重音“`”转义进行替换。

TASK [Update secret in AWS] ***************************************************************************************************
task path: path:27
The full traceback is:
Traceback (most recent call last):
  File "/home/.local/lib/python3.5/site-packages/ansible/executor/task_executor.py", line 146, in run
    res = self._execute()
  File "/home/.local/lib/python3.5/site-packages/ansible/executor/task_executor.py", line 587, in _execute
    self._task.post_validate(templar=templar)
  File "/home/.local/lib/python3.5/site-packages/ansible/playbook/task.py", …
Run Code Online (Sandbox Code Playgroud)

python jinja2 ansible

5
推荐指数
2
解决办法
8845
查看次数

标签 统计

ansible ×1

jinja2 ×1

python ×1