Por que o “pacote de dados de faca do arquivo” não pode encontrar o arquivo json existente no servidor do chef?

5

Resumo:

Estou com um problema com "knife data bag from file", em que knife não reconhece o arquivo .json data bag retirado de um repositório de git remoto.

Histórico:

Atualmente, estou tentando fazer a transição do uso de chef-solo para o servidor do chef enquanto uso os livros de receitas, bolsas de dados e outras informações do chef de nosso repositório de programas remotos.

Eu atualmente baixei uma cópia do nosso repositório git e defini o caminho do livro de receitas e o caminho da bolsa de dados em knife.rb. Eu também carreguei os livros de receitas, fiz ajustes, etc.

Detalhes:

Ao tentar carregar nossos sacos de dados .json fazendo "bag data bag add do arquivo FOLDER FILE", parece que funcionou até que eu fiz "knife bag bag list" e aparece em branco. Então, decidi adicionar a opção de edição no final para ver o que está sendo carregado, se for. Este é o erro que recebo:

knife data bag from file local_settings test.json -e nano
ERROR: Could not find or open file 'test.json' in current directory or in 'data_bags/local_settings/test.json'

O arquivo data bag existe, no local apropriado, em um arquivo json testado e em funcionamento. Às vezes, também recebi um erro dizendo "não foi possível abrir o pacote de dados" local_settings ".

Eu obviamente gostaria de manter o caminho do pacote de dados dentro da pasta git repo apropriada para poder acompanhar as mudanças em um local mais centralizado (nosso git repo, ao contrário do servidor do chef).

Quaisquer soluções, conselhos ou indicações na direção correta são bem-vindos.

    
por ellisera 17.10.2012 / 23:57

2 respostas

2

Não acho válido usar -e nano option knife data bag from file (embora a ajuda da linha de comando implique de outra forma), mas ela deve ser ignorada. Esse erro significa que a faca não pode encontrar o arquivo json que você especificou. Quando você diz que o item estava no local apropriado, onde exatamente estava? Note que a faca estará olhando em relação ao seu diretório atual, não ao seu chef-repo.

Com esse problema resolvido, você encontrará outro - você precisa criar o pacote de dados antes de poder adicionar um item a ele. Ele deve aparecer na saída knife data bag list assim que for criado:

 $ knife data bag create local_settings
Created data_bag[local_settings]
 $ knife data bag list
  local_settings

A documentação para "saco de dados de faca" pode ser encontrada aqui: link

    
por 18.10.2012 / 08:55
1

I do knife data bag list and it comes up blank.

Isso significa que o pacote de dados local_settings ainda não foi criado.

Então, deve ser criado:

$> knife data bag create local_settings
Created data_bag[local_settings]

Em seguida, ele deve aparecer na lista se os pacotes de dados do servidor:

$> knife data bag list
  local_settings

Em seguida, o arquivo da bolsa de dados {{test.json}} pode ser enviado.

Além disso, aqui está uma boa explicação do que realmente está acontecendo: [link na wiki do CHEF] .

    
por 22.10.2012 / 15:41