Merge branch 'release-0.2.0' into stable
This commit is contained in:
		
						commit
						27de0483fa
					
				| @ -1,5 +1,9 @@ | |||||||
| # Changelog | # Changelog | ||||||
| 
 | 
 | ||||||
|  | ## 0.2.0 | ||||||
|  |   - Upgrade baseimage: light-baseimage:0.2.1 | ||||||
|  |   - Makefile with build no cache | ||||||
|  | 
 | ||||||
| ## 0.1.9 | ## 0.1.9 | ||||||
|   - Upgrade baseimage: light-baseimage:0.1.5 |   - Upgrade baseimage: light-baseimage:0.1.5 | ||||||
| 
 | 
 | ||||||
|  | |||||||
							
								
								
									
										7
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										7
									
								
								Makefile
									
									
									
									
									
								
							| @ -1,13 +1,16 @@ | |||||||
| NAME = osixia/keepalived | NAME = osixia/keepalived | ||||||
| VERSION = 0.1.9 | VERSION = 0.2.0 | ||||||
| 
 | 
 | ||||||
| .PHONY: all build test tag_latest release | .PHONY: all build build-nocache test tag_latest release | ||||||
| 
 | 
 | ||||||
| all: build | all: build | ||||||
| 
 | 
 | ||||||
| build: | build: | ||||||
| 	docker build -t $(NAME):$(VERSION) --rm image | 	docker build -t $(NAME):$(VERSION) --rm image | ||||||
| 
 | 
 | ||||||
|  | build-nocache: | ||||||
|  | 	docker build -t $(NAME):$(VERSION) --no-cache --rm image | ||||||
|  | 
 | ||||||
| test: | test: | ||||||
| 	env NAME=$(NAME) VERSION=$(VERSION) bats test/test.bats | 	env NAME=$(NAME) VERSION=$(VERSION) bats test/test.bats | ||||||
| 
 | 
 | ||||||
|  | |||||||
							
								
								
									
										124
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										124
									
								
								README.md
									
									
									
									
									
								
							| @ -1,19 +1,64 @@ | |||||||
| # osixia/keepalived | # osixia/keepalived | ||||||
| 
 | 
 | ||||||
| [](https://imagelayers.io/?images=osixia/keepalived:latest 'Get your own badge on imagelayers.io') | [](https://imagelayers.io/?images=osixia/keepalived:latest 'Get your own badge on imagelayers.io') | Latest release: 0.2.0 - Keepalived 1.2.19 - [Changelog](CHANGELOG.md) | [Docker Hub](https://hub.docker.com/r/osixia/keepalived/)  | ||||||
| 
 | 
 | ||||||
| A docker image to run Keepalived. | A docker image to run Keepalived. | ||||||
| > [keepalived.org](http://keepalived.org/) | > [keepalived.org](http://keepalived.org/) | ||||||
| 
 | 
 | ||||||
|  | - [Quick start](#quick-start) | ||||||
|  | - [Beginner Guide](#beginner-guide) | ||||||
|  | 	- [Use your own Backup Manager config](#use-your-own-backup-manager-config) | ||||||
|  | 	- [Debug](#debug) | ||||||
|  | - [Environment Variables](#environment-variables) | ||||||
|  | 	- [Set your own environment variables](#set-your-own-environment-variables) | ||||||
|  | 		- [Use command line argument](#use-command-line-argument) | ||||||
|  | 		- [Link environment file](#link-environment-file) | ||||||
|  | 		- [Make your own image or extend this image](#make-your-own-image-or-extend-this-image) | ||||||
|  | - [Advanced User Guide](#advanced-user-guide) | ||||||
|  | 	- [Extend osixia/keepalived:0.2.0 image](#extend-osixiakeepalived020-image) | ||||||
|  | 	- [Make your own keepalived image](#make-your-own-keepalived-image) | ||||||
|  | 	- [Tests](#tests) | ||||||
|  | 	- [Under the hood: osixia/light-baseimage](#under-the-hood-osixialight-baseimage) | ||||||
|  | - [Changelog](#changelog) | ||||||
|  | 
 | ||||||
| ## Quick start | ## Quick start | ||||||
| 
 | 
 | ||||||
| This image require the kernel module ip_vs loaded on the host (`modprobe ip_vs`) and need to be run with : --cap-add=NET_ADMIN --net=host | This image require the kernel module ip_vs loaded on the host (`modprobe ip_vs`) and need to be run with : --cap-add=NET_ADMIN --net=host | ||||||
| 
 | 
 | ||||||
|     docker run --cap-add=NET_ADMIN --net=host -d osixia/keepalived |     docker run --cap-add=NET_ADMIN --net=host -d osixia/keepalived:0.2.0 | ||||||
|  | 
 | ||||||
|  | ## Beginner Guide | ||||||
|  | 
 | ||||||
|  | ### Use your own Keepalived config | ||||||
|  | This image comes with a keepalived config file that can be easily customized via environment variables for a quick bootstrap, | ||||||
|  | but setting your own keepalived.conf is possible. 2 options: | ||||||
|  | 
 | ||||||
|  | - Link your config file at run time to `/container/service/keepalived/assets/keepalived.conf` : | ||||||
|  | 
 | ||||||
|  |       docker run --volume /data/my-keepalived.conf:/container/service/keepalived/assets/keepalived.conf --detach osixia/keepalived:0.2.0 | ||||||
|  | 
 | ||||||
|  | - Add your config file by extending or cloning this image, please refer to the [Advanced User Guide](#advanced-user-guide) | ||||||
|  | 
 | ||||||
|  | ### Debug | ||||||
|  | 
 | ||||||
|  | The container default log level is **info**. | ||||||
|  | Available levels are: `none`, `error`, `warning`, `info`, `debug` and `trace`. | ||||||
|  | 
 | ||||||
|  | Example command to run the container in `debug` mode: | ||||||
|  | 
 | ||||||
|  | 	docker run --detach osixia/keepalived:0.2.0 --loglevel debug | ||||||
|  | 
 | ||||||
|  | See all command line options: | ||||||
|  | 
 | ||||||
|  | 	docker run osixia/keepalived:0.2.0 --help | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| ## Environment Variables | ## Environment Variables | ||||||
| 
 | 
 | ||||||
| Environement variables defaults are set in **image/env.yaml**. You can modify environment variable values directly in this file and rebuild the image ([see manual build](#manual-build)). You can also override those values at run time with -e argument or by setting your own env.yaml file as a docker volume to `/container/environment/env.yaml`. See examples below. | Environment variables defaults are set in **image/environment/default.yaml** | ||||||
|  | 
 | ||||||
|  | See how to [set your own environment variables](#set-your-own-environment-variables) | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| - **KEEPALIVED_INTERFACE**: Keepalived network interface. Defaults to `eth0` | - **KEEPALIVED_INTERFACE**: Keepalived network interface. Defaults to `eth0` | ||||||
| - **KEEPALIVED_PASSWORD**: Keepalived password. Defaults to `d0cker` | - **KEEPALIVED_PASSWORD**: Keepalived password. Defaults to `d0cker` | ||||||
| @ -23,14 +68,14 @@ Environement variables defaults are set in **image/env.yaml**. You can modify en | |||||||
|       - 192.168.1.10 |       - 192.168.1.10 | ||||||
|       - 192.168.1.11 |       - 192.168.1.11 | ||||||
| 
 | 
 | ||||||
|     If you want to set this variable at docker run command convert the yaml in python : |   If you want to set this variable at docker run command add the tag `#PYTHON2BASH:` and convert the yaml in python: | ||||||
| 
 | 
 | ||||||
|       docker run -e KEEPALIVED_UNICAST_PEERS="[192.168.1.10', '192.168.1.11']" -d osixia/phpldapadmin |       docker run --env KEEPALIVED_UNICAST_PEERS="#PYTHON2BASH:['192.168.1.10', '192.168.1.11']" --detach osixia/keepalived:0.2.0 | ||||||
| 
 | 
 | ||||||
|   To convert yaml to python online : http://yaml-online-parser.appspot.com/ |   To convert yaml to python online : http://yaml-online-parser.appspot.com/ | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| - **KEEPALIVED_VIRTUAL_IPS** Add a read only user. Defaults to : | - **KEEPALIVED_VIRTUAL_IPS** Keepalived virtual IPs. Defaults to : | ||||||
| 
 | 
 | ||||||
|       - 192.168.1.231 |       - 192.168.1.231 | ||||||
|       - 192.168.1.232 |       - 192.168.1.232 | ||||||
| @ -39,19 +84,60 @@ Environement variables defaults are set in **image/env.yaml**. You can modify en | |||||||
| 
 | 
 | ||||||
| - **KEEPALIVED_NOTIFY** Script to execute when node state change. Defaults to `/container/service/keepalived/assets/notify.sh` | - **KEEPALIVED_NOTIFY** Script to execute when node state change. Defaults to `/container/service/keepalived/assets/notify.sh` | ||||||
| 
 | 
 | ||||||
|  | - **KEEPALIVED_COMMAND_LINE_ARGUMENTS** Keepalived command line arguments; Defaults to `--log-detail --dump-conf` | ||||||
|  | 
 | ||||||
| ### Set environment variables at run time : | ### Set environment variables at run time : | ||||||
| 
 | 
 | ||||||
| Environment variable can be set directly by adding the -e argument in the command line, for example : | Environment variable can be set directly by adding the -e argument in the command line, for example : | ||||||
| 
 | 
 | ||||||
| 	docker run -e KEEPALIVED_INTERFACE="eno1" -e KEEPALIVED_PASSWORD="password!" \ | 	docker run --env KEEPALIVED_INTERFACE="eno1" --env KEEPALIVED_PASSWORD="password!" \ | ||||||
| 	-e KEEPALIVED_PRIORITY="100" -d osixia/keepalived | 	--env KEEPALIVED_PRIORITY="100" --detach osixia/keepalived | ||||||
| 
 | 
 | ||||||
| Or by setting your own `env.yaml` file as a docker volume to `/container/environment/env.yaml` | Or by setting your own `env.yaml` file as a docker volume to `/container/environment/env.yaml` | ||||||
| 
 | 
 | ||||||
| 	docker run -v /data/my-env.yaml:/container/environment/env.yaml \ | 	docker run --volume /data/my-env.yaml:/container/environment/env.yaml \ | ||||||
| 	-d osixia/keepalived | 	--detach osixia/keepalived | ||||||
|  | 
 | ||||||
|  | ### Set your own environment variables | ||||||
|  | 
 | ||||||
|  | #### Use command line argument | ||||||
|  | Environment variables can be set by adding the --env argument in the command line, for example: | ||||||
|  | 
 | ||||||
|  |     docker run --env KEEPALIVED_INTERFACE="eno1" --env KEEPALIVED_PASSWORD="password!" \ | ||||||
|  |     --env KEEPALIVED_PRIORITY="100" --detach osixia/keepalived:0.2.0 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | #### Link environment file | ||||||
|  | 
 | ||||||
|  | For example if your environment file is in :  /data/environment/my-env.yaml | ||||||
|  | 
 | ||||||
|  | 	docker run --volume /data/environment/my-env.yaml:/container/environment/01-custom/env.yaml \ | ||||||
|  | 	--detach osixia/keepalived:0.2.0 | ||||||
|  | 
 | ||||||
|  | Take care to link your environment file to `/container/environment/XX-somedir` (with XX < 99 so they will be processed before default environment files) and not  directly to `/container/environment` because this directory contains predefined baseimage environment files to fix container environment (INITRD, LANG, LANGUAGE and LC_CTYPE). | ||||||
|  | 
 | ||||||
|  | #### Make your own image or extend this image | ||||||
|  | 
 | ||||||
|  | This is the best solution if you have a private registry. Please refer to the [Advanced User Guide](#advanced-user-guide) just below. | ||||||
|  | 
 | ||||||
|  | ## Advanced User Guide | ||||||
|  | 
 | ||||||
|  | ### Extend osixia/keepalived:0.2.0 image | ||||||
|  | 
 | ||||||
|  | If you need to add your custom TLS certificate, bootstrap config or environment files the easiest way is to extends this image. | ||||||
|  | 
 | ||||||
|  | Dockerfile example: | ||||||
|  | 
 | ||||||
|  |     FROM osixia/osixia/keepalived:0.2.0 | ||||||
|  |     MAINTAINER Your Name <your@name.com> | ||||||
|  | 
 | ||||||
|  |     ADD keepalived.conf /container/service/keepalived/assets/keepalived.conf | ||||||
|  |     ADD environment /container/environment/01-custom | ||||||
|  |     ADD scripts.sh /container/service/keepalived/assets/notify.sh | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | ### Make your own keepalived image | ||||||
| 
 | 
 | ||||||
| ## Manual build |  | ||||||
| 
 | 
 | ||||||
| Clone this project : | Clone this project : | ||||||
| 
 | 
 | ||||||
| @ -61,12 +147,14 @@ Clone this project : | |||||||
| Adapt Makefile, set your image NAME and VERSION, for example : | Adapt Makefile, set your image NAME and VERSION, for example : | ||||||
| 
 | 
 | ||||||
| 	NAME = osixia/keepalived | 	NAME = osixia/keepalived | ||||||
| 	VERSION = 0.1.6 | 	VERSION = 0.2.0 | ||||||
| 
 | 
 | ||||||
| 	becomes : | 	becomes : | ||||||
| 	NAME = billy-the-king/keepalived | 	NAME = billy-the-king/keepalived | ||||||
| 	VERSION = 0.1.0 | 	VERSION = 0.1.0 | ||||||
| 
 | 
 | ||||||
|  | Add your custom scripts, environment files, config ... | ||||||
|  | 
 | ||||||
| Build your image : | Build your image : | ||||||
| 
 | 
 | ||||||
| 	make build | 	make build | ||||||
| @ -75,7 +163,7 @@ Run your image : | |||||||
| 
 | 
 | ||||||
| 	docker run -d billy-the-king/keepalived:0.1.0 | 	docker run -d billy-the-king/keepalived:0.1.0 | ||||||
| 
 | 
 | ||||||
| ## Tests | ### Tests | ||||||
| 
 | 
 | ||||||
| We use **Bats** (Bash Automated Testing System) to test this image: | We use **Bats** (Bash Automated Testing System) to test this image: | ||||||
| 
 | 
 | ||||||
| @ -84,3 +172,13 @@ We use **Bats** (Bash Automated Testing System) to test this image: | |||||||
| Install Bats, and in this project directory run : | Install Bats, and in this project directory run : | ||||||
| 
 | 
 | ||||||
| 	make test | 	make test | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | ### Under the hood: osixia/light-baseimage | ||||||
|  | 
 | ||||||
|  | This image is based on osixia/light-baseimage. | ||||||
|  | More info: https://github.com/osixia/docker-light-baseimage | ||||||
|  | 
 | ||||||
|  | ## Changelog | ||||||
|  | 
 | ||||||
|  | Please refer to: [CHANGELOG.md](CHANGELOG.md) | ||||||
|  | |||||||
| @ -1,23 +1,21 @@ | |||||||
| FROM osixia/light-baseimage:0.1.5 | # Use osixia/light-baseimage | ||||||
|  | # sources: https://github.com/osixia/docker-light-baseimage | ||||||
|  | FROM osixia/light-baseimage:0.2.1 | ||||||
| MAINTAINER Bertrand Gouny <bertrand.gouny@osixia.net> | MAINTAINER Bertrand Gouny <bertrand.gouny@osixia.net> | ||||||
| 
 | 
 | ||||||
| # Keepalived version | # Keepalived version | ||||||
| ENV KEEPALIVED_VERSION 1.2.19 | ENV KEEPALIVED_VERSION 1.2.19 | ||||||
| 
 | 
 | ||||||
| # Use baseimage's init system. | # Download, build and install Keepalived | ||||||
| # https://github.com/osixia/docker-light-baseimage/blob/stable/image/tool/run |  | ||||||
| CMD ["/container/tool/run"] |  | ||||||
| 
 |  | ||||||
| # Install Keepalived |  | ||||||
| RUN apt-get -y update \ | RUN apt-get -y update \ | ||||||
|     && LC_ALL=C DEBIAN_FRONTEND=noninteractive apt-get install -y \ |     && LC_ALL=C DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ | ||||||
|        curl \ |        curl \ | ||||||
|       make \ |  | ||||||
|        gcc \ |        gcc \ | ||||||
|       pkg-config \ |  | ||||||
|       libssl-dev \ |  | ||||||
|        libnl-3-dev \ |        libnl-3-dev \ | ||||||
|        libnl-genl-3-dev \ |        libnl-genl-3-dev \ | ||||||
|  |        libssl-dev \ | ||||||
|  |        make \ | ||||||
|  |        pkg-config \ | ||||||
|     && curl -o keepalived.tar.gz -SL http://keepalived.org/software/keepalived-${KEEPALIVED_VERSION}.tar.gz \ |     && curl -o keepalived.tar.gz -SL http://keepalived.org/software/keepalived-${KEEPALIVED_VERSION}.tar.gz \ | ||||||
|     && mkdir -p /container/keepalived-sources \ |     && mkdir -p /container/keepalived-sources \ | ||||||
|     && tar -xzf keepalived.tar.gz --strip 1 -C /container/keepalived-sources \ |     && tar -xzf keepalived.tar.gz --strip 1 -C /container/keepalived-sources \ | ||||||
| @ -39,4 +37,4 @@ RUN /container/tool/install-service \ | |||||||
|     && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* |     && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* | ||||||
| 
 | 
 | ||||||
| # Add default env variables | # Add default env variables | ||||||
| ADD env.yaml /container/environment/env.yaml | ADD environment /container/environment/99-default | ||||||
|  | |||||||
| @ -14,3 +14,5 @@ KEEPALIVED_VIRTUAL_IPS: | |||||||
|   - 192.168.1.232 |   - 192.168.1.232 | ||||||
| 
 | 
 | ||||||
| KEEPALIVED_NOTIFY: /container/service/keepalived/assets/notify.sh | KEEPALIVED_NOTIFY: /container/service/keepalived/assets/notify.sh | ||||||
|  | 
 | ||||||
|  | KEEPALIVED_COMMAND_LINE_ARGUMENTS: --log-detail --dump-conf | ||||||
| @ -1,56 +0,0 @@ | |||||||
| #!/bin/bash -e |  | ||||||
| 
 |  | ||||||
| FIRST_START_DONE="/etc/docker-keepalived-first-start-done" |  | ||||||
| 
 |  | ||||||
| # container first start |  | ||||||
| if [ ! -e "$FIRST_START_DONE" ]; then |  | ||||||
| 
 |  | ||||||
|   ln -s /container/service/keepalived/assets/keepalived.conf /etc/keepalived/keepalived.conf |  | ||||||
| 
 |  | ||||||
|   # |  | ||||||
|   # bootstrap config |  | ||||||
|   # |  | ||||||
|   sed -i "s|{{ keepalived_interface }}|$KEEPALIVED_INTERFACE|g" /etc/keepalived/keepalived.conf |  | ||||||
|   sed -i "s|{{ keepalived_priority }}|$KEEPALIVED_PRIORITY|g" /etc/keepalived/keepalived.conf |  | ||||||
|   sed -i "s|{{ keepalived_password }}|$KEEPALIVED_PASSWORD|g" /etc/keepalived/keepalived.conf |  | ||||||
| 
 |  | ||||||
|   if [ -n "$KEEPALIVED_NOTIFY" ]; then |  | ||||||
|     sed -i "s|{{ keepalived_notify }}|notify \"$KEEPALIVED_NOTIFY\"|g" /etc/keepalived/keepalived.conf |  | ||||||
|   else |  | ||||||
|     sed -i "/{{ keepalived_notify }}/d" /etc/keepalived/keepalived.conf |  | ||||||
|   fi |  | ||||||
| 
 |  | ||||||
|   # 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 |  | ||||||
|       sed -i "s|{{ keepalived_unicast_peers }}|${!peer}\n    {{ keepalived_unicast_peers }}|g" /etc/keepalived/keepalived.conf |  | ||||||
|     # directly |  | ||||||
|     else |  | ||||||
|       sed -i "s|{{ keepalived_unicast_peers }}|${peer}\n    {{ keepalived_unicast_peers }}|g" /etc/keepalived/keepalived.conf |  | ||||||
|     fi |  | ||||||
|   done |  | ||||||
|   sed -i "/{{ keepalived_unicast_peers }}/d" /etc/keepalived/keepalived.conf |  | ||||||
| 
 |  | ||||||
|   # 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 |  | ||||||
|       sed -i "s|{{ keepalived_virtual_ips }}|${!vip}\n    {{ keepalived_virtual_ips }}|g" /etc/keepalived/keepalived.conf |  | ||||||
|     # directly |  | ||||||
|     else |  | ||||||
|       sed -i "s|{{ keepalived_virtual_ips }}|${vip}\n    {{ keepalived_virtual_ips }}|g" /etc/keepalived/keepalived.conf |  | ||||||
|     fi |  | ||||||
|   done |  | ||||||
|   sed -i "/{{ keepalived_virtual_ips }}/d" /etc/keepalived/keepalived.conf |  | ||||||
| 
 |  | ||||||
|   touch $FIRST_START_DONE |  | ||||||
| fi |  | ||||||
| 
 |  | ||||||
| exit 0 |  | ||||||
| @ -1,2 +0,0 @@ | |||||||
| #!/bin/bash -e |  | ||||||
| exec /usr/local/sbin/keepalived -f /etc/keepalived/keepalived.conf --dont-fork --log-console -D -d |  | ||||||
							
								
								
									
										7
									
								
								image/service/keepalived/process.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										7
									
								
								image/service/keepalived/process.sh
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,7 @@ | |||||||
|  | #!/bin/bash -e | ||||||
|  | 
 | ||||||
|  | # set -x (bash debug) if log level is trace | ||||||
|  | # https://github.com/osixia/docker-light-baseimage/blob/stable/image/tool/log-helper | ||||||
|  | log-helper level eq trace && set -x | ||||||
|  | 
 | ||||||
|  | exec /usr/local/sbin/keepalived -f /etc/keepalived/keepalived.conf --dont-fork --log-console ${KEEPALIVED_COMMAND_LINE_ARGUMENTS} | ||||||
							
								
								
									
										46
									
								
								image/service/keepalived/startup.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										46
									
								
								image/service/keepalived/startup.sh
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,46 @@ | |||||||
|  | #!/bin/bash -e | ||||||
|  | 
 | ||||||
|  | # set -x (bash debug) if log level is trace | ||||||
|  | # https://github.com/osixia/docker-light-baseimage/blob/stable/image/tool/log-helper | ||||||
|  | log-helper level eq trace && set -x | ||||||
|  | 
 | ||||||
|  | FIRST_START_DONE="${CONTAINER_STATE_DIR}/docker-keepalived-first-start-done" | ||||||
|  | # container first start | ||||||
|  | if [ ! -e "$FIRST_START_DONE" ]; then | ||||||
|  | 
 | ||||||
|  |   # | ||||||
|  |   # bootstrap config | ||||||
|  |   # | ||||||
|  |   sed -i --follow-symlinks "s|{{ keepalived_interface }}|$KEEPALIVED_INTERFACE|g" ${CONTAINER_SERVICE_DIR}/keepalived/assets/keepalived.conf | ||||||
|  |   sed -i --follow-symlinks "s|{{ keepalived_priority }}|$KEEPALIVED_PRIORITY|g" ${CONTAINER_SERVICE_DIR}/keepalived/assets/keepalived.conf | ||||||
|  |   sed -i --follow-symlinks "s|{{ keepalived_password }}|$KEEPALIVED_PASSWORD|g" ${CONTAINER_SERVICE_DIR}/keepalived/assets/keepalived.conf | ||||||
|  | 
 | ||||||
|  |   if [ -n "$KEEPALIVED_NOTIFY" ]; then | ||||||
|  |     sed -i --follow-symlinks "s|{{ keepalived_notify }}|notify \"$KEEPALIVED_NOTIFY\"|g" ${CONTAINER_SERVICE_DIR}/keepalived/assets/keepalived.conf | ||||||
|  |     chmod +x $KEEPALIVED_NOTIFY | ||||||
|  |   else | ||||||
|  |     sed -i --follow-symlinks "/{{ keepalived_notify }}/d" ${CONTAINER_SERVICE_DIR}/keepalived/assets/keepalived.conf | ||||||
|  |   fi | ||||||
|  | 
 | ||||||
|  |   # unicast peers | ||||||
|  |   for peer in $(complex-bash-env iterate KEEPALIVED_UNICAST_PEERS) | ||||||
|  |   do | ||||||
|  |     sed -i --follow-symlinks "s|{{ keepalived_unicast_peers }}|${!peer}\n    {{ keepalived_unicast_peers }}|g" ${CONTAINER_SERVICE_DIR}/keepalived/assets/keepalived.conf | ||||||
|  |   done | ||||||
|  |   sed -i --follow-symlinks "/{{ keepalived_unicast_peers }}/d" ${CONTAINER_SERVICE_DIR}/keepalived/assets/keepalived.conf | ||||||
|  | 
 | ||||||
|  |   # virtual ips | ||||||
|  |   for vip in $(complex-bash-env iterate KEEPALIVED_VIRTUAL_IPS) | ||||||
|  |   do | ||||||
|  |     sed -i --follow-symlinks "s|{{ keepalived_virtual_ips }}|${!vip}\n    {{ keepalived_virtual_ips }}|g" ${CONTAINER_SERVICE_DIR}/keepalived/assets/keepalived.conf | ||||||
|  |   done | ||||||
|  |   sed -i --follow-symlinks "/{{ keepalived_virtual_ips }}/d" ${CONTAINER_SERVICE_DIR}/keepalived/assets/keepalived.conf | ||||||
|  | 
 | ||||||
|  |   touch $FIRST_START_DONE | ||||||
|  | fi | ||||||
|  | 
 | ||||||
|  | if [ ! -e "/etc/backup-manager.conf" ]; then | ||||||
|  |   ln -sf ${CONTAINER_SERVICE_DIR}/keepalived/assets/keepalived.conf /etc/keepalived/keepalived.conf | ||||||
|  | fi | ||||||
|  | 
 | ||||||
|  | exit 0 | ||||||
| @ -83,19 +83,17 @@ is_service_running_by_cid() { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| is_file_exists_by_cid() { | is_file_exists_by_cid() { | ||||||
|   docker exec $1 cat "/etc/my_init_startup_files_completed" > /dev/null 2>&1 |   docker exec $1 cat $2 > /dev/null 2>&1 | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| wait_service_by_cid() { | wait_service_by_cid() { | ||||||
| 
 | 
 | ||||||
|   cid=$1 |   cid=$1 | ||||||
| 
 | 
 | ||||||
|   sleep 1 |  | ||||||
| 
 |  | ||||||
|   # first wait image init end |   # first wait image init end | ||||||
|   while ! is_file_exists_by_cid $cid /etc/my_init_startup_files_completed |   while ! is_file_exists_by_cid $cid /container/run/state/startup-done | ||||||
|   do |   do | ||||||
|     sleep 1 |     sleep 0.5 | ||||||
|   done |   done | ||||||
| 
 | 
 | ||||||
|   for service in "${@:2}" |   for service in "${@:2}" | ||||||
| @ -103,9 +101,7 @@ wait_service_by_cid() { | |||||||
|     # wait service |     # wait service | ||||||
|     while ! is_service_running_by_cid $cid $service |     while ! is_service_running_by_cid $cid $service | ||||||
|     do |     do | ||||||
|       sleep 1 |       sleep 0.5 | ||||||
|     done |     done | ||||||
|   done |   done | ||||||
| 
 |  | ||||||
|   sleep 5 |  | ||||||
| } | } | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user