Skip to content
Snippets Groups Projects
Commit 240bed12 authored by Jenkins's avatar Jenkins Committed by Gerrit Code Review
Browse files

Merge "Add keepalived to ansible"

parents 6b1f9714 ab9f6521
No related branches found
No related tags found
No related merge requests found
......@@ -14,3 +14,14 @@ kolla_haproxy_container_name: "haproxy"
docker_haproxy_image: "{{ docker_haproxy_registry }}{{ docker_haproxy_namespace }}/{{ kolla_haproxy_base_distro }}-{{ kolla_haproxy_install_type }}-{{ kolla_haproxy_container_name }}"
docker_haproxy_tag: "{{ openstack_release }}"
docker_haproxy_image_full: "{{ docker_haproxy_image }}:{{ docker_haproxy_tag }}"
docker_keepalived_registry: "{{ docker_registry }}"
docker_keepalived_namespace: "{{ docker_namespace }}"
kolla_keepalived_base_distro: "{{ kolla_base_distro }}"
kolla_keepalived_install_type: "{{ kolla_install_type }}"
kolla_keepalived_container_name: "keepalived"
docker_keepalived_image: "{{ docker_keepalived_registry }}{{ docker_keepalived_namespace }}/{{ kolla_keepalived_base_distro }}-{{ kolla_keepalived_install_type }}-{{ kolla_keepalived_container_name }}"
docker_keepalived_tag: "{{ openstack_release }}"
docker_keepalived_image_full: "{{ docker_keepalived_image }}:{{ docker_keepalived_tag }}"
......@@ -12,3 +12,14 @@
- name: Allowing non-local IP binding
sysctl: name="net.ipv4.ip_nonlocal_bind" value=1 sysctl_set=yes
- name: Ensuring config directory exists
file:
path: "{{ node_config_directory }}/keepalived/"
state: "directory"
recurse: "yes"
- name: Copying over config(s)
template:
src: "keepalived.conf.j2"
dest: "{{ node_config_directory }}/keepalived/keepalived.conf"
---
- include: ../../start.yml
vars:
container_image: "{{ docker_keepalived_image_full }}"
container_name: "keepalived"
container_privileged: "True"
container_volumes:
- "{{ node_config_directory }}/keepalived/:/opt/kolla/keepalived/:ro"
container_environment:
KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}"
- include: ../../start.yml
vars:
container_image: "{{ docker_haproxy_image_full }}"
......
vrrp_script check_alive {
script "/check_alive.sh"
interval 2
weight -10
}
vrrp_instance Floating {
state MASTER
interface {{ api_interface }}
virtual_router_id 51
priority {{ groups['database'].index(inventory_hostname) }}
advert_int 1
virtual_ipaddress {
{{ kolla_internal_address }}
}
track_script {
check_alive
}
}
......@@ -8,6 +8,7 @@ RUN yum -y install \
&& yum clean all
COPY keepalived.conf /etc/keepalived/
COPY start.sh check_alive.sh /
COPY config-internal.sh config-external.sh /opt/kolla/
CMD ["/start.sh"]
../../../common/keepalived/config-external.sh
\ No newline at end of file
../../../common/keepalived/config-internal.sh
\ No newline at end of file
#!/bin/bash
SOURCE="/opt/kolla/keepalived/keepalived.conf"
TARGET="/etc/keepalived/keepalived.conf"
OWNER="root"
if [[ -f "$SOURCE" ]]; then
rm $TARGET
cp $SOURCE $TARGET
chown ${OWNER}: $TARGET
chmod 0644 $TARGET
fi
#!/bin/bash
. /opt/kolla/kolla-common.sh
check_required_vars KEEPALIVED_HOST_PRIORITIES \
PUBLIC_INTERFACE \
PUBLIC_IP
MY_HOSTNAME=`hostname`
# here we unpack KEEPALIVED_HOST_PRIORITIES hostname:priority pairs and match
# them with current hostname, if it's there
for i in ${KEEPALIVED_HOST_PRIORITIES//,/ }; do
HOST_PRIORITY=(${i//:/ })
if [ "$MY_HOSTNAME" == "${HOST_PRIORITY[0]}" ]; then
KEEPALIVED_PRIORITY=${HOST_PRIORITY[1]}
fi
done
if [ -z "$KEEPALIVED_PRIORITY" ]; then
echo "ERROR: missing hostname in KEEPALIVED_HOST_PRIORITIES: $MY_HOSTNAME" >&2
exit 1
fi
sed -i '
s|@PUBLIC_INTERFACE@|'$PUBLIC_INTERFACE'|g
s|@PUBLIC_IP@|'$PUBLIC_IP'|g
s|@KEEPALIVED_PRIORITY@|'$KEEPALIVED_PRIORITY'|g
' /etc/keepalived/keepalived.conf
exec /usr/sbin/keepalived -nld -p /run/keepalived.pid
#!/bin/bash
set -o errexit
. /opt/kolla/kolla-common.sh
CMD="/usr/sbin/keepalived"
ARGS="-nld -p /run/keepalived.pid"
check_required_vars KEEPALIVED_HOST_PRIORITIES \
PUBLIC_INTERFACE \
PUBLIC_IP
# Loading common functions.
source /opt/kolla/kolla-common.sh
MY_HOSTNAME=`hostname`
# Config-internal script exec out of this function, it does not return here.
set_configs
# here we unpack KEEPALIVED_HOST_PRIORITIES hostname:priority pairs and match
# them with current hostname, if it's there
for i in ${KEEPALIVED_HOST_PRIORITIES//,/ }; do
HOST_PRIORITY=(${i//:/ })
if [ "$MY_HOSTNAME" == "${HOST_PRIORITY[0]}" ]; then
KEEPALIVED_PRIORITY=${HOST_PRIORITY[1]}
fi
done
if [ -z "$KEEPALIVED_PRIORITY" ]; then
echo "ERROR: missing hostname in KEEPALIVED_HOST_PRIORITIES: $MY_HOSTNAME" >&2
exit 1
fi
sed -i '
s|@PUBLIC_INTERFACE@|'$PUBLIC_INTERFACE'|g
s|@PUBLIC_IP@|'$PUBLIC_IP'|g
s|@KEEPALIVED_PRIORITY@|'$KEEPALIVED_PRIORITY'|g
' /etc/keepalived/keepalived.conf
exec /usr/sbin/keepalived -nld -p /run/keepalived.pid
exec $CMD $ARGS
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment