ba9a248550
By default keepalived pingable check tries to verify the gateway which in it's turn requires to have appropriate facts defined. At the moment re-running haproxy playbook as a standalone instance when facts are outdated will lead to re-configuration of keepalived to check 127.0.0.1 as a track script. So we gather extra network facts to identify the gateway for pingable script. Change-Id: I4e72e81d05d8d70e76730a46687dd06f3e66ebc6
74 lines
2.3 KiB
YAML
74 lines
2.3 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 haproxy facts
|
|
hosts: haproxy
|
|
gather_facts: "{{ osa_gather_facts | default(True) }}"
|
|
tasks:
|
|
- name: Gather additional facts
|
|
include_tasks: "common-tasks/gather-hardware-facts.yml"
|
|
vars:
|
|
deployment_extra_facts_filter:
|
|
- "ansible_processor_*"
|
|
- ansible_default_ipv4
|
|
deployment_extra_facts_subset:
|
|
- '!all'
|
|
- hardware
|
|
- network
|
|
when: osa_gather_facts | default(True)
|
|
tags:
|
|
- always
|
|
|
|
- name: HAProxy base config
|
|
hosts: haproxy
|
|
gather_facts: false
|
|
serial: "{{ haproxy_serial | default('50%') }}"
|
|
user: root
|
|
pre_tasks:
|
|
- name: Including container-setup tasks
|
|
include_tasks: "common-tasks/os-{{ container_tech | default('lxc') }}-container-setup.yml"
|
|
when: not is_metal
|
|
- name: Including unbound-clients tasks
|
|
include_tasks: common-tasks/unbound-clients.yml
|
|
when:
|
|
- hostvars['localhost']['resolvconf_enabled'] | bool
|
|
- name: Remove legacy haproxy configuration files
|
|
file:
|
|
dest: "/etc/haproxy/conf.d/{{ item.name }}"
|
|
state: "absent"
|
|
with_items:
|
|
- name: "keystone_internal"
|
|
when: "internal_lb_vip_address == external_lb_vip_address"
|
|
- name: "heat_api_cloudwatch"
|
|
when: "yes"
|
|
when:
|
|
- "item.when | bool"
|
|
tags:
|
|
- haproxy-config # this tag is present because the task is ONLY a config task
|
|
|
|
roles:
|
|
- role: "keepalived"
|
|
when: haproxy_use_keepalived | bool
|
|
tags:
|
|
- keepalived
|
|
|
|
- role: "haproxy_server"
|
|
haproxy_service_configs: "{{ haproxy_default_services + haproxy_extra_services | default([]) }}"
|
|
|
|
environment: "{{ deployment_environment_variables | default({}) }}"
|
|
tags:
|
|
- haproxy-config
|
|
- haproxy
|