Facter (2.4.4) define ipaddress para docker0 e não para a interface ethernet (CentOS7)

1

Existe uma maneira de corrigir isso? Posso alterar a ordem das interfaces? Eu tenho um monte de módulos de fantoches que usam $ :: ipaddress, funciona bem no CentOS 6 com docker mas não em 7

interfaces => docker0,eno16780032,lo
ipaddress => 172.17.42.1
ipaddress_docker0 => 172.17.42.1
ipaddress_eno16780032 => 10.251.17.170
ipaddress_lo => 127.0.0.1
    
por user2363318 22.10.2015 / 15:01

1 resposta

2

Este é um problema com o fato ipaddress padrão, é um pouco idiota. Usamos um custom chamado default_if que é baseado na rota padrão (funciona no Debian, pode ser necessário adaptar-se ao CentOS):

Facter.add("default_if") do
    confine :kernel => :linux
    setcode do
        return nil unless FileTest.exists?("/sbin/ip")
        output = %x{/sbin/ip route list match 0.0.0.0}.split("\n")[0]
        output.sub(/.*\s*dev\s+([^\s]+)\s*.*/, '')
    end
end
    
por 22.10.2015 / 16:02