Exclui ifaces de facters relacionados à rede

2

Eu estou procurando uma maneira de excluir ifaces do macaddress e das interfaces facter, a fim de tornar o puppet mais rápido em determinados hosts. Esses fatos são incorporados até onde eu entendo e eu gostaria de fazer isso sem remendar o código-fonte do pacote facter, ou pelo menos com a maneira menos intrusiva.

Existe alguma solução nítida para isso que você poderia propor? Eu estou no Debian wheezy com o facnet 1.6.10-1 instalado.

Obrigado antecipadamente

    
por Kostis 20.02.2014 / 16:44

1 resposta

1

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.

    
por 20.02.2014 / 18:07

Tags