ohai
usa route
para encontrar a "interface padrão" encontrando seu gateway padrão (destino 0.0.0.0):
network[:default_interface] = from("route -n \| grep -m 1 ^0.0.0.0 \| awk \'{print \\}\'")
(De linha 21 a partir de agora )
O problema é que route
não se importa com os aliases nas interfaces ( venet0:0
e venet0:1
são aliases da interface venet0
), assume que qualquer coisa enviada pelos aliases sai toda do mesmo dispositivo, por isso lista venet0
como a interface de saída. Isso é lógico quando a interface é uma interface física, mas quando é uma interface virtual pode estar errada (e está errada neste caso). Devido a esse comportamento, também é tecnicamente errado ohai confiar nele para determinar o endereço IP "correto" a ser usado, mesmo se o endereço IP de base não for 127.0.0.1.
A solução ideal será reconfigurar suas configurações de rede para que a interface venet0 sem serrilhado seja seu "IP primário". Se você REALMENTE precisar que o venet0 seja 127.0.0.1 por alguma razão (eu não estou familiarizado com as interfaces venet * então eu não sei porque você tem isso dessa forma ou o que aconteceria se venet0 fosse o endereço IP primário ao invés de 127.0 .0.1), então você pode tentar encontrar esse arquivo network.rb ( /usr/lib/ruby/1.8/ohai/plugins/linux/network.rb
em Lucid ) e editá-lo para ler
network[:default_interface] = "venet0:0"
(ou qualquer interface que você queira denunciar como o endereço correto). Não sei se from () retira a nova linha que o comando imprimiria no final, por isso talvez seja necessário "venet0:0\n"
para ohai funcionar corretamente. Observe que isso será substituído quando você atualizar o pacote em que estava.
Estou pessoalmente curioso para saber se ip route list
(do pacote iproute
) mostra sua rota "padrão" usando a interface venet0 ou a interface venet0: 0. Da mesma forma, netstat -r
. Se qualquer um mostrar venet0: 0, então você pode sugerir em um relatório de bug para ohai que eles experimentem esses comandos primeiro e, se não funcionarem, tente novamente com o comando de rota "normal".