6e9da4753a
Since OSA aims to do HA, it's important to run at least one copy of service at all times. Currently we do restart/run roles agaist all hosts inside a group for most of the services. This cause global service interruption if run without limit until service is restarted. To avoid this from happening, we add serial execution globally for all services with ability to override that behaviour. Change-Id: I5f6b8f9de32124a363cfe2c6191a4971f528cd70
92 lines
3.0 KiB
YAML
92 lines
3.0 KiB
YAML
---
|
|
# Copyright 2014, Rackspace US, Inc.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
- name: Gather etcd facts
|
|
hosts: "{{ rabbitmq_host_group | default('rabbitmq_all') }}"
|
|
gather_facts: "{{ osa_gather_facts | default(True) }}"
|
|
tags:
|
|
- always
|
|
|
|
- name: Create and configure rabbitmq container
|
|
hosts: "{{ rabbitmq_host_group | default('rabbitmq_all') }}"
|
|
serial: "{{ rabbitmq_serial | default('20%') }}"
|
|
gather_facts: false
|
|
user: root
|
|
pre_tasks:
|
|
- include_tasks: "common-tasks/os-{{ container_tech | default('lxc') }}-container-setup.yml"
|
|
vars:
|
|
extra_container_config_no_restart:
|
|
- "lxc.start.order=19"
|
|
when: not is_metal
|
|
|
|
- include_tasks: common-tasks/unbound-clients.yml
|
|
when:
|
|
- hostvars['localhost']['resolvconf_enabled'] | bool
|
|
roles:
|
|
- role: "system_crontab_coordination"
|
|
environment: "{{ deployment_environment_variables | default({}) }}"
|
|
tags:
|
|
- rabbitmq
|
|
|
|
# The cluster must be stopped when doing major/minor upgrades
|
|
# http://www.rabbitmq.com/clustering.html#upgrading
|
|
- name: Stop RabbitMQ nodes that are not the upgrader
|
|
hosts: "{{ rabbitmq_host_group | default('rabbitmq_all') }}[1:]"
|
|
gather_facts: false
|
|
user: root
|
|
tasks:
|
|
- name: "Stop RabbitMQ"
|
|
service:
|
|
name: "rabbitmq-server"
|
|
state: "stopped"
|
|
when: rabbitmq_upgrade | default(false) | bool
|
|
|
|
- name: Install rabbitmq server
|
|
hosts: "{{ rabbitmq_host_group | default('rabbitmq_all') }}"
|
|
gather_facts: false
|
|
serial: "{{ rabbitmq_serial | default('20%') }}"
|
|
user: root
|
|
roles:
|
|
- role: "rabbitmq_server"
|
|
|
|
post_tasks:
|
|
- include_tasks: "common-tasks/rsyslog-client.yml"
|
|
vars:
|
|
rsyslog_client_log_rotate_file: rabbitmq_log_rotate
|
|
rsyslog_client_log_dir: "/var/log/rabbitmq"
|
|
rsyslog_client_config_name: "99-rabbitmq-rsyslog-client.conf"
|
|
|
|
environment: "{{ deployment_environment_variables | default({}) }}"
|
|
tags:
|
|
- rabbitmq
|
|
|
|
- name: Ensure rabbitmq user for monitoring GUI
|
|
hosts: "{{ rabbitmq_host_group | default('rabbitmq_all') }}[0]"
|
|
gather_facts: false
|
|
user: root
|
|
tasks:
|
|
- name: Create rabbitmq user for monitoring GUI
|
|
rabbitmq_user:
|
|
user: "{{ rabbitmq_monitoring_userid|default('monitoring') }}"
|
|
password: "{{ rabbitmq_monitoring_password }}"
|
|
tags: "{{ rabbitmq_monitoring_tag | default('monitoring') }}"
|
|
state: "present"
|
|
no_log: true
|
|
when: rabbitmq_monitoring_password is defined
|
|
environment: "{{ deployment_environment_variables | default({}) }}"
|
|
tags:
|
|
- rabbitmq-config
|
|
- rabbitmq
|