从网络相关因素中排除 iface

从网络相关因素中排除 iface

我正在寻找一种方法来将 ifaces 从 macaddress 和接口 facter 中排除,以便使 puppet 在某些主机上运行得更快。据我所知,这些 fact 是内置的,我希望在不修补 facter 包源代码的情况下实现这一点,或者至少以干扰较少的方式实现这一点。

您能提出任何明确的解决方案吗?我使用的是安装了 facter 1.6.10-1 的 Debian wheezy。

提前致谢

答案1

我以前也遇到过同样的问题。解决方案是将 ifconfig(facter 用来获取有关接口的信息)替换为自定义包装器,该包装器会隐藏大多数接口。首先,您需要将原始 ifconfig 移出原始位置:

dpkg-divert --local --divert /sbin/ifconfig.orig --rename /sbin/ifconfig

然后,在 /sbin/ifconfig 中创建一个 shell 包装器,内容如下:

#!/bin/bash

OK=no
CUR=0
while [ $# -gt 0 ]; do
    case "$1" in
    -a|-v|-s)
        OPTS[$CUR]="$1"
        CUR=$((CUR+1))
        ;;
    *)
        OPTS[$CUR]="$1"
        CUR=$((CUR+1))
        OK=yes
        ;;
    esac
    shift || break
done
if [ $OK = yes ]; then
    exec /sbin/ifconfig.orig "${OPTS[@]}"
else
    for IFACE in lo eth0; do
    /sbin/ifconfig.orig "${OPTS[@]}" $IFACE
    done
fi

ifconfig -a本质上,当您使用单个接口调用新的 ifconfig 时,它的行为与普通 ifconfig 相同。如果像示例一样调用它,它只会列出loeth0接口。脚本可以稍微改进一下,但您明白我的意思了。

相关内容