Amazon ec2 使用Ansible禁用ec2实例终止保护

Amazon ec2 使用Ansible禁用ec2实例终止保护,amazon-ec2,ansible,Amazon Ec2,Ansible,我目前正在为使用Ansible创建的所有实例启用终止\u保护,以防止从控制台等意外终止。现在我希望能够使用Ansible终止特定实例,但我不知道如何对它们禁用终止保护 这就是我认为会起作用的原因: - name: Disable termination protection ec2: instance_ids: "{{ instance_ids }}" region: "{{ aws_region }}" termination_protection: no 运行时

我目前正在为使用Ansible创建的所有实例启用
终止\u保护
,以防止从控制台等意外终止。现在我希望能够使用Ansible终止特定实例,但我不知道如何对它们禁用终止保护

这就是我认为会起作用的原因:

- name: Disable termination protection
  ec2:
    instance_ids: "{{ instance_ids }}"
    region: "{{ aws_region }}"
    termination_protection: no
运行时如何收到此错误消息:

fatal: [localhost]: FAILED! => {
  "changed": false, 
  "failed": true, 
  "msg": "image parameter is required for new instance"
}
看起来Ansible正在将我的脚本解释为实例创建请求


有没有办法用另一个模块更改
终端保护
?我唯一能想到的另一种方法是通过Ansible中的
shell
任务使用aws cli,但这有点老套。

让我们来看看

状态
正在运行
已停止
调用
startstop\u实例()
状态
restarted
调用
restart\u instances()

这两个功能都支持
源/目的地检查
终止保护
属性值

所以你可以打电话:

 - ec2:
     instance_ids: "{{ instance_ids }}"
     state: restarted
     region: "{{ aws_region }}"
     termination_protection: no
如果您不介意重新启动服务器

或者使用
ec2\u remote\u facts
查询当前状态,并使用该状态作为参数调用
ec2
模块–这将更改
终止保护
,但将保持实例的状态不变