Resumo:

Resumo:

Resumo:

Estou tendo um problema com "knife data bag from file", onde o knife não reconhece o arquivo .json data bag extraído de um repositório git remoto.

Fundo:

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

Atualmente, baixei uma cópia de nosso repositório git e defini o caminho do livro de receitas e o caminho do pacote de dados em knife.rb. Também carreguei os livros de receitas, fiz ajustes, etc.

Detalhes:

Ao tentar carregar nossos sacos de dados .json fazendo "knife data bag add from file FOLDER FILE", parece que funcionou até que eu fiz "knife data bag list" e ficou em branco. Então decidi tentar adicionar a opção de edição no final para ver o que está sendo carregado, se estiver. 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 do saco de dados existe, no local apropriado, em um arquivo json testado e funcional. Às vezes também recebo um erro dizendo "não foi possível abrir o pacote de dados" local_settings ".

Obviamente, eu gostaria de manter o caminho do pacote de dados dentro da pasta apropriada do repositório git para poder acompanhar as alterações em um local mais centralizado (nosso repositório git, em oposição ao servidor chef).

Quaisquer soluções, conselhos ou sugestões na direção certa serão apreciados.

Responder1

Não acho que seja válido usar -e nanoa opção knife data bag from file(embora a ajuda da linha de comando implique o contrário), mas ela deve ser ignorada. Esse erro significa que o Knife não consegue encontrar o arquivo JSON que você especificou. Quando você diz que o item estava no local adequado, onde exatamente estava? Observe 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 adicionar um item a ele. Ele deve aparecer na knife data bag listsaída 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 "bolsa de dados de faca" pode ser encontrada aqui:http://wiki.opscode.com/display/chef/Managing+Data+Bags+With+Knife

Responder2

Eu faço knife data bag liste fica em branco.

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

Então, deve ser criado:

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

Então deve aparecer na lista se houver pacotes de dados do servidor:

$> knife data bag list
  local_settings

Em seguida, o arquivo do pacote de dados {{test.json}} pode ser carregado.

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

informação relacionada