Ansible - 将逗号分隔的字符串转换为 space 用双引号分隔的字符串
Ansible - convert a comma delimited string into a space delimited string with double quotes
在我的最后一个问题得到了极大的帮助之后,我有了另一个 :)。
我有一个转换字符串变量内容的需求:Targets
debug:
msg:
- "Targets: {{ targets }}"
Returns 如下:
ok: [host] => {
"msg": [
"Targets: 10.0.1.1,10.0.1.2"
我需要能够拆分目标字符串并将其更改为 space 分隔字符串,每个元素都用双引号括起来。然后这将作为参数传递给另一个命令。
已更新上下文。
我将目标变量传递给一个角色,该角色又启动一个可执行文件:
- import_role:
name: run_exectable_file
vars:
# passing all the params here.
- params: -a -b -c {{ targets }}
- runtime: 3600
可执行的命令行需要是:
executable.exe -a -b -c "10.0.1.1" "10.0.1.2"
期望输出:
targets 变量需要在 space 分隔字符串中生成目标 IP 地址,每个元素用双引号括起来。
例如下面的调试输出:
ok: [host] => {
"msg": [
"Targets: "10.0.1.1" "10.0.1.2""
我一如既往地期待您的帮助。
你可以使用 Jinja 来获得你想要的。例如
- debug:
msg: "Targets: {{ _targets }}"
vars:
_targets: |
{% for i in targets.split(',') %}"{{ i }}" {% endfor %}
给予
msg: |-
Targets: "10.0.1.1" "10.0.1.2"
在我的最后一个问题得到了极大的帮助之后,我有了另一个 :)。
我有一个转换字符串变量内容的需求:Targets
debug:
msg:
- "Targets: {{ targets }}"
Returns 如下:
ok: [host] => {
"msg": [
"Targets: 10.0.1.1,10.0.1.2"
我需要能够拆分目标字符串并将其更改为 space 分隔字符串,每个元素都用双引号括起来。然后这将作为参数传递给另一个命令。
已更新上下文。
我将目标变量传递给一个角色,该角色又启动一个可执行文件:
- import_role:
name: run_exectable_file
vars:
# passing all the params here.
- params: -a -b -c {{ targets }}
- runtime: 3600
可执行的命令行需要是:
executable.exe -a -b -c "10.0.1.1" "10.0.1.2"
期望输出:
targets 变量需要在 space 分隔字符串中生成目标 IP 地址,每个元素用双引号括起来。
例如下面的调试输出:
ok: [host] => {
"msg": [
"Targets: "10.0.1.1" "10.0.1.2""
我一如既往地期待您的帮助。
你可以使用 Jinja 来获得你想要的。例如
- debug:
msg: "Targets: {{ _targets }}"
vars:
_targets: |
{% for i in targets.split(',') %}"{{ i }}" {% endfor %}
给予
msg: |-
Targets: "10.0.1.1" "10.0.1.2"