我正在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') }}"
答案 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
,因为由于格式化,此处dist
是cloudformation
的参数。将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') }}"