rabbit.yml 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. ---
  2. # tasks/rabbit.yml: Deploy RabbitMQ and set-up vhost for Sensu messaging
  3. - include_vars: "{{ ansible_distribution }}.yml"
  4. tags: rabbitmq
  5. - include_tasks: "{{ ansible_distribution }}/rabbit.yml"
  6. tags: rabbitmq
  7. - name: Ensure RabbitMQ SSL directory exists
  8. tags: rabbitmq
  9. file:
  10. dest: "{{ rabbitmq_config_path }}/ssl"
  11. state: directory
  12. - name: Ensure RabbitMQ SSL certs/keys are in place
  13. tags: rabbitmq
  14. copy:
  15. src: "{{ item.src }}"
  16. dest: "{{ rabbitmq_config_path }}/ssl/{{ item.dest }}"
  17. remote_src: "{{ sensu_ssl_deploy_remote_src }}"
  18. with_items:
  19. - { src: "{{ sensu_ssl_server_cacert }}", dest: cacert.pem }
  20. - { src: "{{ sensu_ssl_server_cert }}", dest: cert.pem }
  21. - { src: "{{ sensu_ssl_server_key }}", dest: key.pem }
  22. notify:
  23. - restart rabbitmq service
  24. - restart sensu-api service
  25. - restart sensu-server service
  26. - restart sensu-enterprise service
  27. when: sensu_ssl_manage_certs
  28. - name: Deploy RabbitMQ config
  29. tags: rabbitmq
  30. template:
  31. dest: "{{ rabbitmq_config_path }}/rabbitmq.config"
  32. src: "{{ rabbitmq_config_template }}"
  33. owner: root
  34. group: "{{ __root_group }}"
  35. mode: 0644
  36. notify: restart rabbitmq service
  37. - name: Ensure RabbitMQ is running
  38. tags: rabbitmq
  39. service:
  40. name: "{{ rabbitmq_service_name }}"
  41. state: started
  42. enabled: true
  43. register: rabbitmq_state
  44. - name: Wait for RabbitMQ to be up and running before asking to create a vhost
  45. tags: rabbitmq
  46. pause:
  47. seconds: 3
  48. when: rabbitmq_state is changed
  49. - block:
  50. - name: Ensure Sensu RabbitMQ vhost exists
  51. tags: rabbitmq
  52. rabbitmq_vhost:
  53. name: "{{ rabbitmq_sensu_vhost }}"
  54. state: present
  55. - name: Ensure Sensu RabbitMQ user has access to the Sensu vhost
  56. tags: rabbitmq
  57. rabbitmq_user:
  58. user: "{{ rabbitmq_sensu_user_name }}"
  59. password: "{{ rabbitmq_sensu_password }}"
  60. vhost: "{{ rabbitmq_sensu_vhost }}"
  61. configure_priv: .*
  62. read_priv: .*
  63. write_priv: .*
  64. state: present
  65. become: true
  66. become_user: rabbitmq