Ansible从单独的文件填充字典值

时间:2017-05-10 17:07:50

标签: dictionary ansible amazon-cloudformation

我想使用Ansible CloudFormation模块在AWS上部署堆栈基础架构。所以,我使用这个Ansible CloudFormation example来处理。

在将参数传递给AWS模板的示例中,有一部分如

args:
  template_parameters:
    KeyName: jmartin
    DiskType: ephemeral
    InstanceType: m1.small
    ClusterSize: 3
register: stack

这里template_parameters是一个包含键和值的字典。像

"template_parameters": {
                "DiskType": "ephemeral", 
                "ClusterSize": "3", 
                "InstanceType": "m1.small", 
                "KeyName": "jmartin"
            }

所以,现在我想从另一个文件中填充字典值,在那里我创建了一个键和值的简单列表。像

args:
  template_parameters:
    - include: param_values.yml
register: stack

param_values.yml中会是这样的:

KeyName: jmartin
DiskType: ephemeral
InstanceType: m1.small
ClusterSize: 3

但这不是从文件中加载值。相反,它包括列表。

"template_parameters": [
                {
                    "include": "param_values.yml"
                }
            ]

最终会返回此错误:

  

“msg”:“参数template_parameters属于我们的类型   无法转换为字典“

有没有办法加载文件内容而不是将其作为字典值包含?

1 个答案:

答案 0 :(得分:0)

您需要在ansible中使用include_vars模块。

http://docs.ansible.com/ansible/include_vars_module.html

来自文档 - >

main.js