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.
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.
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"; }
Tags chef vagrant replication