docker-keepalived/image/service/keepalived/container-start.sh

58 lines
2.3 KiB
Bash
Raw Normal View History

2015-06-16 09:13:22 +00:00
#!/bin/bash -e
2015-06-09 18:41:43 +00:00
FIRST_START_DONE="/etc/docker-keepalived-first-start-done"
# container first start
if [ ! -e "$FIRST_START_DONE" ]; then
2015-08-21 09:21:46 +00:00
ln -s /container/service/keepalived/assets/keepalived.conf /etc/keepalived/keepalived.conf
#
# bootstrap config
#
2015-12-14 21:33:16 +00:00
sed -i --follow-symlinks --follow-symlinks "s|{{ keepalived_interface }}|$KEEPALIVED_INTERFACE|g" /etc/keepalived/keepalived.conf
sed -i --follow-symlinks --follow-symlinks "s|{{ keepalived_priority }}|$KEEPALIVED_PRIORITY|g" /etc/keepalived/keepalived.conf
sed -i --follow-symlinks --follow-symlinks "s|{{ keepalived_password }}|$KEEPALIVED_PASSWORD|g" /etc/keepalived/keepalived.conf
2015-08-21 09:21:46 +00:00
if [ -n "$KEEPALIVED_NOTIFY" ]; then
2015-12-14 21:33:16 +00:00
sed -i --follow-symlinks --follow-symlinks "s|{{ keepalived_notify }}|notify \"$KEEPALIVED_NOTIFY\"|g" /etc/keepalived/keepalived.conf
2015-12-21 09:20:18 +00:00
chmod +x $KEEPALIVED_NOTIFY
2015-08-21 09:21:46 +00:00
else
2015-12-14 21:33:16 +00:00
sed -i --follow-symlinks --follow-symlinks "/{{ keepalived_notify }}/d" /etc/keepalived/keepalived.conf
2015-08-21 09:21:46 +00:00
fi
2015-06-15 14:04:40 +00:00
2015-08-21 09:21:46 +00:00
# unicast peers
KEEPALIVED_UNICAST_PEERS=($KEEPALIVED_UNICAST_PEERS)
for peer in "${KEEPALIVED_UNICAST_PEERS[@]}"
do
# it's just a peer
# stored in a variable
if [ -n "${!peer}" ]; then
2015-12-14 21:33:16 +00:00
sed -i --follow-symlinks --follow-symlinks "s|{{ keepalived_unicast_peers }}|${!peer}\n {{ keepalived_unicast_peers }}|g" /etc/keepalived/keepalived.conf
2015-08-21 09:21:46 +00:00
# directly
else
2015-12-14 21:33:16 +00:00
sed -i --follow-symlinks --follow-symlinks "s|{{ keepalived_unicast_peers }}|${peer}\n {{ keepalived_unicast_peers }}|g" /etc/keepalived/keepalived.conf
2015-06-09 18:41:43 +00:00
fi
2015-08-21 09:21:46 +00:00
done
2015-12-14 21:33:16 +00:00
sed -i --follow-symlinks --follow-symlinks "/{{ keepalived_unicast_peers }}/d" /etc/keepalived/keepalived.conf
2015-08-21 09:21:46 +00:00
# virtual ips
KEEPALIVED_VIRTUAL_IPS=($KEEPALIVED_VIRTUAL_IPS)
for vip in "${KEEPALIVED_VIRTUAL_IPS[@]}"
do
# it's just a peer
# stored in a variable
if [ -n "${!vip}" ]; then
2015-12-14 21:33:16 +00:00
sed -i --follow-symlinks --follow-symlinks "s|{{ keepalived_virtual_ips }}|${!vip}\n {{ keepalived_virtual_ips }}|g" /etc/keepalived/keepalived.conf
2015-08-21 09:21:46 +00:00
# directly
else
2015-12-14 21:33:16 +00:00
sed -i --follow-symlinks --follow-symlinks "s|{{ keepalived_virtual_ips }}|${vip}\n {{ keepalived_virtual_ips }}|g" /etc/keepalived/keepalived.conf
2015-08-21 09:21:46 +00:00
fi
done
2015-12-14 21:33:16 +00:00
sed -i --follow-symlinks --follow-symlinks "/{{ keepalived_virtual_ips }}/d" /etc/keepalived/keepalived.conf
2015-06-09 18:41:43 +00:00
touch $FIRST_START_DONE
fi
exit 0