summaryrefslogtreecommitdiffstats
path: root/deploy/adapters/ansible/roles/mq
diff options
context:
space:
mode:
Diffstat (limited to 'deploy/adapters/ansible/roles/mq')
-rw-r--r--deploy/adapters/ansible/roles/mq/tasks/main.yml6
-rw-r--r--deploy/adapters/ansible/roles/mq/tasks/rabbitmq.yml45
-rw-r--r--deploy/adapters/ansible/roles/mq/tasks/rabbitmq_cluster.yml27
-rw-r--r--deploy/adapters/ansible/roles/mq/templates/.erlang.cookie1
-rw-r--r--deploy/adapters/ansible/roles/mq/templates/rabbitmq-env.conf1
-rw-r--r--deploy/adapters/ansible/roles/mq/vars/Debian.yml6
6 files changed, 86 insertions, 0 deletions
diff --git a/deploy/adapters/ansible/roles/mq/tasks/main.yml b/deploy/adapters/ansible/roles/mq/tasks/main.yml
new file mode 100644
index 00000000..47e41a25
--- /dev/null
+++ b/deploy/adapters/ansible/roles/mq/tasks/main.yml
@@ -0,0 +1,6 @@
+---
+- include_vars: "{{ ansible_os_family }}.yml"
+- include: rabbitmq.yml
+
+#- include: rabbitmq_cluster.yml
+# when: HA_CLUSTER is defined
diff --git a/deploy/adapters/ansible/roles/mq/tasks/rabbitmq.yml b/deploy/adapters/ansible/roles/mq/tasks/rabbitmq.yml
new file mode 100644
index 00000000..9e574c18
--- /dev/null
+++ b/deploy/adapters/ansible/roles/mq/tasks/rabbitmq.yml
@@ -0,0 +1,45 @@
+---
+- name: create rabbitmq directory
+ file: path=/etc/rabbitmq state=directory mode=0755
+
+- name: copy rabbitmq config file
+ template: src=rabbitmq-env.conf dest=/etc/rabbitmq/rabbitmq-env.conf mode=0755
+
+- name: install rabbitmq-server
+ action: "{{ ansible_pkg_mgr }} name=rabbitmq-server state=present"
+ with_items: packages
+
+- name: stop rabbitmq-server
+ service: name=rabbitmq-server
+ state=stopped
+
+- name: update .erlang.cookie
+ template: src=.erlang.cookie dest=/var/lib/rabbitmq/.erlang.cookie
+ group=rabbitmq
+ owner=rabbitmq
+ mode=0400
+ when: ERLANG_TOKEN is defined
+
+- name: start and enable rabbitmq-server
+ service: name=rabbitmq-server
+ state=started
+ enabled=yes
+
+- name: generate mq service list
+ shell: echo {{ item }} >> /opt/service
+ with_items: services
+
+- name: modify rabbitmq password
+ command: rabbitmqctl change_password guest {{ RABBIT_PASS }}
+ when: "RABBIT_USER is defined and RABBIT_USER == 'guest'"
+ ignore_errors: True
+
+- name: add rabbitmq user
+ command: rabbitmqctl add_user {{ RABBIT_USER }} {{ RABBIT_PASS }}
+ when: "RABBIT_USER is defined and RABBIT_USER != 'guest'"
+ ignore_errors: True
+
+- name: set rabbitmq user permission
+ command: rabbitmqctl set_permissions -p / {{ RABBIT_USER }} ".*" ".*" ".*"
+ when: "RABBIT_USER is defined and RABBIT_USER != 'guest'"
+
diff --git a/deploy/adapters/ansible/roles/mq/tasks/rabbitmq_cluster.yml b/deploy/adapters/ansible/roles/mq/tasks/rabbitmq_cluster.yml
new file mode 100644
index 00000000..cb83a0c9
--- /dev/null
+++ b/deploy/adapters/ansible/roles/mq/tasks/rabbitmq_cluster.yml
@@ -0,0 +1,27 @@
+---
+- name: stop rabbitmq app
+ command: rabbitmqctl stop_app
+ when: HA_CLUSTER[inventory_hostname] != ''
+
+- name: rabbitmqctl reset
+ command: rabbitmqctl reset
+ when: HA_CLUSTER[inventory_hostname] != ''
+
+- name: stop rabbitmq
+ shell: rabbitmqctl stop
+
+- name: set detach
+ shell: rabbitmq-server -detached
+
+- name: join cluster
+ command: rabbitmqctl join_cluster rabbit@{{ item }}
+ when: item != inventory_hostname and HA_CLUSTER[item] == ''
+ with_items:
+ groups['controller']
+
+- name: start rabbitmq app
+ command: rabbitmqctl start_app
+
+- name: set the HA policy
+ rabbitmq_policy: name=ha-all pattern='^(?!amq\.).*' tags="ha-mode=all"
+
diff --git a/deploy/adapters/ansible/roles/mq/templates/.erlang.cookie b/deploy/adapters/ansible/roles/mq/templates/.erlang.cookie
new file mode 100644
index 00000000..cadcfaf3
--- /dev/null
+++ b/deploy/adapters/ansible/roles/mq/templates/.erlang.cookie
@@ -0,0 +1 @@
+{{ ERLANG_TOKEN }}
diff --git a/deploy/adapters/ansible/roles/mq/templates/rabbitmq-env.conf b/deploy/adapters/ansible/roles/mq/templates/rabbitmq-env.conf
new file mode 100644
index 00000000..6dd7349c
--- /dev/null
+++ b/deploy/adapters/ansible/roles/mq/templates/rabbitmq-env.conf
@@ -0,0 +1 @@
+RABBITMQ_NODE_IP_ADDRESS={{ HA_VIP }}
diff --git a/deploy/adapters/ansible/roles/mq/vars/Debian.yml b/deploy/adapters/ansible/roles/mq/vars/Debian.yml
new file mode 100644
index 00000000..a9a9ac4f
--- /dev/null
+++ b/deploy/adapters/ansible/roles/mq/vars/Debian.yml
@@ -0,0 +1,6 @@
+---
+packages:
+ - rabbitmq-server
+
+services:
+ - "rabbitmq-server"