Исключить ifaces из сетевых факторов
Я ищу способ исключить ifaces из macaddress и интерфейсного интерфейса, чтобы ускорить работу кукол на определенных хостах. Насколько я понимаю, эти факты встроены, и я хотел бы, чтобы это происходило без исправления исходного кода пакета facter или, по крайней мере, менее навязчивым способом.
Есть ли какое-то решение для этого, которое вы могли бы предложить? Я на Debian wheezy с установленным facter 1.6.10-1.
заранее спасибо
1 ответ
У меня была такая же проблема некоторое время назад. Решение состоит в том, чтобы заменить ifconfig (это то, что используется для получения интерфейсов abount информации) с помощью специальной оболочки, которая просто скрывает большинство интерфейсов. Во-первых, вам нужно переместить оригинальный 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
интерфейсы. Сценарий может быть немного улучшен, но вы поняли идею.