我有一个使用Ansible cloudformation module创建的CloudFormation堆栈,然后我有一些被屏蔽的参数,这些参数是由一个单独的运营团队手动更新的。
现在我想更新堆栈以执行版本升级,虽然这很容易在AWS控制台和AWS CLI中完成,但我似乎找不到通过Ansible模块执行此操作的方法。
根据另一篇here文章,有人指出升级是不可能的,唯一的方法就是干脆不使用Ansible。
我已经尝试使用Ansible cloudformation_facts module来尝试获取参数,但无济于事。有没有其他方法可以从CloudFormation获取这些数据,或者我必须接受我不能使用Ansible的事实?
提前谢谢你。
发布于 2019-04-12 22:51:17
您可以使用Ansbile从cloudformation获取所有参数,如下所示:
---
- name: Get CloudFormation stats
cloudformation_facts:
stack_name: "{{ stack_name }}"
region: "{{ region }}"
register: my_stack如果您有一个名为"subnet-id“的参数,您可以查看返回结果如下所示:
---
- name: Get CloudFormation stats
cloudformation_facts:
stack_name: "{{ stack_name }}"
region: "{{ region }}"
register: my_stack
- debug: msg="{{ my_stack.ansible_facts.cloudformation[stack_name].stack_parameters.subnet-id }}"返回值如下所示:
ok: [localhost] => {
"msg": "subnet12345"
}然而,如果值被散列出来,你将不能看到它们的值是什么-所以答案是,在这种情况下,如果你试图转移到Ansbile,你不应该直接更新cloudformation。而是在源代码控制上的加密文件中更新这些值,并使用Ansible从那里进行构建。
https://stackoverflow.com/questions/54812851
复制相似问题