Я создаю учебник для amazon AMI builder. Идея такова:
- создать экземпляр EC2
- подготовить его
- зарегистрировать AMI
- завершить экземпляр EC2
Я хотел бы завершить работу экземпляра EC2 в любом случае, даже если предыдущий шаг завершился неудачно.
Моя книга в настоящее время выглядит так (созданный экземпляр EC2 динамически добавляется в группу ec2_servers
в aws_spawn_ec2
роль)):
---
- hosts: localhost
connection: local
gather_facts: False
roles:
- role: aws_spawn_ec2
vars:
ec2_host_group: ec2_servers
- hosts: ec2_servers
roles:
- role: provision_ec2
- hosts: localhost
connection: local
gather_facts: False
roles:
- role: aws_ami_register
- hosts: localhost
connection: local
gather_facts: False
roles:
-role: aws_terminate_ec2
Я хочу, чтобы последняя игра была запущена, даже если предыдущая игра не удалась. Есть ли (желательно чистый) способ сделать это?
[EDIT] Я попробовал ответить @ Z.Liu, получил следующую ошибку: ERROR! 'delegate_to' is not a valid attribute for a IncludeRole
Затем я попробовал это:
- name: provision ec2
include_role:
name: provision_ec2
apply:
delegate_to: ec2_servers
Но теперь у меня эта ошибка:
TASK [provision ec2 : Check if reboot is required] **********************************************************************************************************
fatal: [localhost]: FAILED! => {"msg": "The conditional check 'reboot_required.stat.exists' failed. The error was: error while evaluating conditional (reboot_required.stat.exists): 'dict object' has no attribute 'stat'"}
У меня ansible 2.9.10
Спасибо