web-dev-qa-db-ja.com

ネットワーク関連の要因からファイルを除外する

特定のホストでpuppetをより高速に実行するために、MACアドレスとインターフェイスファクトからifacesを除外する方法を探しています。これらの事実は私が理解している限り組み込まれており、事実パッケージのソースコードにパッチを適用せずに、または少なくとも邪魔にならない方法でこれを実現したいと思います。

あなたが提案できるこれに対するクリーンカットの解決策はありますか?私はファクト1.6.10-1がインストールされたDebianwheezyを使用しています。

前もって感謝します

2
Kostis

私はしばらく前に同じ問題を抱えていました。解決策は、ifconfig(ファクトがインターフェイスに関する情報をフェッチするために使用するもの)を、ほとんどのインターフェイスを単に非表示にするカスタムラッパーに置き換えることです。まず、元のifconfigを元の位置から移動する必要があります。

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

次に、/ sbin/ifconfigに次の内容のシェルラッパーを作成します。

#!/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を呼び出している間は、通常のifconfigとして動作します。たとえば、ifconfig -aと呼ばれる場合、loおよびeth0インターフェースのみがリストされます。スクリプトは少し改善される可能性がありますが、あなたはその考えを理解します。

1
thor