-
Notifications
You must be signed in to change notification settings - Fork 0
/
ec2_terminate.yml
83 lines (73 loc) · 2.39 KB
/
ec2_terminate.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
---
- name: backup
hosts: ctf-web
tasks:
- name: include vars
include_vars:
dir: vars/
- name: stop services
become: yes
service: name={{ item }} state=stopped
with_items: ["gunicorn", "nginx"]
- name: copy db from web
become: yes
tags: dbcopy
fetch:
src: /home/{{ user }}/CTFd/CTFd/ctfd.db
dest: files/
fail_on_missing: yes
flat: yes
- name: synchronize /etc/letsencrypt
become: yes
tags: lesync
synchronize:
src: /etc/letsencrypt/
dest: files/letsencrypt/
delete: yes
checksum: yes
mode: pull
- name: Terminate EC2 instances
hosts: localhost
gather_facts: False
tasks:
- name: include vars
include_vars:
dir: vars/
- name: Gather EC2 instances
ec2_remote_facts:
aws_access_key: "{{ aws_access_key_id }}"
aws_secret_key: "{{ aws_secret_access_key }}"
region: "{{ region }}"
filters:
instance-state-name: running
"tag:Group": ctf
register: ec2
- name: Remove the newly created EC2 instance(s) to the local host group (located inside the directory)
local_action: lineinfile
dest="./hosts"
regexp={{ item.public_ip_address }}
state=absent
with_items: "{{ ec2.instances }}"
- name: get dns from route53
local_action: route53
command=get
zone={{ domain }}
record={{ item }}{{ domain }}
type=A
with_items: ["", "www.", "chal."]
register: dns
- name: remove dns from route53
local_action: route53
command=delete
zone={{ domain }}
record={{ item.set.record }}
type={{ item.set.type }}
ttl={{ item.set.ttl }}
value={{ item.set.value }}
with_items: "{{ dns.results }}"
- name: Terminate the new EC2 Instance(s)
local_action: ec2
state=absent
region={{ region }}
instance_ids={{ item.id }}
with_items: "{{ ec2.instances }}"