我正在尝试使用高级指令安装Mesosphere 1.10,并根据示例创建了以下ip-detect脚本:
#!/usr/bin/env bash
set -o nounset -o errexit -o pipefail
export PATH=/sbin:/usr/sbin:/bin:/usr/bin:$PATH
MASTER_IP=$(dig +short master.mesos || true)
MASTER_IP=${MASTER_IP:-192.168.24.20}
INTERFACE_IP=$(ip r g ${MASTER_IP} | \
awk -v master_ip=${MASTER_IP} '
BEGIN { ec = 1 }
{
if($1 == master_ip) {
print $7
ec = 0
} else if($1 == "local") {
print $6
ec = 0
}
if (ec == 0) exit;
}
END { exit ec }
')
在安装任何dcos文件之前,我在预期的主节点上测试了这个脚本,它运行得很好。 但是,在同一节点上安装dcos后,完全相同的脚本将返回以下错误:
错误:???前缀是预期的而不是“;;”。 awk:致命:无法打开文件`timed'进行阅读(没有这样的文件或目录)
为什么会发生这种情况?非常感谢...
答案 0 :(得分:0)
这是因为dig正在查询远程服务器而没有找到“master.mesos”的条目。如果master.mesos == 192.168.24.20,删除两个MASTER_IP行并添加一个MASTER_IP = 192.168.24.20。