]> git.immae.eu Git - github/fretlink/ansible-rabbitmq.git/commitdiff
updated tasks, fixed broken HA configuration tasks
authorLarry Smith Jr <mrlesmithjr@gmail.com>
Fri, 13 Nov 2015 07:56:48 +0000 (02:56 -0500)
committerLarry Smith Jr <mrlesmithjr@gmail.com>
Fri, 13 Nov 2015 07:56:48 +0000 (02:56 -0500)
defaults/main.yml
meta/.galaxy_install_info [new file with mode: 0644]
tasks/debian.yml
tasks/main.yml
tasks/rabbitmq_clustering.yml
tasks/rabbitmq_ha_config.yml
tasks/rabbitmq_users.yml [new file with mode: 0644]

index 7f7b33c4df3a245989dc9073c9d71449389a9d11..a8d37f4ec9a04d866363dbb4bb6f1c764c32ca88 100644 (file)
@@ -11,4 +11,14 @@ rabbitmq_config:
     type: direct
     routing_key: logstash
     tags: 'ha-mode=all,ha-sync-mode=automatic'
+rabbitmq_debian_repo: deb http://www.rabbitmq.com/debian/ testing main
+rabbitmq_debian_repo_key: http://www.rabbitmq.com/rabbitmq-signing-key-public.asc
 rabbitmq_master: []  #defines the inventory host that should be considered master...define here or in group_vars/group
+rabbitmq_users:  #define admin user to create in order to login to WebUI
+  - name: rabbitmqadmin
+    password: rabbitmqadmin
+    vhost: /
+    configure_priv: '.*'
+    read_priv: '.*'
+    write_priv: '.*'
+    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 (file)
index 0000000..2e2e5ee
--- /dev/null
@@ -0,0 +1 @@
+{install_date: 'Mon Nov  9 03:40:19 2015', version: ''}
index 4b3878258e14476a9b57fa1e38460b912144f87a..12ddd3bfb70558926fcd9db94e1fc7d24255f20d 100644 (file)
@@ -1,18 +1,29 @@
 ---
 - name: debian | adding RabbitMQ public GPG key to the apt repo
-  apt_key: url=http://www.rabbitmq.com/rabbitmq-signing-key-public.asc state=present
+  apt_key:
+    url: "{{ rabbitmq_debian_repo_key }}"
+    state: present
 
 - name: debian | adding RabbitMQ repo
-  apt_repository: repo='deb http://www.rabbitmq.com/debian/ testing main' update_cache=no state=present
+  apt_repository:
+    repo: "{{ rabbitmq_debian_repo }}"
+    state: present
 
 - name: debian | installing RabbitMQ server
-  apt: name={{ item }} state=present
+  apt:
+    name: "{{ item }}"
+    state: present
   with_items:
     - rabbitmq-server
 
 - name: debian | enabling the RabbitMQ Management Console
-  rabbitmq_plugin: names=rabbitmq_management state=enabled
+  rabbitmq_plugin:
+    names: rabbitmq_management
+    state: enabled
   notify: restart rabbitmq-server
 
 - name: debian | ensuring that the RabbitMQ service is running
-  service: name=rabbitmq-server state=started enabled=yes
+  service:
+    name: rabbitmq-server
+    state: started
+    enabled: yes
index cd24ad2f4ac6d41274c8096fd194bc9c46beac3d..bde00da90564a6b647e2e406aa67dd8a4f6e1029 100644 (file)
@@ -11,3 +11,5 @@
 
 - include: rabbitmq_ha_config.yml
   when: config_rabbitmq_ha and enable_rabbitmq_clustering
+
+- include: rabbitmq_users.yml
index 348662a21a53dafb2972478bacf35284e9206b71..f9b5157738521010bf28835ae51fa3a9710861af 100644 (file)
@@ -6,7 +6,9 @@
   command: rabbitmqctl reset
 
 - name: rabbitmq_clustering | stopping rabbitmq-server
-  service: name=rabbitmq-server state=stopped
+  service:
+    name: rabbitmq-server
+    state: stopped
 
 #- name: grabbing erlang cookie
 #  shell: cat /var/lib/rabbitmq/.erlang.cookie
 #  when: inventory_hostname == "{{ rabbitmq_master }}"
 
 - name: rabbitmq_clustering | copy erlang cookie
-  template: src=erlang.cookie.j2 dest={{ erlang_cookie_file }} owner=rabbitmq group=rabbitmq mode=0400 backup=yes
+  template:
+    src: erlang.cookie.j2
+    dest: "{{ erlang_cookie_file }}"
+    owner: rabbitmq
+    group: rabbitmq
+    mode: 0400
+    backup: yes #backing up in case the need to recover
 #  when: inventory_hostname != "{{ rabbitmq_master }}"
 
 - name: rabbitmq_clustering | restarting rabbitmq-server on master
-  service: name=rabbitmq-server state=restarted
+  service:
+    name: rabbitmq-server
+    state: restarted
   when: inventory_hostname == "{{ rabbitmq_master }}"
 
 - name: rabbitmq_clustering | starting rabbitmq app on master
@@ -31,7 +41,9 @@
   when: inventory_hostname != "{{ rabbitmq_master }}"
 
 - name: rabbitmq_clustering | restarting rabbitmq-server
-  service: name=rabbitmq-server state=restarted
+  service:
+    name: rabbitmq-server
+    state: restarted
   when: inventory_hostname != "{{ rabbitmq_master }}"
 
 - name: rabbitmq_clustering | stopping rabbitmq app
@@ -52,5 +64,7 @@
   when: inventory_hostname != "{{ rabbitmq_master }}"
 
 - name: rabbitmq_clustering | marking as clustered
-  file: path=/etc/rabbitmq/clustered state=touch
+  file:
+    path: /etc/rabbitmq/clustered
+    state: touch
   when: cluster_master.changed or cluster_joined.changed
index c048aed56fded3f5cbcff6e9080b897b895b2d47..3cbc38209d2277b765235ab2f336909c53140215 100644 (file)
@@ -1,13 +1,21 @@
 ---
+- name: rabbitmq_ha_config | checking if rabbitmqadmin is installed
+  stat:
+    path: /usr/sbin/rabbitmqadmin
+  register: rabbitmqadmin_check
+
 - name: rabbitmq_ha_config | install rabbitMQ admin
-  shell: wget http://guest:guest@localhost:55672/cli/rabbitmqadmin
+  shell: wget http://guest:guest@localhost:15672/cli/rabbitmqadmin
+  when: not rabbitmqadmin_check.stat.exists
 
 - name: rabbitmq_ha_config | moving the rabbitMQ Admin
   shell: mv rabbitmqadmin /usr/sbin
+  when: not rabbitmqadmin_check.stat.exists
 
 - name: rabbitmq_ha_config | making executable rabbitMQ Admin
   shell: chmod +x /usr/sbin/rabbitmqadmin
   notify: restart rabbitmq-server
+  when: not rabbitmqadmin_check.stat.exists
 
 - name: rabbitmq_ha_config | creating queue(s)
   command: rabbitmqadmin declare queue name={{ item.queue_name }} durable={{ item.durable|lower }}
   with_items: rabbitmq_config
 
 - name: rabbitmq_ha_config | setting up ha on queue(s)
-  rabbitmq_policy: name='ha-all' pattern='{{ item.queue_name }}' tags="{{ item.tags }}" state=present
+  rabbitmq_policy:
+    name: "ha-all"
+    pattern: "{{ item.queue_name }}"
+    tags: "{{ item.tags }}"
+    state: present
   run_once: true
   with_items: rabbitmq_config
 
   command: rabbitmqadmin declare exchange name={{ item.exchange_name }} type={{ item.type }}
   run_once: true
   with_items: rabbitmq_config
+  when: item.exchange_name is defined
 
 - name: rabbitmq_ha_config | creating binding(s)
   command: rabbitmqadmin declare binding source={{ item.exchange_name }} destination_type="queue" destination={{ item.queue_name }} routing_key={{ item.routing_key }}
   run_once: true
   with_items: rabbitmq_config
+  when: item.exchange_name is defined
diff --git a/tasks/rabbitmq_users.yml b/tasks/rabbitmq_users.yml
new file mode 100644 (file)
index 0000000..e14d390
--- /dev/null
@@ -0,0 +1,27 @@
+---
+- name: rabbitmq_users | creating rabbitmq users
+  rabbitmq_user:
+    name: "{{ item.name }}"
+    password: "{{ item.password }}"
+    vhost: "{{ item.vhost }}"
+    configure_priv: "{{ item.configure_priv }}"
+    read_priv: "{{ item.read_priv }}"
+    write_priv: "{{ item.write_priv }}"
+    tags: "{{ item.tags }}"
+    state: present
+  with_items: rabbitmq_users
+  when: (enable_rabbitmq_clustering is defined and not enable_rabbitmq_clustering) or enable_rabbitmq_clustering is not defined
+
+- name: rabbitmq_users | creating rabbitmq users
+  rabbitmq_user:
+    name: "{{ item.name }}"
+    password: "{{ item.password }}"
+    vhost: "{{ item.vhost }}"
+    configure_priv: "{{ item.configure_priv }}"
+    read_priv: "{{ item.read_priv }}"
+    write_priv: "{{ item.write_priv }}"
+    tags: "{{ item.tags }}"
+    state: present
+  run_once: yes
+  with_items: rabbitmq_users
+  when: (enable_rabbitmq_clustering is defined and enable_rabbitmq_clustering)