首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在带有Ansible的json属性名中使用jinja模板

在带有Ansible的json属性名中使用jinja模板
EN

Stack Overflow用户
提问于 2019-03-20 17:35:28
回答 1查看 76关注 0票数 0

我找不到做以下模板的方法:

代码语言:javascript
复制
- debug: 
msg: {"registries":{"{{docker_registry.url}}":{"username":"{{docker_registry.user}}","password":"{{docker_registry.password}}"}}}

Ansible自动检测json,并且不注入{{docker_registry.url}}的值:

"msg":{“注册表”:{ "{{docker_registry.url}}":{“密码”:"arGgyprRu8R3nu7JBIki",“用户名”:"autom“}}

插入引号会产生“不可序列化”错误。我加反斜杠,反斜杠是反斜杠。

对此模板或忽略json序列化有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2019-03-20 17:46:32

引用这句话似乎很好:

代码语言:javascript
复制
- hosts: localhost
  gather_facts: false
  vars:
    docker_registry:
      url: http://foo.com
      user: alice
      password: secret
  tasks:
    - debug:
        msg: '{"registries":{"{{docker_registry.url}}":{"username":"{{docker_registry.user}}", "password":"{{docker_registry.password}}"}}}'

这一产出如下:

代码语言:javascript
复制
TASK [debug] **********************************************************************************
ok: [localhost] => {
    "msg": {
        "registries": {
            "http://foo.com": {
                "password": "secret",
                "username": "alice"
            }
        }
    }
}

我可能会这样引用它,以使它更加可读性:

代码语言:javascript
复制
    - debug:
        msg: |
          {
            "registries": {
              "{{docker_registry.url}}": {
                "username": "{{docker_registry.user}}",
                "password": "{{docker_registry.password}}"
              }
            }
          }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55266980

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档