diff options
Diffstat (limited to 'ansible')
| -rw-r--r-- | ansible/roles/message-broker/defaults/main.yml | 22 | ||||
| -rw-r--r-- | ansible/roles/message-broker/tasks/bootstrap.yml | 37 | ||||
| -rw-r--r-- | ansible/roles/message-broker/tasks/config.yml | 16 | ||||
| -rw-r--r-- | ansible/roles/message-broker/tasks/main.yml | 11 | ||||
| -rw-r--r-- | ansible/roles/message-broker/tasks/start.yml | 11 | ||||
| -rw-r--r-- | ansible/roles/message-broker/templates/rabbitmq-env.conf.j2 | 1 | ||||
| -rw-r--r-- | ansible/roles/message-broker/templates/rabbitmq.config.j2 | 9 | ||||
| -rw-r--r-- | ansible/roles/start.yml | 2 |
8 files changed, 102 insertions, 7 deletions
diff --git a/ansible/roles/message-broker/defaults/main.yml b/ansible/roles/message-broker/defaults/main.yml new file mode 100644 index 000000000..67dd88364 --- /dev/null +++ b/ansible/roles/message-broker/defaults/main.yml @@ -0,0 +1,22 @@ +--- +project_name: "rabbitmq" + +#################### +# Docker +#################### +docker_message_broker_registry: "{{ docker_registry }}" +docker_message_broker_namespace: "{{ docker_namespace }}" +kolla_message_broker_base_distro: "{{ kolla_base_distro }}" +kolla_message_broker_install_type: "{{ kolla_install_type }}" +kolla_message_broker_container_name: "rabbitmq" + +docker_message_broker_image: "{{ docker_message_broker_registry }}{{ docker_message_broker_namespace }}/{{ kolla_message_broker_base_distro }}-{{ kolla_message_broker_install_type }}-{{ kolla_message_broker_container_name }}" +docker_message_broker_tag: "{{ openstack_release }}" +docker_message_broker_image_full: "{{ docker_message_broker_image }}:{{ docker_message_broker_tag }}" + + +#################### +# Message-Broker +#################### +rabbitmq_user: "openstack" +rabbitmq_cluster_name: "openstack" diff --git a/ansible/roles/message-broker/tasks/bootstrap.yml b/ansible/roles/message-broker/tasks/bootstrap.yml new file mode 100644 index 000000000..3cc2d51e5 --- /dev/null +++ b/ansible/roles/message-broker/tasks/bootstrap.yml @@ -0,0 +1,37 @@ +--- +# TODO(SamYaple): Improve check with a custom docker module to check if alive +- name: Checking if a rabbitmq_data exists + command: docker inspect rabbitmq_data + register: exists + changed_when: False + failed_when: False + always_run: True + +- include: ../../start.yml + vars: + container_command: "/bin/sleep infinity" + container_image: "{{ docker_message_broker_image_full }}" + container_name: "rabbitmq_data" + container_volumes: + - "/var/lib/rabbitmq/" + +- include: ../../start.yml + vars: + container_detach: "False" + container_environment: + KOLLA_BOOTSTRAP: + KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}" + RABBITMQ_CLUSTER_COOKIE: "{{ rabbitmq_cluster_cookie }}" + container_image: "{{ docker_message_broker_image_full }}" + container_name: "rabbitmq_bootstrap" + container_volumes: + - "{{ node_config_directory }}/rabbitmq/:/opt/kolla/rabbitmq/:ro" + container_volumes_from: + - "rabbitmq_data" + when: exists.rc != 0 + +- name: Cleaning up boostrap container + docker: + image: "{{ docker_message_broker_image_full }}" + name: "rabbitmq_bootstrap" + state: "absent" diff --git a/ansible/roles/message-broker/tasks/config.yml b/ansible/roles/message-broker/tasks/config.yml new file mode 100644 index 000000000..8c6caf5e5 --- /dev/null +++ b/ansible/roles/message-broker/tasks/config.yml @@ -0,0 +1,16 @@ +--- +- name: Ensuring config directory exists + file: + path: "{{ node_config_directory }}/rabbitmq/" + state: "directory" + recurse: "yes" + +- name: Copying over config(s) + template: + src: "{{ item.src }}" + dest: "{{ item.dest }}" + with_items: + - { src: "roles/message-broker/templates/rabbitmq-env.conf.j2", + dest: "{{ node_config_directory }}/rabbitmq/rabbitmq-env.conf" } + - { src: "roles/message-broker/templates/rabbitmq.config.j2", + dest: "{{ node_config_directory }}/rabbitmq/rabbitmq.config" } diff --git a/ansible/roles/message-broker/tasks/main.yml b/ansible/roles/message-broker/tasks/main.yml index c7a0fc830..98daa4021 100644 --- a/ansible/roles/message-broker/tasks/main.yml +++ b/ansible/roles/message-broker/tasks/main.yml @@ -1,7 +1,6 @@ --- -- name: Bringing up rabbitmq service(s) - docker_compose: - project_name: rabbitmq - compose_file: "{{ koalla_directory }}/compose/rabbitmq.yml" - command: up - no_recreate: true +- include: config.yml + +- include: bootstrap.yml + +- include: start.yml diff --git a/ansible/roles/message-broker/tasks/start.yml b/ansible/roles/message-broker/tasks/start.yml new file mode 100644 index 000000000..4a75e0d94 --- /dev/null +++ b/ansible/roles/message-broker/tasks/start.yml @@ -0,0 +1,11 @@ +--- +- include: ../../start.yml + vars: + container_environment: + KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}" + container_image: "{{ docker_message_broker_image_full }}" + container_name: "rabbitmq" + container_volumes: + - "{{ node_config_directory }}/rabbitmq/:/opt/kolla/rabbitmq/:ro" + container_volumes_from: + - "rabbitmq_data" diff --git a/ansible/roles/message-broker/templates/rabbitmq-env.conf.j2 b/ansible/roles/message-broker/templates/rabbitmq-env.conf.j2 new file mode 100644 index 000000000..8921f227e --- /dev/null +++ b/ansible/roles/message-broker/templates/rabbitmq-env.conf.j2 @@ -0,0 +1 @@ +RABBITMQ_NODENAME=rabbit diff --git a/ansible/roles/message-broker/templates/rabbitmq.config.j2 b/ansible/roles/message-broker/templates/rabbitmq.config.j2 new file mode 100644 index 000000000..e51d0c56d --- /dev/null +++ b/ansible/roles/message-broker/templates/rabbitmq.config.j2 @@ -0,0 +1,9 @@ +[ + {rabbit, [ + {cluster_nodes, [{% for host in groups['database'] %}'rabbit@{{ hostvars[host]['ansible_hostname'] }}'{% if not loop.last %},{% endif %}{% endfor %}]}, + {default_user, <<"{{ rabbitmq_user }}">>}, + {default_pass, <<"{{ rabbitmq_password }}">>} + ]} +]. +% EOF + diff --git a/ansible/roles/start.yml b/ansible/roles/start.yml index 8aadfb3fc..4925ba363 100644 --- a/ansible/roles/start.yml +++ b/ansible/roles/start.yml @@ -13,7 +13,7 @@ docker: command: "{{ container_command | default(None) }}" detach: "{{ container_detach | default('True') }}" - env: "{{ container_environment | default(None) }}" + env: "{{ container_environment | default({}) }}" docker_api_version: "{{ docker_api_version }}" image: "{{ container_image }}" insecure_registry: "{{ docker_insecure_registry }}" |
