configuração do host hostname para nodename on / after bootstrap

3

Faço testes com o Chef e tenho uma máquina virtual que estou clonando para gerar novos nós. Eu faço bootstrap com o comando faca eo parâmetro -N para dar a cada host um nome de nó. O problema é difícil, que o nome do host na VM não muda e, se eu estou tentando fazer o bootstrap de outro cliente, ele falha porque o Chef já tem esse nó cadastrado. Tentei agora definir o nome do host na minha função básica com o hostname cookbok mas quando eu executo chef-client me dá um:

---- Begin output of hostname @config[:chef_node_name] ----
STDOUT: 
STDERR: hostname: the specified hostname is invalid
---- End output of hostname @config[:chef_node_name] ----
Ran hostname @config[:chef_node_name] returned 1

Os Atributos da Função base são:

name "base"
description "Base role applied to all nodes"
override_attributes(
  "chef_client" => {
    "init_style" => "upstart",
    "server_url" => "http://chef.ws:4000"
    },
  "set_fqdn" => 
        "@config[:chef_node_name]"
)
run_list(
  "recipe[hostname]",
  "recipe[chef-client::delete_validation]",
  "recipe[chef-client::service]"
)

Eu tenho um erro de sintaxe aqui no set_fqdn ou a variável @config simplesmente não está acessível no nó? Existe uma maneira melhor de definir o nome do host para o nome do nó?

    
por wintersolutions 27.02.2012 / 07:29

2 respostas

2

Após a tentativa e o erro, tenho certeza de que as variáveis @config e node não estão acessíveis nos arquivos de função. Minha solução foi reescrever o livro de receitas do hostname para procurar um atributo nodename_as_fqdn e defini-lo de acordo.

    
por 02.03.2012 / 07:38
0

O nome do nó está acessível no nó que está executando o chef através do node.name accessor.

Você pode usar o livro de receitas chef_hostname para definir o nome do host para o nome do nó, colocando isso em seu metadata.rb:

depends "chef_hostname"

E, em seguida, definir o nome do host como:

hostname node.name
    
por 11.03.2016 / 03:02