我尽可能地搜索,并尝试了大量不同的选项来实现这一点,但我完全陷入了困境。
从 Ansible 脚本中,我创建了由网络堆栈和实例堆栈组成的 Cloudformation 堆栈。在网络堆栈中,我创建了一个安全组,然后在创建实例时查找安全组并获取 ID,这样我就可以将其传递给实例堆栈。
我遇到的问题是安全组 ID 需要采用“字符串列表”类型的格式。
安全组 ID 是:sg-c5bfa4bd
所以我传递的参数应该是这样的:["sg-c5bfa4bd"]
。
我遇到的问题在于引号。这是我认为可以工作的代码,作为sg_group_id
参数传递给 cloudformation 模板:
- set_fact:
sg_group_id: '["{{ sg_group_ida }}"]'
但是当它到达 AWS 时,双引号会转换为单引号['sg-c5bfa4bd']
。
如果我将事实设置为在开头有两个双引号:'[""{{ sg_group_ida }}"]'
我会在 AWS 上的参数中得到双引号,并在末尾得到一个双引号:["sg-c5bfa4bd"]
。
如此迷茫。
谢谢你的帮助。
大卫
答案1
如果sg_group_ida
是字符串sg-c5bfa4bd, 然后:
- set_fact:
sg_group_id: '{{ [sg_group_ida] }}'
将产生一个列表["sg-c5bfa4bd"]
作为 的值sg_group_id
。