split out management infrastructure role further
[awsible] / roles / aws-management-queues / tasks / main.yml
diff --git a/roles/aws-management-queues/tasks/main.yml b/roles/aws-management-queues/tasks/main.yml
new file mode 100644 (file)
index 0000000..5c18f70
--- /dev/null
@@ -0,0 +1,58 @@
+---
+- assert:
+    that:
+    - MANAGEMENT_EVENT_FAILURE_QUEUE != ''
+    - MANAGEMENT_EVENT_QUEUE != ''
+  tags: ['check_vars']
+
+- name: Management failure queue.
+  sqs_queue:
+    state: present
+    region: "{{ vpc_region }}"
+    name: "{{ MANAGEMENT_EVENT_FAILURE_QUEUE }}"
+    default_visibility_timeout: 30
+    message_retention_period: 1209600
+    maximum_message_size: 262144
+    delivery_delay: 0
+    receive_message_wait_time: 0
+  register: management_failure_queue
+
+# as of Ansible 2.2.1.0 sqs_queue does not seem to be returning queue_arn
+
+- name: Managment queue.
+  sqs_queue:
+    state: present
+    region: "{{ vpc_region }}"
+    name: "{{ MANAGEMENT_EVENT_QUEUE }}"
+    default_visibility_timeout: 30
+    message_retention_period: 345600
+    maximum_message_size: 262144
+    delivery_delay: 0
+    receive_message_wait_time: 20
+    redrive_policy:
+      maxReceiveCount: 5
+      deadLetterTargetArn: "arn:aws:sqs:{{ vpc_region }}:{{ ACCT_ID }}:{{ MANAGEMENT_EVENT_FAILURE_QUEUE }}"
+#      deadLetterTargetArn: "{{ management_failure_queue.queue_arn }}"
+  register: management_queue
+
+- name: Management topic and subscription.
+  sns_topic:
+    state: present
+    region: "{{ vpc_region }}"
+    name: "{{ MANAGEMENT_EVENT_QUEUE }}"
+    display_name: "{{ MANAGEMENT_EVENT_QUEUE_SHORT }}"
+    purge_subscriptions: False
+    subscriptions:
+#   - endpoint: "{{ management_queue.queue_arn }}"
+    - endpoint: "arn:aws:sqs:{{ vpc_region }}:{{ ACCT_ID }}:{{ MANAGEMENT_EVENT_QUEUE }}"
+      protocol: "sqs"
+  register: management_topic
+
+- name: Management notice topic
+  sns_topic:
+    state: present
+    region: "{{ vpc_region }}"
+    name: "{{ MANAGEMENT_NOTICE_TOPIC }}"
+    display_name: "{{ MANAGEMENT_NOTICE_TOPIC_SHORT }}"
+    purge_subscriptions: False
+  register: management_notice_topic