diff options
-rw-r--r-- | defaults/main.yml | 10 | ||||
-rw-r--r-- | meta/.galaxy_install_info | 1 | ||||
-rw-r--r-- | tasks/debian.yml | 21 | ||||
-rw-r--r-- | tasks/main.yml | 2 | ||||
-rw-r--r-- | tasks/rabbitmq_clustering.yml | 24 | ||||
-rw-r--r-- | tasks/rabbitmq_ha_config.yml | 18 | ||||
-rw-r--r-- | tasks/rabbitmq_users.yml | 27 |
7 files changed, 91 insertions, 12 deletions
diff --git a/defaults/main.yml b/defaults/main.yml index 7f7b33c..a8d37f4 100644 --- a/defaults/main.yml +++ b/defaults/main.yml | |||
@@ -11,4 +11,14 @@ rabbitmq_config: | |||
11 | type: direct | 11 | type: direct |
12 | routing_key: logstash | 12 | routing_key: logstash |
13 | tags: 'ha-mode=all,ha-sync-mode=automatic' | 13 | tags: 'ha-mode=all,ha-sync-mode=automatic' |
14 | rabbitmq_debian_repo: deb http://www.rabbitmq.com/debian/ testing main | ||
15 | rabbitmq_debian_repo_key: http://www.rabbitmq.com/rabbitmq-signing-key-public.asc | ||
14 | rabbitmq_master: [] #defines the inventory host that should be considered master...define here or in group_vars/group | 16 | rabbitmq_master: [] #defines the inventory host that should be considered master...define here or in group_vars/group |
17 | rabbitmq_users: #define admin user to create in order to login to WebUI | ||
18 | - name: rabbitmqadmin | ||
19 | password: rabbitmqadmin | ||
20 | vhost: / | ||
21 | configure_priv: '.*' | ||
22 | read_priv: '.*' | ||
23 | write_priv: '.*' | ||
24 | tags: 'administrator' #define comma separated list of tags to assign to user....management,policymaker,monitoring,administrator...required for management plugin. https://www.rabbitmq.com/management.html | ||
diff --git a/meta/.galaxy_install_info b/meta/.galaxy_install_info new file mode 100644 index 0000000..2e2e5ee --- /dev/null +++ b/meta/.galaxy_install_info | |||
@@ -0,0 +1 @@ | |||
{install_date: 'Mon Nov 9 03:40:19 2015', version: ''} | |||
diff --git a/tasks/debian.yml b/tasks/debian.yml index 4b38782..12ddd3b 100644 --- a/tasks/debian.yml +++ b/tasks/debian.yml | |||
@@ -1,18 +1,29 @@ | |||
1 | --- | 1 | --- |
2 | - name: debian | adding RabbitMQ public GPG key to the apt repo | 2 | - name: debian | adding RabbitMQ public GPG key to the apt repo |
3 | apt_key: url=http://www.rabbitmq.com/rabbitmq-signing-key-public.asc state=present | 3 | apt_key: |
4 | url: "{{ rabbitmq_debian_repo_key }}" | ||
5 | state: present | ||
4 | 6 | ||
5 | - name: debian | adding RabbitMQ repo | 7 | - name: debian | adding RabbitMQ repo |
6 | apt_repository: repo='deb http://www.rabbitmq.com/debian/ testing main' update_cache=no state=present | 8 | apt_repository: |
9 | repo: "{{ rabbitmq_debian_repo }}" | ||
10 | state: present | ||
7 | 11 | ||
8 | - name: debian | installing RabbitMQ server | 12 | - name: debian | installing RabbitMQ server |
9 | apt: name={{ item }} state=present | 13 | apt: |
14 | name: "{{ item }}" | ||
15 | state: present | ||
10 | with_items: | 16 | with_items: |
11 | - rabbitmq-server | 17 | - rabbitmq-server |
12 | 18 | ||
13 | - name: debian | enabling the RabbitMQ Management Console | 19 | - name: debian | enabling the RabbitMQ Management Console |
14 | rabbitmq_plugin: names=rabbitmq_management state=enabled | 20 | rabbitmq_plugin: |
21 | names: rabbitmq_management | ||
22 | state: enabled | ||
15 | notify: restart rabbitmq-server | 23 | notify: restart rabbitmq-server |
16 | 24 | ||
17 | - name: debian | ensuring that the RabbitMQ service is running | 25 | - name: debian | ensuring that the RabbitMQ service is running |
18 | service: name=rabbitmq-server state=started enabled=yes | 26 | service: |
27 | name: rabbitmq-server | ||
28 | state: started | ||
29 | enabled: yes | ||
diff --git a/tasks/main.yml b/tasks/main.yml index cd24ad2..bde00da 100644 --- a/tasks/main.yml +++ b/tasks/main.yml | |||
@@ -11,3 +11,5 @@ | |||
11 | 11 | ||
12 | - include: rabbitmq_ha_config.yml | 12 | - include: rabbitmq_ha_config.yml |
13 | when: config_rabbitmq_ha and enable_rabbitmq_clustering | 13 | when: config_rabbitmq_ha and enable_rabbitmq_clustering |
14 | |||
15 | - include: rabbitmq_users.yml | ||
diff --git a/tasks/rabbitmq_clustering.yml b/tasks/rabbitmq_clustering.yml index 348662a..f9b5157 100644 --- a/tasks/rabbitmq_clustering.yml +++ b/tasks/rabbitmq_clustering.yml | |||
@@ -6,7 +6,9 @@ | |||
6 | command: rabbitmqctl reset | 6 | command: rabbitmqctl reset |
7 | 7 | ||
8 | - name: rabbitmq_clustering | stopping rabbitmq-server | 8 | - name: rabbitmq_clustering | stopping rabbitmq-server |
9 | service: name=rabbitmq-server state=stopped | 9 | service: |
10 | name: rabbitmq-server | ||
11 | state: stopped | ||
10 | 12 | ||
11 | #- name: grabbing erlang cookie | 13 | #- name: grabbing erlang cookie |
12 | # shell: cat /var/lib/rabbitmq/.erlang.cookie | 14 | # shell: cat /var/lib/rabbitmq/.erlang.cookie |
@@ -14,11 +16,19 @@ | |||
14 | # when: inventory_hostname == "{{ rabbitmq_master }}" | 16 | # when: inventory_hostname == "{{ rabbitmq_master }}" |
15 | 17 | ||
16 | - name: rabbitmq_clustering | copy erlang cookie | 18 | - name: rabbitmq_clustering | copy erlang cookie |
17 | template: src=erlang.cookie.j2 dest={{ erlang_cookie_file }} owner=rabbitmq group=rabbitmq mode=0400 backup=yes | 19 | template: |
20 | src: erlang.cookie.j2 | ||
21 | dest: "{{ erlang_cookie_file }}" | ||
22 | owner: rabbitmq | ||
23 | group: rabbitmq | ||
24 | mode: 0400 | ||
25 | backup: yes #backing up in case the need to recover | ||
18 | # when: inventory_hostname != "{{ rabbitmq_master }}" | 26 | # when: inventory_hostname != "{{ rabbitmq_master }}" |
19 | 27 | ||
20 | - name: rabbitmq_clustering | restarting rabbitmq-server on master | 28 | - name: rabbitmq_clustering | restarting rabbitmq-server on master |
21 | service: name=rabbitmq-server state=restarted | 29 | service: |
30 | name: rabbitmq-server | ||
31 | state: restarted | ||
22 | when: inventory_hostname == "{{ rabbitmq_master }}" | 32 | when: inventory_hostname == "{{ rabbitmq_master }}" |
23 | 33 | ||
24 | - name: rabbitmq_clustering | starting rabbitmq app on master | 34 | - name: rabbitmq_clustering | starting rabbitmq app on master |
@@ -31,7 +41,9 @@ | |||
31 | when: inventory_hostname != "{{ rabbitmq_master }}" | 41 | when: inventory_hostname != "{{ rabbitmq_master }}" |
32 | 42 | ||
33 | - name: rabbitmq_clustering | restarting rabbitmq-server | 43 | - name: rabbitmq_clustering | restarting rabbitmq-server |
34 | service: name=rabbitmq-server state=restarted | 44 | service: |
45 | name: rabbitmq-server | ||
46 | state: restarted | ||
35 | when: inventory_hostname != "{{ rabbitmq_master }}" | 47 | when: inventory_hostname != "{{ rabbitmq_master }}" |
36 | 48 | ||
37 | - name: rabbitmq_clustering | stopping rabbitmq app | 49 | - name: rabbitmq_clustering | stopping rabbitmq app |
@@ -52,5 +64,7 @@ | |||
52 | when: inventory_hostname != "{{ rabbitmq_master }}" | 64 | when: inventory_hostname != "{{ rabbitmq_master }}" |
53 | 65 | ||
54 | - name: rabbitmq_clustering | marking as clustered | 66 | - name: rabbitmq_clustering | marking as clustered |
55 | file: path=/etc/rabbitmq/clustered state=touch | 67 | file: |
68 | path: /etc/rabbitmq/clustered | ||
69 | state: touch | ||
56 | when: cluster_master.changed or cluster_joined.changed | 70 | when: cluster_master.changed or cluster_joined.changed |
diff --git a/tasks/rabbitmq_ha_config.yml b/tasks/rabbitmq_ha_config.yml index c048aed..3cbc382 100644 --- a/tasks/rabbitmq_ha_config.yml +++ b/tasks/rabbitmq_ha_config.yml | |||
@@ -1,13 +1,21 @@ | |||
1 | --- | 1 | --- |
2 | - name: rabbitmq_ha_config | checking if rabbitmqadmin is installed | ||
3 | stat: | ||
4 | path: /usr/sbin/rabbitmqadmin | ||
5 | register: rabbitmqadmin_check | ||
6 | |||
2 | - name: rabbitmq_ha_config | install rabbitMQ admin | 7 | - name: rabbitmq_ha_config | install rabbitMQ admin |
3 | shell: wget http://guest:guest@localhost:55672/cli/rabbitmqadmin | 8 | shell: wget http://guest:guest@localhost:15672/cli/rabbitmqadmin |
9 | when: not rabbitmqadmin_check.stat.exists | ||
4 | 10 | ||
5 | - name: rabbitmq_ha_config | moving the rabbitMQ Admin | 11 | - name: rabbitmq_ha_config | moving the rabbitMQ Admin |
6 | shell: mv rabbitmqadmin /usr/sbin | 12 | shell: mv rabbitmqadmin /usr/sbin |
13 | when: not rabbitmqadmin_check.stat.exists | ||
7 | 14 | ||
8 | - name: rabbitmq_ha_config | making executable rabbitMQ Admin | 15 | - name: rabbitmq_ha_config | making executable rabbitMQ Admin |
9 | shell: chmod +x /usr/sbin/rabbitmqadmin | 16 | shell: chmod +x /usr/sbin/rabbitmqadmin |
10 | notify: restart rabbitmq-server | 17 | notify: restart rabbitmq-server |
18 | when: not rabbitmqadmin_check.stat.exists | ||
11 | 19 | ||
12 | - name: rabbitmq_ha_config | creating queue(s) | 20 | - name: rabbitmq_ha_config | creating queue(s) |
13 | command: rabbitmqadmin declare queue name={{ item.queue_name }} durable={{ item.durable|lower }} | 21 | command: rabbitmqadmin declare queue name={{ item.queue_name }} durable={{ item.durable|lower }} |
@@ -15,7 +23,11 @@ | |||
15 | with_items: rabbitmq_config | 23 | with_items: rabbitmq_config |
16 | 24 | ||
17 | - name: rabbitmq_ha_config | setting up ha on queue(s) | 25 | - name: rabbitmq_ha_config | setting up ha on queue(s) |
18 | rabbitmq_policy: name='ha-all' pattern='{{ item.queue_name }}' tags="{{ item.tags }}" state=present | 26 | rabbitmq_policy: |
27 | name: "ha-all" | ||
28 | pattern: "{{ item.queue_name }}" | ||
29 | tags: "{{ item.tags }}" | ||
30 | state: present | ||
19 | run_once: true | 31 | run_once: true |
20 | with_items: rabbitmq_config | 32 | with_items: rabbitmq_config |
21 | 33 | ||
@@ -23,8 +35,10 @@ | |||
23 | command: rabbitmqadmin declare exchange name={{ item.exchange_name }} type={{ item.type }} | 35 | command: rabbitmqadmin declare exchange name={{ item.exchange_name }} type={{ item.type }} |
24 | run_once: true | 36 | run_once: true |
25 | with_items: rabbitmq_config | 37 | with_items: rabbitmq_config |
38 | when: item.exchange_name is defined | ||
26 | 39 | ||
27 | - name: rabbitmq_ha_config | creating binding(s) | 40 | - name: rabbitmq_ha_config | creating binding(s) |
28 | command: rabbitmqadmin declare binding source={{ item.exchange_name }} destination_type="queue" destination={{ item.queue_name }} routing_key={{ item.routing_key }} | 41 | command: rabbitmqadmin declare binding source={{ item.exchange_name }} destination_type="queue" destination={{ item.queue_name }} routing_key={{ item.routing_key }} |
29 | run_once: true | 42 | run_once: true |
30 | with_items: rabbitmq_config | 43 | with_items: rabbitmq_config |
44 | when: item.exchange_name is defined | ||
diff --git a/tasks/rabbitmq_users.yml b/tasks/rabbitmq_users.yml new file mode 100644 index 0000000..e14d390 --- /dev/null +++ b/tasks/rabbitmq_users.yml | |||
@@ -0,0 +1,27 @@ | |||
1 | --- | ||
2 | - name: rabbitmq_users | creating rabbitmq users | ||
3 | rabbitmq_user: | ||
4 | name: "{{ item.name }}" | ||
5 | password: "{{ item.password }}" | ||
6 | vhost: "{{ item.vhost }}" | ||
7 | configure_priv: "{{ item.configure_priv }}" | ||
8 | read_priv: "{{ item.read_priv }}" | ||
9 | write_priv: "{{ item.write_priv }}" | ||
10 | tags: "{{ item.tags }}" | ||
11 | state: present | ||
12 | with_items: rabbitmq_users | ||
13 | when: (enable_rabbitmq_clustering is defined and not enable_rabbitmq_clustering) or enable_rabbitmq_clustering is not defined | ||
14 | |||
15 | - name: rabbitmq_users | creating rabbitmq users | ||
16 | rabbitmq_user: | ||
17 | name: "{{ item.name }}" | ||
18 | password: "{{ item.password }}" | ||
19 | vhost: "{{ item.vhost }}" | ||
20 | configure_priv: "{{ item.configure_priv }}" | ||
21 | read_priv: "{{ item.read_priv }}" | ||
22 | write_priv: "{{ item.write_priv }}" | ||
23 | tags: "{{ item.tags }}" | ||
24 | state: present | ||
25 | run_once: yes | ||
26 | with_items: rabbitmq_users | ||
27 | when: (enable_rabbitmq_clustering is defined and enable_rabbitmq_clustering) | ||