replicar um nó chef existente

1

Eu tenho uma VM (hospedada "na nuvem") que foi fornecida pelo chef usando o próprio servidor de chef da minha organização.

Eu gostaria de replicar essa VM localmente (usando uma VM gerenciada por vagrant), para fazer algum desenvolvimento do chef.

Eu consegui fazer o que eu quero criando um novo nó no servidor chef e copiando manualmente as funções, receitas, atributos etc do nó existente.

Parece-me que este seria um caso de uso bastante comum (isto é, para replicar um nó / VM) e provavelmente há uma forma de o fazer facilmente (sem ter de copiar manualmente funções, receitas, atributos, etc.) mas, infelizmente, não consigo encontrar um.

    
por JonoB 13.12.2012 / 10:50

2 respostas

0

knife edit pode fazer isso:

knife edit <existing node name>  # Change "name" attribute to something unique

Isso criará um novo nó com a mesma lista de execução e atributos (exceto o nome) que o nó existente.

    
por 17.12.2012 / 01:08
1

O que eu faço é configurar uma VM local (via Vagrant ou uma simples VM VirtualBox) e depois instalar uma instalação completa do servidor Chef lá. Depois, copio minha faca normal.rb para um arquivo alternativo de knife.rb (como knife.local.rb), onde altero a URL do servidor Chef e carrego todos os meus dados via

knife cookbook upload -a -c ~/.chef/knife.local.rb
knife data bag from file users users/* -c ~/.chef/knife.local.rb
etc etc...

Finalmente, ao testar seus livros de receitas através do Vagrant, você pode usar o endereço do Chef local para fazê-lo! Como ajudante, você pode definir uma função lknife que pode servir como a ferramenta knife para seu Chef local. Basta colocar no .bashrc do seu usuário

function lknife { 'which knife' "$@" -c "$HOME/.chef/knife.local.rb"; }
    
por 13.12.2012 / 20:21