如何在ansible中将dict格式化为字符串

如何在ansible中将dict格式化为字符串,ansible,jinja2,Ansible,Jinja2,我想在ansible中格式化一个dict,就像这样 从 到 必须将其设置为块中的环境变量,就像这样 vars: test_env: a: 1 b: 2 c: 3 - block: # tasks environment: SOME_ENV: 'a=1,b=2,c=3' 在这里,我想将test\u envdict转换为'a=1,b=2,c=3' 我无法将事实设置为修改dict,然后将其设置为SOME_ENV,因为environment是一个不同的

我想在ansible中格式化一个dict,就像这样

必须将其设置为块中的环境变量,就像这样

vars:
  test_env:
    a: 1
    b: 2
    c: 3

- block:
    # tasks
  environment:
    SOME_ENV: 'a=1,b=2,c=3'
在这里,我想将
test\u env
dict转换为
'a=1,b=2,c=3'
我无法将事实设置为修改dict,然后将其设置为
SOME_ENV
,因为
environment
是一个不同的子句,我可以在
vars
子句中修改dict,但是否有其他解决方案


干杯,

将字典分解为键和值列表。然后压缩列表并加入项目。比如说,

-块:
-命令:echo$SOME_ENV
寄存器:结果
环境:
一些_ENV:“{{test_ENV.keys()|
zip(测试环境值())|
映射('join','='))|
连接(',')}”
-调试:
var:result.stdout
给予

ok:[localhost]=>{
“result.stdout”:“a=1,b=2,c=3”
}

将字典分解为键和值列表。然后压缩列表并加入项目。比如说,

-块:
-命令:echo$SOME_ENV
寄存器:结果
环境:
一些_ENV:“{{test_ENV.keys()|
zip(测试环境值())|
映射('join','='))|
连接(',')}”
-调试:
var:result.stdout
给予

ok:[localhost]=>{
“result.stdout”:“a=1,b=2,c=3”
}

你能澄清一下你所说的“…我不能将事实设置为修改dict,然后将其设置为SOME_ENV,因为环境是一个不同的子句…”是什么意思吗?你能澄清一下你所说的“…我不能将事实设置为修改dict,然后将其设置为SOME_ENV,因为环境是一个不同的子句…”吗?
'a=1,b=2,c=3'
vars:
  test_env:
    a: 1
    b: 2
    c: 3

- block:
    # tasks
  environment:
    SOME_ENV: 'a=1,b=2,c=3'