DHCLIENT.CONF Variáveis do sistema

1

Eu tenho apenas uma pequena pergunta.

Meus servidores DNS são atualizados pelo nosso servidor DHCP (Microsoft Windows 2003 R2 SP2).

Meus clientes são Distros do Debian Linux, e eu tenho que modificar o meu arquivo DHCLIENT.CONF para enviar seu Nome de Host Completo e Qualificado.

MAS eu tenho cerca de 1600 computadores e não quero modificar cada cliente um por um, então, eu poderia por exemplo usar uma variável do sistema no arquivo de configuração?

Exemplo:

#DHCLIENT CONF;
send "$hostname"
onde $ hostname é o alias escrito no BASHRC para o comando hostname -f.

Se precisar de mais informações, apenas me diga.

    
por Dr I 25.03.2010 / 10:44

3 respostas

2

As versões do dhclient de borda sangrando (4.2.x) suportam isso fornecendo uma função gethostname ().

Então, com o último dhclient alpha, você pode colocar algo assim em dhclient.conf

send host-name = gethostname();

O Ubuntu tem um patch em sua versão do dhclient que permite fazer

send host-name = "<hostname>";

e irá substituí-lo pelo nome de host adequado.

Redhat corrige seu dhclient para fornecer opções de linha de comando -H e -F (-H = send-name, -F = send fqdn.fqdn). Então, no Redhat você pode correr

dhclient -H $(hostname) 

e ele irá enviar o hostname adequado.

Eu não estou ciente de nada disponível para o Debian - você pode querer olhar para corrigir o seu dhclient com o patch do Ubuntu

    
por 25.03.2010 / 16:33
1

Eu acho que você tem várias abordagens diferentes aqui. AFAIK, o dhclient.conf não suporta expansão de variáveis como você listou. Então, isso deixa duas opções óbvias:

  1. Script para fazer login em todos os hosts e criar arquivo de configuração
  2. Gerenciamento de configuração (fantoche / cfengine / chef)

A opção 1. é feia, você conseguirá ultrapassar esse obstáculo, mas será difícil de manter. Antes que você perceba, você estará regularmente escrevendo scripts para fazer o login em todas as suas máquinas, o que levará muito tempo, será propenso a erros (por exemplo, como você lida com os hosts normalmente e voltará mais tarde) e de difícil manutenção.

A opção 2. é definitivamente o que eu recomendaria, e eu recomendaria o fantoche como muito mais flexível e fácil de usar em relação ao cfengine, ainda que relativamente maduro.

Aqui está o seu manifesto (não testado)

class dhcp-client {
   file { "/etc/dhclient.conf":
       content => template("dhclient.conf")
   }
}

E o modelo:

other dhclient.conf stuff
send "<%= fqdn %>"

e configuração do nó:

node default { 
   include dhcp-client
}
    
por 25.03.2010 / 11:03
0

Muito obrigado a todos (vocês dois), descobri uma enorme ferramenta chamada Puppet e aumentei minhas habilidades em scripts.

Assunto resolvido.

    
por 26.03.2010 / 13:13