From 0d5963eb5ec98031eaecb1161ec18238447c9b81 Mon Sep 17 00:00:00 2001 From: Bertrand Gouny Date: Tue, 16 Jun 2015 11:13:22 +0200 Subject: [PATCH] init --- README.md | 12 +++++++-- image/Dockerfile | 25 +++++++++++-------- image/env.yml | 6 ++--- .../service/keepalived/assets/keepalived.conf | 7 +++--- image/service/keepalived/container-start.sh | 4 ++- image/service/keepalived/daemon.sh | 2 +- pop | 0 7 files changed, 35 insertions(+), 21 deletions(-) delete mode 100644 pop diff --git a/README.md b/README.md index 5f1c132..08206ae 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,10 @@ -# docker-keepalived -A docker image to run Keepalived +# osixia/keepalived + +A docker image to run Keepalived. +> [keepalived.org](http://keepalived.org/) + +## Quick start + +This image need to be run with : --privileged --net=host + + docker run --privileged --net=host -d osixia/keepalived diff --git a/image/Dockerfile b/image/Dockerfile index ce13e35..8d6015f 100644 --- a/image/Dockerfile +++ b/image/Dockerfile @@ -1,26 +1,31 @@ FROM osixia/baseimage:0.10.4 MAINTAINER Bertrand Gouny -# This container need run options : -# --privileged=true -# --net=host -# -v /lib/modules:/lib/modules - -# sudo docker run --privileged=true --net=host -v /lib/modules:/lib/modules -d osixia/keepalived:0.1.0 +# Keepalived version +ENV KEEPALIVED_VERSION 1.2.17 # Use baseimage-docker's init system. CMD ["/sbin/my_init"] # Install Keepalived RUN apt-get -y update \ - && LC_ALL=C DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ - keepalived + && LC_ALL=C DEBIAN_FRONTEND=noninteractive apt-get install -y \ + make gcc libssl-dev \ + && curl -o keepalived.tar.gz -SL http://keepalived.org/software/keepalived-${KEEPALIVED_VERSION}.tar.gz \ + && mkdir -p /osixia/keepalived-sources \ + && tar -xzf keepalived.tar.gz --strip 1 -C /osixia/keepalived-sources \ + && cd osixia/keepalived-sources \ + && ./configure --with-kernel-dir=/lib/modules/$(uname -r)/build \ + && make && make install \ + && cd - && mkdir -p /etc/keepalived \ + && apt-get remove -y --purge --auto-remove make gcc libssl-dev # Add Keepalived assets ADD service/keepalived/assets /osixia/keepalived -# Run clean all -RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* +# Clean all +RUN rm keepalived.tar.gz \ + && apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* # Add default env variables ADD env.yml /etc/env.yml diff --git a/image/env.yml b/image/env.yml index 18420fd..3121883 100644 --- a/image/env.yml +++ b/image/env.yml @@ -1,4 +1,4 @@ -KEEPALIVED_INTERFACE: wlan0 +KEEPALIVED_INTERFACE: p4p1 KEEPALIVED_PASSWORD: d0cker # for electing MASTER, highest priority wins. @@ -6,7 +6,7 @@ KEEPALIVED_PASSWORD: d0cker KEEPALIVED_PRIORITY: 150 KEEPALIVED_UNICAST_PEERS: - - 192.168.1.9 + - 192.168.1.10 KEEPALIVED_VIRTUAL_IPS: - - 192.168.1.230 + - 192.168.1.231 diff --git a/image/service/keepalived/assets/keepalived.conf b/image/service/keepalived/assets/keepalived.conf index 552493d..e92f9d7 100644 --- a/image/service/keepalived/assets/keepalived.conf +++ b/image/service/keepalived/assets/keepalived.conf @@ -10,7 +10,9 @@ vrrp_instance vip-1 { priority {{ keepalived_priority }} nopreempt - unicast_peer {{ keepalived_unicast_peers }} + unicast_peer { + {{ keepalived_unicast_peers }} + } virtual_ipaddress { {{ keepalived_virtual_ips }} @@ -20,7 +22,4 @@ vrrp_instance vip-1 { auth_type PASS auth_pass {{ keepalived_password }} } - - debug - } diff --git a/image/service/keepalived/container-start.sh b/image/service/keepalived/container-start.sh index 9424cce..9b58ce9 100755 --- a/image/service/keepalived/container-start.sh +++ b/image/service/keepalived/container-start.sh @@ -1,4 +1,4 @@ -#!/bin/bash -ex +#!/bin/bash -e FIRST_START_DONE="/etc/docker-keepalived-first-start-done" @@ -12,6 +12,7 @@ if [ ! -e "$FIRST_START_DONE" ]; then echo "Error: No default keepalived.conf found in /osixia/keepalived/keepalived.conf" exit 1 else + ln -s /osixia/keepalived/keepalived.conf /etc/keepalived/keepalived.conf # @@ -51,6 +52,7 @@ if [ ! -e "$FIRST_START_DONE" ]; then done sed -i "/{{ keepalived_virtual_ips }}/d" /etc/keepalived/keepalived.conf fi + fi touch $FIRST_START_DONE diff --git a/image/service/keepalived/daemon.sh b/image/service/keepalived/daemon.sh index 99921d8..00750a1 100755 --- a/image/service/keepalived/daemon.sh +++ b/image/service/keepalived/daemon.sh @@ -1,2 +1,2 @@ #!/bin/bash -e -exec /usr/sbin/keepalived -f /etc/keepalived/keepalived.conf --dont-fork --log-console -D -d +exec /usr/local/sbin/keepalived -f /etc/keepalived/keepalived.conf --dont-fork --log-console -D -d diff --git a/pop b/pop deleted file mode 100644 index e69de29..0000000