Chef: Carregar Atributos do banco de dados criptografado na função json

2

Eu quero usar o livro de receitas postfix para o chef. Espera-se que a senha do sasl esteja em um atributo. Então normalmente você faria isso:

"default_attributes": {
  "postfix": {
    "sasl": {
      "smtp_sasl_passwd": "somepassword"
    }
  }
}

O problema é: não quero ter a senha no repositório em texto simples. Então eu coloquei em um saco de dados criptografados. Agora quero acessá-lo. Isso pode ser feito com isto:

Chef::EncryptedDataBagItem.load("passwords", "postfix")['password']

O problema: Isso só funciona em um arquivo .rb, mas meu papel é em json; todos os meus papéis estão no json! Eu não quero mudar isso apenas para esse propósito. Alguém tem uma ideia do que fazer aqui? A ajuda é muito apreciada.

    
por jcvj 24.04.2014 / 13:43

1 resposta

0

A conversão de suas funções para o DSL Ruby não ajudaria aqui - elas são convertidas em JSON antes de serem carregadas no servidor Chef e é a versão JSON carregada pelo chef-client. O mesmo acontece com os ambientes.

Em outras palavras, não há como carregar um banco de dados (criptografado ou não) de uma função ou ambiente. Você precisará colocar esse tipo de lógica em uma receita de livro de receitas.

    
por 03.06.2014 / 23:25

Tags