我有一个使用Ansible cloudformation
module创建的CloudFormation堆栈,然后有一些被掩盖的参数,这些参数是由一个单独的运营团队手动更新的。
现在,我想更新堆栈以执行版本升级,尽管这可以在AWS控制台中和通过AWS CLI轻松完成,但我似乎找不到通过Ansible模块执行此操作的方法。
根据另一篇here,有人指出不可能进行升级,唯一的方法就是根本不使用Ansible。
我尝试使用Ansible cloudformation_facts
module尝试获取参数无济于事。还有其他方法可以从CloudFormation提取此数据,还是我必须接受我不能使用Ansible的信息?
谢谢。
答案 0 :(得分:1)
您可以使用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从那里构建。