微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

keepalived通知脚本可以使用docker环境变量

如何解决keepalived通知脚本可以使用docker环境变量

我在 docker 容器中运行 keepalived,作为其中的一部分,我需要在它更改状态时运行一些通知脚本。如果我可以通过启动时传入的环境变量动态更改其中一些脚本的行为,那将会很有用。关于keepalived调用的notify shell脚本是否可以使用docker中设置的环境变量,我还没有得到明确的答案。

例如,假设我们像这样启动一个 docker 实例,其中包含环境变量 FOO:

keepalive-1:
    tty: true
    privileged: true
    environment:
      CLUSTER_NETWORK: 172.28.5.10/24
      CLUSTER_MANAGEMENT_IP: 172.28.5.20
      FOO: BAR
    build:
      dockerfile: Dockerfile.keepalive
    networks:
      my-network:
        ipv4_address: 172.28.5.10

如果我有这样的通知脚本:

#!/bin/bash
TYPE=$1
NAME=$2
STATE=$3
case $STATE in
    "MASTER") 
        echo "${FOO} is MASTER"
        exit 0
        ;;
    "BACKUP"|"FAULT") 
        echo "${FOO} is BACKUP"
        exit 0
        ;;
    *)        
        echo "unkNown state $3"
        exit 1
        ;;
esac

当我切换到 MASTER 时会返回什么?

  1. “酒吧是大师”
  2. “${FOO} 是大师”
  3. "是大师"

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。