Eu tive o mesmo problema há algum tempo. A solução é substituir o ifconfig (que é o que o facter usa para buscar as interfaces de abount de informações) com um wrapper personalizado que simplesmente oculta a maioria das interfaces. Primeiro, você precisa mover o ifconfig original para fora da posição original:
dpkg-divert --local --divert /sbin/ifconfig.orig --rename /sbin/ifconfig
Em seguida, crie um wrapper de shell em / sbin / ifconfig com o conteúdo:
#!/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
Em essência, enquanto você está chamando seu novo ifconfig com uma única interface, ele se comporta como ifconfig normal. Se for chamado como ifconfig -a
por exemplo, ele listará apenas lo
e eth0
interfaces. Script poderia ser melhorado um pouco, mas você tem a idéia.