这可能很容易,但我无法弄清楚
我有一个简单的列表,需要将其转换为字符串,但我需要最终字符串中的每个项目都包含引号
vars:
servers:
- ServerA
- ServerB
- ServerC
tasks:
- name: Join into string
debug:
msg: "{{ servers | join(,) }}"
result looks like this
"msg": "ServerA,ServerB,ServerC"
但我需要获取格式
msg: '"ServerA","ServerB","ServerC"'
最佳答案
加入项目
result: >-
"{{ servers|join('","') }}"
调试
- debug:
msg: "{{ result }}"
给出了预期的结果
msg: '"ServerA","ServerB","ServerC"'
可以将其写入文件
- copy:
dest: /tmp/result.txt
content: >
"{{ servers|join('","') }}"
给出
shell> cat /tmp/result.txt
"ServerA","ServerB","ServerC"
用于测试的完整剧本示例
- hosts: localhost
vars:
servers:
- ServerA
- ServerB
- ServerC
result: >-
"{{ servers|join('","') }}"
tasks:
- debug:
msg: "{{ result }}"
- copy:
dest: /tmp/result.txt
content: >
"{{ servers|join('","') }}"
关于list - Ansible 将列表项连接到字符串中,包括引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75975941/