我如何在Ansible Cloud形成模块中传递参数文件

时间:2019-09-04 16:15:41

标签: ansible ansible-facts

我正在ansible中使用cloudformation模块,并且在传递参数文件时遇到问题。

  

致命:[localhost]:失败! => {“已更改”:false,“ msg”:“不受支持   (cloudformation)模块的参数:dist支持的参数   包括:aws_access_key,aws_secret_key,backoff_delay,   backoff_max_delay,backoff_retries,功能,更改et_name,   create_changeset,create_timeout,debug_botocore_endpoint_logs,   disable_rollback,ec2_url,events_limit,notification_arns,配置文件,   区域,role_arn,security_token,stack_name,stack_policy,状态,   标签,模板,模板主体,模板格式,模板参数,   template_url,termination_protection,validate_certs“}

我已经使用了没有dist属性的template_parameters,如下所示,

#template_parameters: "{{ lookup('file', '/root/cloudformation_template/Parameter-tableau.json') | from_json }}"

但是我遇到了同样的错误。该任务类似于以下任务,

- name: create a cloudformation stack
  cloudformation:
        stack_name: "ansible-cloudformation111"
        state: "present"
        template: "/root/cloudformation_template/poc-tableau.json"
        template_parameters:
        dist: "{{ lookup('file', '/root/cloudformation_template/Parameter-tableau.json')  }}"

1 个答案:

答案 0 :(得分:0)

很难说出问题是什么,因为问题中的代码块未格式化,并且格式化在yaml和ansible中非常重要。但是我有一个猜测。

如果您的任务是这样格式化的

name: create a cloudformation stack
cloudformation:
  stack_name: "ansible-cloudformation111"
  state: "present"
  template: "/root/cloudformation_template/poc-tableau.json"
  template_parameters:
  dist: "{{ lookup('file', '/root/cloudformation_template/Parameter-tableau.json') }}"

然后您将收到错误消息Unsupported parameters for (cloudformation) module: dist,因为由于格式化,此处distcloudformation的参数。将dist行缩进两个空格应该可以解决此问题:

name: create a cloudformation stack
cloudformation:
  stack_name: "ansible-cloudformation111"
  state: "present"
  template: "/root/cloudformation_template/poc-tableau.json"
  template_parameters:
    dist: "{{ lookup('file', '/root/cloudformation_template/Parameter-tableau.json') }}"