diff --git a/defaults/main.yml b/defaults/main.yml index 2733803..f2a665a 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -9,16 +9,21 @@ rabbitmq_tls_link_dir: "/etc/rabbitmq/certs" rabbitmq_file_limit: 500000 # You are expected to set these yourself in your playbook -#rabbitmq_cookie_staging: ... -#rabbitmq_cookie_production: ... - -# You are expected to set these yourself in your playbook -#rabbitmq_admin_password_staging: ... -#rabbitmq_admin_password_production: ... +rabbitmq_cookie: "NotASafeCookie" +rabbitmq_admin_password: "NotASafePassword" +rabbitmq_cluster_name: "default" +rabbitmq_cluster_list: + - rabbitmq01.rockylinux.org + - rabbitmq02.rockylinux.org + - rabbitmq03.rockylinux.org +rabbitmq_env: "default" +# You can override this in your playbooks as well rabbitmq_plugins: - rabbitmq_amqp1_0 - rabbitmq_auth_backend_ldap - rabbitmq_auth_mechanism_ssl - rabbitmq_management - rabbitmq_mqtt + - rabbitmq_federation + - rabbitmq_federation_management diff --git a/files/selinux/rabbitmq_nrpe.te b/files/selinux/rabbitmq_nrpe.te new file mode 100644 index 0000000..6849024 --- /dev/null +++ b/files/selinux/rabbitmq_nrpe.te @@ -0,0 +1,12 @@ +module rabbitmq_nrpe 1.0; + +require { + type amqp_port_t; + type nrpe_t; + class tcp_socket name_connect; + +} + +#============= nrpe_t ============== +# let nagios plugin connect to rabbitmq management interface +allow nrpe_t amqp_port_t:tcp_socket name_connect; diff --git a/handlers/main.yml b/handlers/main.yml new file mode 100644 index 0000000..e50960d --- /dev/null +++ b/handlers/main.yml @@ -0,0 +1,6 @@ +--- +# handlers for rabbit +- name: restart_rabbitmq + service: + name: rabbitmq-server + state: restarted diff --git a/tasks/federation.yml b/tasks/federation.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/tasks/federation.yml @@ -0,0 +1 @@ +--- diff --git a/tasks/main.yml b/tasks/main.yml index 2583e53..043c9a3 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -1,2 +1,49 @@ --- -# tasks \ No newline at end of file +# RabbitMQ Tasks +- name: Install required packages for RabbitMQ + yum: + name: rabbitmq-server + state: present + +- name: Deploy RabbitMQ configuration + template: + src: "etc/rabbitmq/{{ item }}.j2" + +- name: Deploy erlang cookie + copy: + owner: rabbitmq + group: rabbitmq + mode: '0600' + content: "{{ rabbitmq_cookie }}" + dest: "/var/lib/rabbitmq/.erlang.cookie" + notify: + - restart_rabbitmq + +- name: Create systemd override for RabbitMQ + file: + path: /etc/systemd/system/rabbitmq-server.service.d + state: directory + +- name: Override nofile limit for RabbitMQ + copy: + dest: /etc/systemd/system/rabbitmq-server.service.d/99-override.conf + content: | + [Service] + LimitNOFILE={{ rabbitmq_cluster_file_limit }} + +- name: Enable RabbitMQ Plugins + community.rabbitmq.rabbitmq_plugin: + names: "{{ rabbitmq_plugins | join(',') }}" + state: enabled + +- name: Users Tasks + include_tasks: users.yml + +- name: Vhost tasks + include_tasks: vhosts.yml + +- name: Topic Tasks + include_tasks: topics.yml + +- name: Federation Tasks + include_tasks: federation.yml diff --git a/tasks/topics.yml b/tasks/topics.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/tasks/topics.yml @@ -0,0 +1 @@ +--- diff --git a/tasks/users.yml b/tasks/users.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/tasks/users.yml @@ -0,0 +1 @@ +--- diff --git a/tasks/vhosts.yml b/tasks/vhosts.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/tasks/vhosts.yml @@ -0,0 +1 @@ +--- diff --git a/templates/etc/rabbitmq/rabbitmq-env.conf.j2 b/templates/etc/rabbitmq/rabbitmq-env.conf.j2 new file mode 100644 index 0000000..7e97dc7 --- /dev/null +++ b/templates/etc/rabbitmq/rabbitmq-env.conf.j2 @@ -0,0 +1,2 @@ +NODENAME="{{ rabbitmq_cluster_name }}" +USE_LONGNAME="true"