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.