Ansible 如何将输出作为不带括号和 u 的变量

Ansible 如何将输出作为不带括号和 u 的变量

我有一个来自 ansible 的查询结果,并尝试将该结果用作变量

我的剧本是这样的

- name: Query
  oracle_sql:
    username: "{{ user }}"
    password: "{{ password }}"
    service_name: "{{ service_name }}"
    sql: "select smth  from table where smth like 'OK_%'"
  register: smth

结果格式如下:

"msg": [
    [
        "SMTH"
    ]
]
no stdout, no stderr

此后我想使用我的变量:

- name: echo
  shell: echo {{ smth.msg[0] }} > /tmp/test

输出如下:

[uSMTH]

如何删除括号和“u”?我知道这是一个列表,但我无法摆脱它。

我尝试从 yaml 或 json 格式转换,但没有成功,最后添加了一些回车符

| to_yaml 
| to_json
| to_nice_yaml
| to_nice_json

有什么建议吗?

答案1

返回的结果是列表的列表。即行列表,以及该行内的单元格列表。

尝试这样的事情。

- name: echo
  shell: echo {{ smth.msg[0][0] }} > /tmp/test

相关内容