Назад | Перейти на главную страницу

Исключить файлы из факторов, связанных с сетью

Я ищу способ исключить ifaces из macaddress и facter интерфейсов, чтобы марионетка работала быстрее на определенных хостах. Насколько я понимаю, эти факты встроены, и я хотел бы, чтобы это произошло без исправления исходного кода пакета facter или, по крайней мере, менее навязчивым образом.

Есть ли какое-то четкое решение, которое вы могли бы предложить? Я использую Debian wheezy с установленным facter 1.6.10-1.

заранее спасибо

Некоторое время назад у меня была такая же проблема. Решение состоит в том, чтобы заменить ifconfig (это то, что facter использует для получения информации об интерфейсах) на настраиваемую оболочку, которая просто скрывает большинство интерфейсов. Во-первых, вам нужно переместить исходный 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 интерфейсы. Скрипт можно было бы немного улучшить, но идею вы поняли.